Apache Sqoop

全量导入 mysql 表数据到 HDFS

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

bin/sqoop import\

--connect jdbc:mysql://node-1:3306/userdb \

--username root \ --password hadoop \

--delete-target-dir \

--target-dir /sqoopresult \

--table emp --m

1 其中--target-dir 可以用来指定导出数据存放至 HDFS 的目录; mysql jdbc url 请使用 ip 地址。

为了验证在 HDFS 导入的数据,请使用以下命令查看导入的数据: hdfs dfs -cat /sqoopresult/part-m-00000 可以看出它会在 HDFS 上默认用逗号,分隔 emp 表的数据和字段。

可以通过 --fields-terminated-by '\t'来指定分隔符。

 全量导入mysql表数据到HIVE

方式一:先复制表结构到hive中再导入数据

将关系型数据的表结构复制到hive中

bin/sqoop create-hive-table \

--connect jdbc:mysql://node-1:3306/sqoopdb \

--table emp_add \

--username root \

--password hadoop \

--hive-table test.emp_add_sp

其中:

 --table emp_add为mysql中的数据库sqoopdb中的表。  

 --hive-table emp_add_sp 为hive中新建的表名称。

 

从关系数据库导入文件到hive中

bin/sqoop import \

--connect jdbc:mysql://node-1:3306/sqoopdb \

--username root \

--password hadoop \

--table emp_add \

--hive-table test.emp_add_sp \

--hive-import \

--m 1

方式二:直接复制表结构数据到hive中

 

bin/sqoop import \

--connect jdbc:mysql://node-1:3306/userdb \

--username root \

--password hadoop \

--table emp_conn \

--hive-import \

--m 1 \

--hive-database test;

 默认模式导出HDFS数据到mysql

bin/sqoop export \

--connect jdbc:mysql://node-1:3306/userdb \

--username root \

--password hadoop \

--table employee \

--export-dir /emp/emp_data

posted on 2021-10-05 20:28  季昂  阅读(72)  评论(0编辑  收藏  举报