6.1.0Sqoop使用

Sqoop使用

一、       Mysql导入HDFS

            1.   在MySQL上新建测试表

            2.   使用命令导出

sqoop import
--connectjdbc:mysql://10.10.34.36:3306/sqoop_mysql
--username root
--password123456 
--table people
--target-dir/hadooptest/MysqlToHdfs
-m 1

            3.   导出成功

            4.   查看导出数据

            5.   增加where条件导入

                    条件必须用引号引起来

sqoop import--connect  \
jdbc:mysql://10.10.34.36:3306/sqoop_mysql  \
--username root--password 123456  --table people \
--where'id>3'  \
--target-dir'/hadooptest/MysqlToHdfs2'  \
--fields-terminated-by'\001' -m 1

                运行成功:

                查看HDFS:

            6.   增加Query语句

sqoop import --connect\
jdbc:mysql://10.10.34.36:3306/sqoop_mysql\
--username root--password 123456 \
--query 'SELECTid,name FROM people where id > 2 AND $CONDITIONS' \
--split-bypeople.id  \
--target-dir'/hadooptest/MysqlToHdfs3'

 

        注意:

            1)使用--query这个命令的时候, where后面的参数,必须加上AND $CONDITIONS这个参数

            2)存在单引号与双引号的区别,如果--query后面使用的是双引号,那么需要在$CONDITIONS前加上\ \$CONDITIONS

            3)如果设置map数量为1个时即-m 1,不用加上--split-by ${tablename.column},否则需要加上

        运行成功:

        查看运行结果:

二、       HDFS导入Mysql

            1.     在HDFS上建立文件

                    文本txt信息,以,分开

                    上传:

                查看:

            2.     在Mysql上键一张空表


            3.     使用命令导入

                命令:

sqoop export--connect \
jdbc:mysql://localhost:3306/sqoop_mysql\
--username root\
--password123456 \
--export-dir'/sqooptest/hdfsToMysql' \
--table user \
--fields-terminated-by',' \
-m 1

                运行:

                卡在Job                   

                    原因:slave节点上的NodeManager没有启动

                解决:参考1.3.0

                重新导入:

                报错:

                原因:网络通讯的原因。

                解决:将localhost改为本机ip

            导出完成。但依然报错:

            查看导出的MySQL表:

                导出成功。

三、      Mysql导入到Hive中(默认Hive库)

                1.   启动hive元数据服务

            2.   命令

                    和Mysql导入HDFS类似,只需加上 --hive-import

sqoop import \
--hive-import --connect \
jdbc:mysql://10.10.34.36:3306/sqoop_mysql \
--username root --password 123456 \
--table people \
-m 1

            3.   导入成功:

                    过程也是将mysql表导入到HDFS中,再将HDFS文件load进hive。

            4.   查看

四、      MySQL导入Hive中(自定义Hive库和表)

            1.   命令

sqoop import --hive-import \
--connect jdbc:mysql://10.10.34.36:3306/sqoop_mysql \
--username root --password 123456  \
--table people \
--hive-table test01.people \
-m 1

            2.   导入成功

             3.   查看

本次参考链接:

http://blog.csdn.net/dwld_3090271/article/details/50747639


猜你喜欢

转载自blog.csdn.net/simon_09010817/article/details/79976328