sqoop部署
创始人
2024-01-30 00:02:00

一、实验介绍

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数据仓库中。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
函授本科是什么 自考本科还是函... 很多小伙伴在选择学历提升方式的时候,可能会感到很迷茫,不知道报考自考本科还是函授本科,两者有什么区别...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
安徒生童话有哪些 安徒生童话的... 从德国汉堡港乘轮船渡波罗的海抵丹麦王国,就到了安徒生的祖邦。安徒生(1805-1875)以童话作品闻...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...