我是整个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上使用单节点分发。
谢谢!
答案 0 :(得分:0)
mysqldump实用程序与"直接连接器"一起使用。无法找到的原因是当Sqoop运行MapReduce作业时,mysqldump二进制文件不在您的系统上或不是PATH环境变量的一部分。有用的事情:
brew install mysql
。which mysqldump
找到mysqldump实用程序。如果你能以这种方式找到它,那么你可能会为你的用户提供一个特殊的PATH。我尝试通过ln -s $(which mysqldump) /usr/bin/mysqldump
在/ usr / bin中创建一个软链接。否则,卸载MySQL并通过自制软件安装它。答案 1 :(得分:0)
你必须在所有节点的路径中复制mysqlinsert和mysqldump,它才能工作。
就我而言,我在每个工作人员上执行一对命令
sudo scp mysqlserver:/usr/bin/mysqlimport /usr/bin/
sudo scp mysqlserver:/usr/bin/mysqldump /usr/bin/
现在两个文件都在所有worker的路径上,我可以再次执行sqoop命令并且它可以工作。
亲切的问候