我是靠谱客的博主 火星上红酒,最近开发中收集的这篇文章主要介绍sqoop部署一、实验介绍二、实训架构三、实验环境准备四、实验步骤五、实验总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、实验介绍

1.1实验内容

本次实验包括sqoop安装部署及利用Sqoop在mysql数据库与hive之间进行数据迁移。

1.2实验知识点

Sqoop安装
mysql到Hive数据迁移

1.3实验环境

Sqoop-1.4.7
网易云平台

1.4实验资源

资源名称存储目录
Sqoop安装包/opt/software/package/

在这里插入图片描述

1.5实验步骤清单

sqoop安装部署(安装sqoop、修改sqoop配置文件)
sqoop数据迁移(检查环境、数据迁移)

二、实训架构

序号IP地址机器名类型
1172.25.10.140masterSqoop
2172.25.10.141slave1
3172.25.10.142slave2
4172.25.10.143slave2

三、实验环境准备

进入实验列表,找到sqoop,点击开启实验,启动master、slave1及salve2,slave3。

四、实验步骤

4.1Sqoop安装部署

4.1.1安装Sqoop软件

#解压sqoop安装包
tar xvf /opt/software/package/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/

#重命名sqoop目录
mv /usr/local/sqoop-1.4.7.bin__hadoop-2.6.0/ /usr/local/sqoop/

#添加环境变量
vim /etc/profile

export  SQOOP_HOME=/usr/local/sqoop
export  PATH=${SQOOP_HOME}/bin:$PATH
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*

在这里插入图片描述

#环境变量生效
source /etc/profile

4.1.2修改Sqoop配置文件

#编辑sqoop-env.sh文件
cp /usr/local/sqoop/conf/sqoop-env-template.sh /usr/local/sqoop/conf/sqoop-env.sh
vim /usr/local/sqoop/conf/sqoop-env.sh

export  HADOOP_COMMON_HOME=/usr/local/hadoop
export  HADOOP_MAPRED_HOME=/usr/local/hadoop
export  HIVE_HOME=/usr/local/hive	
export  HIVE_CONF_DIR=/usr/local/hive/conf

在这里插入图片描述

#上传mysql-connector jar包到sqoop lib目录下
cp /opt/software/package/mysql-connector-java-5.1.46-bin.jar /usr/local/sqoop/lib/

4.2Sqoop数据迁移

4.2.1检查环境

#查看Sqoop版本
sqoop version

#启动mysql
systemctl start mysqld
#查看mysql的表
sqoop list-tables --username root --password 'root' --connect jdbc:mysql://localhost:3306/metastore?characterEncoding=UTF-8

4.2.2数据迁移

1、查看用于测试的MySQL数据库表及数据
#登录mysql
mysql -uroot -proot

#创建testdb数据库
create database testdb;

use testdb;

#创建表及插入数据脚本

create table t1 (id int(11),name varchar(10));
insert into t1 values(10,'tom');
insert into t1 values(20,'jerry');
insert into t1 values(30,'rose');
commit;

在这里插入图片描述

#查看表
show tables;
在这里插入图片描述

#查看表数据
select * from t1;
在这里插入图片描述

#退出mysql客户端
exit;

2、基于MySQL的表t1创建Hive表t1
#查看mysql数据库

sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password root
information_schema

#查看mysql数据库testdb中的表
sqoop list-tables --connect jdbc:mysql://localhost:3306/testdb --username root --password root

在这里插入图片描述

#配置java安全策略文件
vim /usr/local/java/jre/lib/security/java.policy
添加以下权限,此权限表示在签名者或代码库中信任。
permission javax.management.MBeanTrustPermission “register”;

#替换sqoop中的Jackson包
由于hive和sqoop jackson版本不一致,使用hive中的jackson包替换sqoop中的包。
rm -f /usr/local/sqoop/lib/jackson-*
cp /usr/local/hive/lib/jackson-* /usr/local/sqoop/lib/

#设置hosts
vi /etc/hosts

source /etc/profile

#启动hadoop
start-all.sh

#创建hive表t1
在已经存在的testdb这个库中创建名为t1的表。
sqoop create-hive-table --connect jdbc:mysql://localhost:3306/testdb --table t1 --username root -password 'root' --hive-database testdb --hive-table t1
显示以下信息表示导入表完成。
22/05/30 07:45:27 INFO hive.HiveImport: Hive import complete.
在这里插入图片描述

#查看hive中的数据库和表
hive

#切换到testdb数据库
use testdb;

#查看表
show tables;

#查看表数据(此时数据为空)
select * from t1;

在这里插入图片描述

#退出hive
exit;

#查看hdfs里面的数据
hdfs dfs -ls -R /user
在这里插入图片描述

#清空hdfs数据
hdfs dfs -rm -R /user/hive/warehouse/testdb.db/t1
在这里插入图片描述

#从mysql导入数据到hive
sqoop import --connect jdbc:mysql://master:3306/testdb?characterEncoding=UTF-8 --table t1 --username root --password 'root' --hive-import --hive-database testdb -m 1
18/11/21 15:50:22 INFO hive.HiveImport: Hive import complete.

4、执行hive命令测试上面的操作是否成功
#启动hive
hive

#进入testdb数据库
use testdb;

#显示表
show tables;
OK
t1
Time taken: 0.173 seconds, Fetched: 1 row(s)

#查看t1表里的数据
select * from t1;
OK
10 tom
20 jerry
30 rose
Time taken: 0.262 seconds, Fetched: 3 row(s)

五、实验总结

Sqoop是一款开源的工具,主要用于在Hadoop Hive与传统的数据库mysql间进行数据的传递,可以将一个关系型数据库 MySQL中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
本次实验主要完成了Sqoop的安装及验证通过Sqoop将MySQL数据导入到Hive数据仓库中。

最后

以上就是火星上红酒为你收集整理的sqoop部署一、实验介绍二、实训架构三、实验环境准备四、实验步骤五、实验总结的全部内容,希望文章能够帮你解决sqoop部署一、实验介绍二、实训架构三、实验环境准备四、实验步骤五、实验总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部