ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 数据导出 将数据从HDFS导出到RDBMS数据库 **导出前,目标表必须存在于目标数据库中** mysql表不存在是不会自动创建的 * 默认操作是从将文件中的数据使用INSERT语句插入到表中 * 更新模式下,是生成UPDATE语句更新表数据 # 语法 以下是export命令语法 ~~~ $ sqoop export (generic-args) (export-args) ~~~ 表示数据存放的地址 # hdfs导入到mysql 数据是在HDFS 中`/user/root/emp_conn`目录下存在part-m-00000文件中。所述part-m-00000如下: ~~~ 1201,2356742,gopal@tp.com 1202,1661663,manisha@tp.com 1203,8887776,khalil@ac.com 1204,9988774,prasanth@ac.com 1205,1231231,kranthi@tp.com ~~~ 1. 首先需要手动创建mysql中的目标表 ~~~ use userdb; CREATE TABLE emp_conn_from_hdfs( id INT, phno VARCHAR(20), email VARCHAR(20) ); ~~~ 2. 然后执行导出命令 ~~~ sqoop export \ --connect jdbc:mysql://master:3306/userdb \ --username root \ --password root \ --table emp_conn_from_hdfs \ --export-dir /user/root/emp_conn \ --m 1 ~~~ 3. 验证表mysql命令行 ~~~ select * from emp_conn_from_hdfs; ~~~ 如果给定的数据存储成功,那么可以找到数据在如下的emp_conn_from_hdfs表 # hive导入到mysql ~~~ sqoop export \ --connect jdbc:mysql://master:3306/userdb \ --username root \ --password root \ --table staff \ --num-mappers 1 \ --export-dir /user/root/staff \ --input-fields-terminated-by "\t"; ~~~ `--input-fields-terminated-by "\t"`表示hive中原本数据分割符是`\t`