我熟悉 Cloudera 架构,但不熟悉 MapR。我有一个 RHEL 虚拟机,之前使用这个 documentation 安装了 MapR 客户端软件.我能够按预期提交 mapreduce 作业并查询 HDFS。
我关注了这个documentation (在我安装了 MapR yum repo 之后)并像这样安装了 sqoop:
yum install mapr-sqoop
如果我尝试在某些数据中进行 sqoop,或者甚至只是发出命令 sqoop
,我会收到以下错误:
/opt/mapr/sqoop/sqoop-1.4.4/bin/configure-sqoop: line 47: /opt/mapr/bin/versions.sh: No such file or directory
Error: /opt/mapr/hadoop/hadoop- does not exist!
Please set $HADOOP_COMMON_HOME to the root of your Hadoop installation.
我有一个/opt/mapr/hadoop/hadoop-0.20.2 目录。我尝试将 HADOOP_COMMON_HOME
和 HADOOP_HOME
设置为 /opt/mapr/hadoop
和 /opt/mapr/hadoop/hadoop- 0.20.2
但仍然收到相同的错误。
-- 更新:
我发出了一个find/-name hadoop
并注意到最后一行是/usr/bin/hadoop
。
然后我将 HADOOP_COMMON_HOME 设置为 /usr
,然后我被要求设置 HADOOP_MAPRED_HOME、HBASE_HOME 和 HCAT_HOME,我都将它们设置为 /usr
。
但是这个错误仍然存在:
/opt/mapr/sqoop/sqoop-1.4.4/bin/configure-sqoop: line 47: /opt/mapr/bin/versions.sh: No such file or directory
我打开了这个文件并注释掉了第 47 行。这允许我使用 sqoop 命令,但是导入作业失败并且我收到了很多错误:不支持的主要版本
。
请您参考如下方法:
如果还没有修复,应该有一个补丁,
这是临时解决方案:
mapr-client 不提供 versions.sh ,只有 mapr-core 提供。简单的解决方法是 从安装了 mapr-core 的节点手动复制该文件并自定义 其中的版本。然后 sqoop 工作正常。