四十centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)
Posted 托马斯-酷涛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四十centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)相关的知识,希望对你有一定的参考价值。
环境准备:
centos 7
centos 可以上网
hadoop,Hbase,Hive,Zookeeper正常运行
环境搭建:
版本:
sqoop1.4.7-hadoop2.6.0
一、Sqoop安装
1、直接在虚拟机浏览器下载sqoop1.4.7
2、解压安装包
3、重命名为Sqoop
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
4、配置sqoop-env.sh
(1)复制配置文件并重命名为sqoop-env.sh
cat sqoop-env-template.sh >> sqoop-env.sh
(2)修改配置文件
编辑sqoop-env.sh文件,分别将Hadoop、HBase、Hive、ZooKeeper的安装目录添加到文件中。
5、配置环境变量
vim /etc/profile
使环境变量立即生效:
source /etc/profile
6、配置mysql连接
(1)添加MySQL的JAR包到Sqoop安装目录中。
(2)测试Sqoop与MySQL之间的连接
A、启动MySQL服务:
B、测试Sqoop与MySQL之间的连接是否成功:
sqoop list-databases --connect jdbc:mysql://localhost:3306 --username root -password dang
注:如果可以看到MySQL数据库中的数据库列表,则表示Sqoop安装成功
centos安装Sqoop完成
Sqoop的使用:
二、使用Sqoop完成MySQL和HDFS之间的数据互导
1、上传准备好的测试数据到MySQL中
(1)登录MySQL:
(2)创建测试数据库
(3)创建表test1,用于存放本地测试数据
create table test1(
ip varchar(100) not null,
time varchar(100) not null,
url varchar(100) not null);
(4)新建测试数据文件
写入:
注意:此 txt 文件字段之间需要用Tab键隔开,空格是不可行的,遇到datatime日期的,年月日,时分秒之间需用空格隔开,不需要添加引号
(5)将本地的测试数据上传到test1表中
load data local infile "/opt/linshi/test.txt" into table test1(ip,time,url);
(6)上传完成后,查看test1表中的数据:
select * from test1;
2、上传数据到HDFS中
(1)启动hadoop集群
(2)将test1中的数据上传到HDFS中:
./sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password dang --table test1 -m 1
(3)查看导入的数据
hdfs dfs -cat /user/root/test1/part-m-00000
(4)登录HDFS网页查看
HDFS的web端:localhost:50070
(5)将HDFS数据导入MySQL中
注:在导出前需要先创建导出表的结构,如果导出的表在数据表中不存在,则系统会报错;若重复导出数据,则表中的数据会重复
A、 在test数据库中创建表test2,可以直接复制表test1的结构:
create table test2 as select * from test1 where 1=2;
B、查看表test1,表test2:
C、使用sqoop将HDFS中的数据导入MySQL的test2中:
sqoop export --connect jdbc:mysql://192.168.231.105:3306/test --username root --password dang --table test2 --export-dir /user/root/test1/part-m-00000 -m 1
注:localhost最好写成本机地址,之前写的localhost报错了
(6)再次查看test2表:
HDFS的数据成功导入test2
一条华丽的分割线
centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)案例完成
其他环境搭建参见:
Hadoop伪分布式的搭建详情https://blog.csdn.net/m0_54925305/article/details/118650350?spm=1001.2014.3001.5502Hadoop完全分布式的搭建详情https://blog.csdn.net/m0_54925305/article/details/118851554?spm=1001.2014.3001.5502Zookeeper集群的搭建(单机、伪分布式、集群)https://blog.csdn.net/m0_54925305/article/details/119059186?spm=1001.2014.3001.5502Spark的安装与部署详情(Local模式,Standalone模式,Spank on YARN模式)https://blog.csdn.net/m0_54925305/article/details/119005751?spm=1001.2014.3001.5502HadoopHA环境搭建(保姆篇,手把手搭建)https://blog.csdn.net/m0_54925305/article/details/119838463?spm=1001.2014.3001.5502hbase集群的搭建(HBase Shell)https://blog.csdn.net/m0_54925305/article/details/120787788?spm=1001.2014.3001.5502Centos安装mysql(rpm终结版)https://blog.csdn.net/m0_54925305/article/details/120476116?spm=1001.2014.3001.5502centos安装hive3.1.2(精讲篇)https://blog.csdn.net/m0_54925305/article/details/120554242?spm=1001.2014.3001.5502Centos安装yum,wegt(完全配置篇)https://blog.csdn.net/m0_54925305/article/details/120467143?spm=1001.2014.3001.5502
以上是关于四十centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)的主要内容,如果未能解决你的问题,请参考以下文章
Centos7安装Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)
无法让 Sqoop 1.99.3 在 64 位 Centos 6.5 上与 Apache Hadoop 2.4.0 一起使用