java sqoop hive,利用sqoop将mysql数据同步到hive手记

本文详细介绍了如何使用Sqoop从MySQL下载数据,并将其导入到Hive中,包括下载与配置Sqoop和Hadoop,设置环境变量,执行数据迁移,以及解决可能出现的问题,如文件已存在错误的处理。此外,还提到了 Sqoop 在速度上的优势,它通过类似mysqldump的方式进行数据迁移,但速度更快。
摘要由CSDN通过智能技术生成

669542749388bee43fd7dc96c682d363.png

1.下载 http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz

2.下载 http://archive.cloudera.com/cdh/3/hadoop-0.20.2-CDH3B4.tar.gz

3.解压 2

4.复制3里hadoop-core-0.20.2-CDH3B4.jar到sqoop的lib下

5.在某处复制mysql-connector-java-5.1.10.jar到sqoop的lib下

6.修改configure-sqoop

注释掉hbase zookeeper检查:

#if [ ! -d "${HBASE_HOME}" ]; then

# echo "Error: $HBASE_HOME does not exist!"

# echo 'Please set $HBASE_HOME to the root of your HBase installation.'

# exit 1

#fi

#if [ ! -d "${ZOOKEEPER_HOME}" ]; then

# echo "Error: $ZOOKEEPER_HOME does not exist!"

# echo 'Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.'

# exit 1

#fi

7.运行:

列出mysql所有的表:

./sqoop list-tables --connect jdbc:mysql://127.0.0.1/operation --username root --password 123

导入mysql表到hive:

./sqoop import --connect jdbc:mysql://192.168.100.52/operation --username root --password 3487e498770b9740086144fc03140876 --table active_uuid --hive-import

导入需要表里有主建,还要注意不要使用127.0.0.1,因为map出去不一定在哪个节点执行。

如果曾经执行失败过,那再执行的时候,会有错误提示:

ERROR tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory xxx already exists

执行 $HADOOP_HOME/bin/hadoop fs -rmr xxx 即可

8.验证:

bin/hive

show tables;多了一个表

9.经验:

sqoop做了一些mysqldump时的map reduce,所以速度会比单纯的dump后load快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值