sqoop导入-hdfs

Sqoop的数据导入

“导入工具”导入单个表从RDBMS到HDFS。表中的每一行被视为HDFS的记录。所有记录都存储为文本文件的文本数据(或者Avro、sequence文件等二进制数据)

列举出所有的数据库

命令行查看帮助

bin/sqoop list‐databases ‐‐help

列出windows主机所有的数据库

bin/sqoop list‐databases ‐‐connect jdbc:mysql://192.168.1.7:3306/ ‐‐
username root ‐‐password root

查看某一个数据库下面的所有数据表

bin/sqoop list‐tables ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐
username root ‐‐password root

如果出现连接拒绝,则在windows的mysql的数据库中执行以下命

开启windows的远程连接权限

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'yourpassword'
WITH GRANT OPTION;
FLUSH PRIVILEGES;

其它导入示例

表数据

在mysql中有一个库userdb中三个表:emp, emp_add和emp_conn

导入数据库表数据到HDFS

下面的命令用于从MySQL数据库服务器中的emp表导入HDFS。

bin/sqoop import ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐
password root ‐‐username root ‐‐table emp ‐‐m 1

如果成功执行,那么会得到下面的输出。

为了验证在HDFS导入的数据,请使用以下命令查看导入的

hdfs dfs ‐ls /user/root/emp

导入到HDFS指定目录

在导入表数据到HDFS使用Sqoop导入工具,我们可以指定目标目录。

使用参数 --target-dir来指定导出目的地,

使用参数—delete-target-dir来判断导出目录是否存在,如果存在就删掉

bin/sqoop import ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐
username root ‐‐password root ‐‐delete‐target‐dir ‐‐table emp ‐‐targetdir
/sqoop/emp ‐‐m 1

查看导出的数据

hdfs dfs ‐text /sqoop/emp/part‐m‐00000

它会用逗号(,)分隔emp_add表的数据和字段。

1201,gopal,manager,50000,TP
1202,manisha,Proof reader,50000,TP
1203,khalil,php dev,30000,AC
1204,prasanth,php dev,30000,AC
1205,kranthi,admin,20000,TP

导入到hdfs指定目录并指定字段之间的分隔符

bin/sqoop import ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐
username root ‐‐password root ‐‐delete‐target‐dir ‐‐table emp ‐‐
target‐dir /sqoop/emp2 ‐‐m 1 ‐‐fields‐terminated‐by '\t'

查看文件内容

hdfs dfs ‐text /sqoop/emp2/part‐m‐00000
发布了2281 篇原创文章 · 获赞 52 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/Leon_Jinhai_Sun/article/details/104642834