2012-05-18 37 views
8

Tôi đang gặp sự cố khi thực thi CÁC CÂU HỎI ĐIỀU KIỆN TRONG HiveQL. Tuyên bố cơ bản select * from tablename hoạt động tốt. Lỗi này là:Lỗi thực thi, trả lại mã 1 từ org.apache.hadoop.hive.ql.exec.MapRedTask

Total MapReduce jobs = 1 
Launching Job 1 out of 1 
Number of reduce tasks determined at compile time: 1 
In order to change the average load for a reducer (in bytes): 
    set hive.exec.reducers.bytes.per.reducer=<number> 
In order to limit the maximum number of reducers: 
    set hive.exec.reducers.max=<number> 
In order to set a constant number of reducers: 
    set mapred.reduce.tasks=<number> 
java.net.ConnectException: Call to /0.0.0.0:8021 failed on connection exception: java.net.ConnectException: Connection refused 
     at org.apache.hadoop.ipc.Client.wrapException(Client.java:1134) 
     at org.apache.hadoop.ipc.Client.call(Client.java:1110) 
     at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) 
     at org.apache.hadoop.mapred.$Proxy5.getProtocolVersion(Unknown Source) 
     at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) 
     at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) 
     at org.apache.hadoop.mapred.JobClient.createRPCProxy(JobClient.java:501) 
     at org.apache.hadoop.mapred.JobClient.init(JobClient.java:486) 
     at org.apache.hadoop.mapred.JobClient.<init>(JobClient.java:469) 
     at org.apache.hadoop.hive.ql.exec.ExecDriver.execute(ExecDriver.java:655) 
     at org.apache.hadoop.hive.ql.exec.MapRedTask.execute(MapRedTask.java:123) 
     at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:130) 
     at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57) 
     at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1063) 
     at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:900) 
     at org.apache.hadoop.hive.ql.Driver.run(Driver.java:748) 
     at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:209) 
     at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:286) 
     at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:516) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.hadoop.util.RunJar.main(RunJar.java:186) 
Caused by: java.net.ConnectException: Connection refused 
     at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
     at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574) 
     at org.apache.hadoop.net.SocketIOWithTimeout.connect(
.... 
Job Submission failed with exception 'java.net.ConnectException(Call to /0.0.0.0:8021 failed on connection exception: java.net.ConnectException: Connection refused)' 
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MapRedTask 

Tôi đã thử từ cả IDE Eclipse và vỏ Hive. Đầu ra giống nhau. Hãy giúp tôi!

+2

Bạn có giải pháp ngay bây giờ không? Tôi cũng phải đối mặt với cùng một vấn đề. – learninghuman

+0

Bạn có thể thấy ứng dụng web này hữu ích. http://sql.treasuredata.com –

Trả lời

3

Trong hầu hết các trường hợp, lỗi này là do một vấn đề quyền, nơi người dùng Hive chạy lệnh không có quyền truy cập vào/user/hive

Bạn sẽ muốn kiểm tra cấu hình của Hadoop Hive cluster

1

Tôi đã nhận thấy rằng với Hive2 bạn cần phải thay đổi cách bạn chỉ định số lượng bộ giảm trong khi sử dụng HiveQL. Trên Hive1 Tôi đã sử dụng:

SET mapred.reduce.tasks=1 

Tuy nhiên trên Hive2 tôi đã nhận thấy tôi cần phải sử dụng:

SET mapreduce.job.reduces=1 

tôi đã được thông báo lỗi tương tự và thay đổi này giải quyết vấn đề đối với tôi.

6

Điều này sẽ giải quyết vấn đề của bạn vì thuộc tính này sẽ được đặt thành true theo mặc định.

set hive.auto.convert.join.noconditionaltask=false 

hive.auto.convert.join.noconditionaltask - Dù Hive phép tối ưu hóa về chuyển đổi thông thường tham gia vào mapjoin dựa trên kích thước tập tin đầu vào.

Nếu tham số này được bật và tổng kích thước cho n-1 của bảng/phân đoạn cho kết nối n chiều nhỏ hơn kích thước được chỉ định, kết nối được chuyển trực tiếp thành mapjoin (có không có nhiệm vụ có điều kiện).

0

Tôi có hình ảnh bắt đầu nhanh được gắn bằng VirtualBox. Tôi phải làm như sau để khắc phục sự cố

sudo vi /etc/hive/conf/hive-site.xml và đặt thuộc tính hive.auto.convert.join thành false (bạn cần root để chỉnh sửa và do đó sudo).

Tôi không có thuộc tính hive.auto.convert.join.noconditionaltask trong tệp hive-site.xml.xml.

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