【问题标题】:Oozie sqoop task error: Cannot run program "hive": error=2 no such file or directoryOozie sqoop 任务错误:无法运行程序“hive”:错误=2 没有这样的文件或目录
【发布时间】:2017-08-11 05:01:09
【问题描述】:

我创建了一个 oozie sqoop 任务来将数据从 mysql 导入 hive。我有一个 namenode 和 3 个 datanodes,在 namenode 上还安装了 hive、oozie 和 sqoop。

sqoop 导入命令已经在 namenode 上测试了 var CLI,但是每次我创建一个 oozie sqoop 任务时,它也失败了。以下是详细错误。

2017-08-11 11:27:40,787 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 0% reduce 0% 2017-08-11 11:27:40,787 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 0% reduce 0% 2017-08-11 11:27:44,833 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 25% reduce 0% 2017-08-11 11:27:44,833 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 25% reduce 0% 2017-08-11 11:27:45,837 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 75% reduce 0% 2017-08-11 11:27:45,837 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 75% reduce 0% 2017-08-11 11:27:46,844 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 100% reduce 0% 2017-08-11 11:27:46,844 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - map 100% reduce 0% 2017-08-11 11:27:46,856 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - Job job_1502360348741_0041 completed successfully 2017-08-11 11:27:46,856 [uber-SubtaskRunner] INFO org.apache.hadoop.mapreduce.Job - Job job_1502360348741_0041 completed successfully ... 2017-08-11 11:27:46,932 [uber-SubtaskRunner] INFO org.apache.sqoop.mapreduce.ImportJobBase - Transferred 625 bytes in 12.0595 seconds (51.8263 bytes/sec) 2017-08-11 11:27:46,936 [uber-SubtaskRunner] INFO org.apache.sqoop.mapreduce.ImportJobBase - Retrieved 14 records. 2017-08-11 11:27:46,951 [uber-SubtaskRunner] INFO org.apache.sqoop.manager.SqlManager - Executing SQL statement: SELECT t.* FROM UserRole AS t WHERE 1=0 2017-08-11 11:27:46,952 [uber-SubtaskRunner] INFO org.apache.sqoop.manager.SqlManager - Executing SQL statement: SELECT t.* FROM UserRole AS t WHERE 1=0 2017-08-11 11:27:46,953 [uber-SubtaskRunner] WARN org.apache.sqoop.hive.TableDefWriter - Column updatedDate had to be cast to a less precise type in Hive 2017-08-11 11:27:46,960 [uber-SubtaskRunner] INFO org.apache.sqoop.hive.HiveImport - Loading uploaded data into Hive 2017-08-11 11:27:46,963 [uber-SubtaskRunner] ERROR org.apache.sqoop.tool.ImportTool - Encountered IOException running import job: java.io.IOException: Cannot run program "hive": error=2,

这是我的想法

  1. 映射器作业已生成,因此应提交此脚本并在名称节点上运行。这是正确的吗?
  2. 我所有的环境变量配置都很好,所以应该在一个数据节点上启动错误阶段,将数据导入配置单元表的导入工具。

那么我应该在集群的每个数据节点上安装 hive 吗?或者有什么配置可以解决这个问题?

【问题讨论】:

  • 将集群的 hive-site 复制到 oozie lib 文件夹
  • 你能把你的 oozie 发给 workflow.xml

标签: hive sqoop oozie bigdata


【解决方案1】:
  1. 确保 hive-site.xml 位于 hdfs 中。
  2. 将所有 hive libs 共享文件夹复制到 sqoop libs 共享文件夹。

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 2018-01-30
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多