2012-12-01 19 views
5

Khi tôi chạy một kịch bản tổ ong với từ oozie od CDH 4.1.1hành động hive thất bại trong oozie (trên Cloudera CDH 4.1.1)

Việc chạy không thành công với:

Error Code JA018 
Error Message org/apache/hadoop/hive/cli/CliDriver 

Details 
Property Value 
External Id job_201211281608_0112 
External Status FAILED/KILLED 
Data None 
Start time Sat, 01 Dec 2012 03:02:37 
End time  Sat, 01 Dec 2012 03:03:07 
Id [email protected] 
Retries 0 
TrackerUri overlord-datanode1:8021 
Transition kill 

Googling JA018 chỉ tiết lộ một gợi ý khó hiểu: JA018 là thư mục đầu ra tồn tại lỗi trong hành động làm giảm bản đồ dòng công việc.

tôi sao chép của tôi hiv-site.xml để HDFS và thiết lập trong workflow.xml: oozie.hive.defaults/người dùng/màu/oozie/workspace/overlord -oozie-1/hive-site.xml

đây là workflow.xml hoàn chỉnh:

<workflow-app name="HiveTest" xmlns="uri:oozie:workflow:0.4"> 
    <start to="ExchangeRateTest"/> 
    <action name="ExchangeRateTest"> 
     <hive xmlns="uri:oozie:hive-action:0.2"> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
      <prepare> 
       <delete path="${nameNode}${jobOutput}"/> 
      </prepare> 
      <configuration> 
       <property> 
        <name>oozie.use.system.libpath</name> 
        <value>true</value> 
       </property> 
       <property> 
        <name>oozie.hive.defaults</name> 
        <value>/user/hue/oozie/workspaces/_overlord_-oozie-1/hive-site.xml</value> 
       </property> 
      </configuration> 
      <script>/user/hue/oozie/workspaces/_overlord_-oozie-1/03_update_exchange_rates_final.hive</script> 
       <param>OUTPUT=${jobOutput}</param> 
     </hive> 
     <ok to="end"/> 
     <error to="kill"/> 
    </action> 
    <kill name="kill"> 
     <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 
    <end name="end"/> 
</workflow-app> 

Làm thế nào có thể có được điều này để làm việc?

+0

Bạn nên kiểm tra nhật ký tác vụ bản đồ của công việc được tạo ra (job_201211281608_0112) cho các lỗi thực tế. Chụp trong bóng tối ở đây: Bạn đã thiết lập bộ chia nhỏ Oozie đúng chưa? –

Trả lời

1

Lớp học org/apache/hadoop/hive/cli/CliDriver là bắt buộc để thực hiện Hành động Hive. Điều này rất rõ ràng từ thông báo lỗi. Lớp này nằm trong tệp jar này: hive-cli-0.7.1-cdh3u5.jar. (Trong trường hợp của tôi cdh3u5 trong phiên bản cloudera của tôi).

Kiểm tra Oozie cho bình này trong thư mục ShareLib. Vị trí của thư mục này thường được định cấu hình trong hive-site.xml, với tên thuộc tính là oozie.service.WorkflowAppService.system.libpath, vì vậy Oozie nên tìm lọ dễ dàng.

Nhưng trong trường hợp của tôi, hive-site.xml không bao gồm thuộc tính này, vì vậy Oozie không biết tìm kiếm cái bình này ở đâu, do đó java.lang.NoClassDefFoundError.

Để giải quyết vấn đề này, tôi phải bao gồm thông số trong tệp job.properties của mình để trỏ oozie đến vị trí của thư mục ShareLib, như sau: oozie.libpath=${nameNode}/user/oozie/share/lib. (phụ thuộc vào thư mục SharedLib được định cấu hình trên cụm của bạn).

Các vấn đề liên quan