大蜕

Sqoop基本使用要点和mysql相关的一个Tip

sqoop 相关命令使用:

  • sqoop的export命令(hdfs--->mysql) 导出操作有几点需要注意的地方: 1.数据库导入表的用户权限问题,sqoop报错可能提示是总有个未关闭的流和error reading database 2.确保hdfs文件的列数量和mysql表一致 3.hdfs文件字段之间的分隔符只能是一个字节,例如'\001',即使指定了多个,也会只取第一个字节

基本命令如下:

sqoop export
--connect %s --username %s --password %s --table %s
--export-dir ${hdfs_path} -m 1 --verbose --input-fields-terminated-by '\001'

我看到很多报错的解决方法是mysql与sqoop版本问题,但是实际情况还是要从简单的例子开始分析,能够有效的解决问题

  • sqoop的import命令(mysql--->hdfs)
sqoop import
--connect %s --username %s --password %s --query %s
--target-dir %s -m 1 --as-textfile --fields-terminated-by '\001'
--null-string '\\N' --null-non-string '\\N'

mysql和sqoop之间的交互问题:

  • sqoop集群迁移之后,mysql与hdfs之间的import导表操作可能会报没权限错误 a.需要给mysql添加新hdfs用户 b.如有权限问题,最好先查看mysql都有哪些已知用户
mysql>select * from mysql.user;
mysql>grant all PRIVILEGES on *.* to root@'cdh5-slave'  identified by '${your.password}' with grant option;