利用sqoop将hive和MySQL数据互导入

1.    hadoop、hive、MySQL安装(略)启动hadoop

执行start-all.sh start-dfs.sh start-yarn.sh

2.    下载sqoop

#wget http://www.apache.org/dyn/closer.lua/sqoop/1.4.6

3.    解压

#tar -zxvfsqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

4.    建立软连接

#ln -s sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop

5.    加执行文件路径

#export PATH=$PATH:/home/grid/sqoop/bin

6.    把MySQL Java链接器的jar文件拷贝到sqoop的lib目录下

连接器mysql-connector-java-5.1.35-bin.jar的下载地址:http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.35.tar.gz将其解压后找到mysql-connector-java-5.1.35-bin.jar

(注意:连接器的版本最低为5.1.35)

#cpmysql-connector-java-5.1.3-bin.jar /etc/yum.repos.d/sqoop/lib/(sqoop的所在的目录)

 

 

 

 

7.    测试

(1)   列出mysql数据库中的所有数据库

#sqooplist-databases --connect jdbc:mysql://192.168.56.104:3306?useSSL=false--username root --password 123456  (其中192.168.56.104位主机ip,root为MySQL数据库用户名、123456位密码(我的MySQL数据库名与密码为hive,hive其他的会出现权限问题))

(2)     连接MySQL并列出数据库中的表

#sqoop list-tables --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false--username root --password 123456(test为数据库名

(3)     将MySQL的test.t1(数据库test中的t1表)表结构复制到Hive的test库中,表名为mysql_t1

#sqoop create-hive-table --connectjdbc:mysql://192.168.56.104:3306/test?useSSL=false --table t1 --username root--password 123456 --hive-table test.mysql_t1 (test.mysql_t1为Hive数据库中test数据库中的mysql_t1表)

注:该命令可以多次执行不报错

(4)     将MySQL表的数据导入到hive中

追加数据

#sqoop import --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false--username root --password 123456 --table t1 --hive-import --hive-tabletest.mysql_t1

(5)     将Hive表的数据导入到MySQL中

#sqoop export --connectjdbc:mysql://192.168.56.104:3306/test?useSSL=false --username root --password123456 --table t2 --export-dir /user/hive/warehouse/test.db/mysql_t1  (注意主键中数据不可以重复


注意:若出现Output directory hdfs://SparkMaster:9000/user/root/uk already exists的错误时,

解决方案:先把HDFS中的输出目录干掉

#hadoopfs -ls -R (可查看目录)

#hadoopfs -rmr output  (删除多余的输出文件例如错误提示中所提到已经存在的文件)

MapReduce执行是不允许输出目录存在的,自动创建!


参考:http://blog.csdn.net/wzy0623/article/details/50921702

            https://www.cnblogs.com/wrencai/p/3908533.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值