Sqoop拷贝MySQL数据表到HDFS存储

1. CentOS7环境下安装sqoop

  1. 下载地址, 这里选择1.4.7版本sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
    http://archive.apache.org/dist/sqoop/1.4.7/
  2. 传输到linux中,解压缩
  3. 修改系统环境变量/etc/profile, 添加sqoop/bin, 同时确保export HADOOP_HOME
  4. 进入sqoop/conf目录, 修改如下文件
    cp sqoop-env-template.sh sqoop-env.sh
  5. 可以修改sqoop-env.sh添加相关目录所在位置, 包括hadoop,mapreduce,hive,hdfs,zookeeper
  6. 不修改sqoop-env.sh会warning, 部分功能无法使用
  7. 拷贝mysql的jar包到sqoop/lib中, 实现jdbc连接mysql时需要用到
    https://download.csdn.net/download/wxfghy/10476946
  8. sqoop命令测试是否成功, 无ERROR则成功,WARING不影响使用

2. 拷贝mysql数据表到hdfs上

  1. 确保mysql可以远程连接, 防火墙等已关闭或开端口, hadoop已启动, hdfs可访问
  2. 确保hdfs上不存在目标文件夹, sqoop会自动生成文件夹, 若已存在则报错
  3. 命令如下, 参数自行修改, mysql所在IP为ghys3, 用户名密码为root, Mysql数据表emp, hdfs目录为/mydb/emp
sqoop import -m 1 --connect jdbc:mysql://ghys3:3306/mydb 
--username root --password root --table emp --target-dir /mydb/emp

猜你喜欢

转载自blog.csdn.net/wxfghy/article/details/80682211