sqoop2 与hadoop-2.2.0集成

sqoop是关系型数据库与hadoop之间传递数据的一个工具.

下载sqoop 1.99.3按包里的文档安装,出现了以下一些问题:

1.启动sqoop.sh server start 时,服务器不能启动,查看sqoop.log发现配置的hadoop目录不是正确的目录或权限不正确.我仔细检查了路径,绝对正确.上网GOOGLE也没有找到解决办法,仔细回想,原来我将sqoop server安装到与hadoop namenode/resourcemanager相同的机子上,而配置的hadoop配置目录是解压后etc/hadoop这个目录,当hadoop运行时,也会用到这个目录,会对这个目录进行保护,所以sqoop无权限读取这个目录的配置文件,想通原因后,解决方法很简单:将etc/hadoop目录下的文件拷贝到/home/zhj/hadoopconf目录,再修改sqoop server的配置便可.

 

2.提交一个JOB时,我按文档中的5分钟教程 sqoop:000>submission start --jid 1  提示错误,原来文档里也有错误,正确的命令是:start job --jid 1

参考:http://stackoverflow.com/questions/21244591/what-is-the-syntax-for-starting-a-sqoop2-job

http://archive.cloudera.com/cdh4/cdh/4/sqoop2-1.99.2-cdh4.5.0/CommandLineClient.html#start-command

 

3.提交job后,server报错如下:



 

我猜想的原因是sqoop server与hadoop namenode/resourcemanager运行在同一台机子上,SSH连接时出错

解决办法,

1. ssh-keygen -t rsa
Press enter for each line 
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. chmod og-wx ~/.ssh/authorized_keys

 参考:http://stackoverflow.com/questions/7439563/hard-how-to-ssh-localhost-without-password

 

sqoop is still not working well due to the follwing errors:

Given job is already running.

 

could not load history file .

原因是HDFS的默认拷贝份数是3,而我只有两个数据节点,增加一个后,问题解决.

 

从sakila数据库导出一个表的数据,JOB不能成功运行,查看日志是拒绝连接.问题的原因是在创建connection时设置有问题,同时mysql默认不能让远程主机进行连接.解决方法:

#sudo vi /etc/mysql/my.cnf

bind_address = ::

 

#sudo service mysql restart

 

#mysql -u root -p

#grant all on sakila.* to 'hadoop-user'@'%';

 

see:http://dev.mysql.com/doc/refman/5.5/en/server-options.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值