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报错如下:


sqoop2 与hadoop-2.2.0集成_第1张图片
 

我猜想的原因是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

你可能感兴趣的:(error,sqoop)