使用直接导入HDFS时,Sqoop找不到mysqldump

时间:2014-12-03 22:02:14

标签: hdfs mysqldump sqoop

我是整个Hadoop堆栈的新手,所以请耐心等待。

我尝试使用Sqoop 1.4.5将整个表从MySql导入HDFS,我相信我已经正确设置了所有内容但是Sqoop告诉我这个:

Error: java.io.IOException: Cannot run program "mysqldump": error=2, No such file or directory

我可以在没有--direct命令的情况下导入但由于某种原因它无法找到mysqldump。

请为此提供帮助!

PS:我用谷歌搜索了一整天,没有任何东西可以告诉我正确的道路。

PS2:我在Mac上使用单节点分发。

谢谢!

2 个答案:

答案 0 :(得分:0)

mysqldump实用程序与"直接连接器"一起使用。无法找到的原因是当Sqoop运行MapReduce作业时,mysqldump二进制文件不在您的系统上或不是PATH环境变量的一部分。有用的事情:

  1. 您似乎正在运行mac,因此请尝试使用homebrew安装MySQL:brew install mysql
  2. 尝试which mysqldump找到mysqldump实用程序。如果你能以这种方式找到它,那么你可能会为你的用户提供一个特殊的PATH。我尝试通过ln -s $(which mysqldump) /usr/bin/mysqldump在/ usr / bin中创建一个软链接。否则,卸载MySQL并通过自制软件安装它。

答案 1 :(得分:0)

你必须在所有节点的路径中复制mysqlinsert和mysqldump,它才能工作。

Here you can find a reference

就我而言,我在每个工作人员上执行一对命令

sudo scp mysqlserver:/usr/bin/mysqlimport /usr/bin/
sudo scp mysqlserver:/usr/bin/mysqldump /usr/bin/

现在两个文件都在所有worker的路径上,我可以再次执行sqoop命令并且它可以工作。

亲切的问候