10.5
全量导入 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