mysql实时同步到hive_MySQL同步到Hive操作步驟

1. 下載sqoop

地址為:http://archive.cloudera.com/cdh/3/下載相應版本,如sqoop-1.2.0-CDH3B4.tar.gz

2. 下載 hadoop

地址為:http://archive.cloudera.com/cdh/3/,版本可以為hadoop-0.20.2-CDH3B4.tar.gz

3.解壓 sqoop-1.2.0-CDH3B4.tar.gz ,hadoop-0.20.2-CDH3B4.tar.gz 到某目錄如/home/hadoop/,解壓后的目錄為

A:/home/hadoop/ sqoop-1.2.0-CDH3B4.tar

B:/home/hadoop/ hadoop-0.20.2-CDH3B4

4.復制B里hadoop-core-0.20.2-CDH3B4.jar到sqoop(A)的lib下

5. sqoop導入mysql數據運行過程中依賴mysql-connector-java-*.jar,所以需要下載mysql-connector-java-*.jar到sqoop(A)的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> GRANT ALL PRIVILEGES ON *.* TO 'hadoop_test'@'%' WITH GRANT OPTION,

此命令的含義是把mysql下的hadoop_test的訪問權限為任意IP,如果需要設置特定IP訪問,則把%換成具體IP,如

mysql> GRANT ALL PRIVILEGES ON *.* TO 'hadoop_test'@'10.6.42.101' WITH GRANT

列出mysql所有的表:

./sqoop list-tables --connect jdbc:mysql://10.6.42.101:3306/test --username hadoop_test --password 123456

導入mysql表到hive:

./sqoop import --connect jdbc:mysql://10.6.42.101:3306/test --username hadoop_test --password 123456 --table mytest--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快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值