2013-09-28 77 views
9

Tôi chỉ mới bắt đầu với Apache Hive và tôi đang sử dụng hộp Ubuntu địa phương 12.04 của mình, với Hive 0.10.0 và Hadoop 1.1.2.Hive không thể tạo/user/hive/warehouse

Tiếp nối "Getting Started" Hướng dẫn chính thức trên trang web Apache, bây giờ tôi bị mắc kẹt tại các lệnh Hadoop để tạo ra các metastore hive với lệnh trong hướng dẫn:

$ $HADOOP_HOME/bin/hadoop fs -mkdir  /user/hive/warehouse 

lỗi là mkdir: failed to create /user/hive/warehouse

Hive có yêu cầu hadoop trong một chế độ cụ thể không? Tôi biết tôi không phải làm gì nhiều với bản cài đặt Hadoop của tôi mà bản cập nhật JAVA_HOME khác nên nó đang ở chế độ độc lập. Tôi chắc chắn Hadoop chính nó đang làm việc kể từ khi tôi chạy ví dụ PI đi kèm với cài đặt hadoop.

Ngoài ra, lệnh còn lại để tạo /tmp hiển thị thư mục /tmp đã tồn tại để thư mục không tạo lại và /bin/hadoop fs -ls đang liệt kê thư mục hiện tại.

Vì vậy, làm cách nào tôi có thể khắc phục?

Trả lời

3

Điều này có vẻ như là vấn đề về quyền. Bạn có quyền truy cập vào thư mục gốc /? Hãy thử các tùy chọn sau-

1. Run command as superuser 

OR 

2.Create the warehouse in your home directory. 

Hãy cho chúng tôi biết nếu điều này có ích. Chúc may mắn!

+0

có vấn đề cho phép đơn giản, vì vậy "sudo bin/hadoop fs -mkdir/người dùng/hive/kho" đã thực hiện thủ thuật. Cảm ơn! – yutechnet

0

Trong khi điều này là một vấn đề cho phép đơn giản mà đã được giải quyết với sudo trong nhận xét của tôi ở trên, có một vài ghi chú:

  1. tạo ra nó trong thư mục chính nên làm việc là tốt, nhưng sau đó bạn có thể cần cập nhật cài đặt tổ ong cho con đường của metastore, mà tôi nghĩ mặc định là/user/hive/kho

  2. tôi chạy vào một lỗi của câu lệnh CREATE TABLE với hive vỏ, lỗi là một cái gì đó như thế này:

hive> TẠO BẢNG TẠO (foo INT, thanh STRING); FAILED: Lỗi trong siêu dữ liệu: MetaException (thông báo: Có ngoại lệ: tệp java.io.FileNotFoundException Tệp:/user/hive/warehouse/pokes không tồn tại.) FAILED: Execution Error, return code 1 from org.apache.hadoop .hive.ql.exec.DDLTask

Nó trở thành một vấn đề quyền khác, bạn phải tạo một nhóm được gọi là "hive" và sau đó thêm người dùng hiện tại vào nhóm đó và thay đổi quyền sở hữu/user/hive/warehouse thành nhóm đó. Sau đó, nó hoạt động. Thông tin chi tiết có thể được tìm thấy từ liên kết dưới đây:

http://mail-archives.apache.org/mod_mbox/hive-user/201104.mbox/%[email protected]%3E

4

Khi chạy hive trên hệ thống địa phương, chỉ cần thêm vào ~/.hiverc:

SET hive.metastore.warehouse.dir=${env:HOME}/Documents/hive-warehouse; 

Bạn có thể chỉ định bất kỳ thư mục để sử dụng như một nhà kho . Rõ ràng, bất kỳ phương thức hive configuration nào khác cũng sẽ làm (ví dụ: hive-site.xml hoặc hive -hiveconf).

Đó có thể là những gì Ambarish Hazarnis lưu ý khi nói "hoặc Tạo kho trong thư mục chính của bạn".

0

nếu bạn r chạy kiểm tra linux (trong hadoop core-site.xml) thư mục dữ liệu & cho phép, có vẻ như bạn đã giữ mặc định là/data/tmp và im hầu hết các trường hợp sẽ mất quyền root .. thay đổi tệp cấu hình xml, xóa/dữ liệu/tmp và chạy định dạng fs (OC sau khi bạn đã sửa đổi cấu hình xml lõi)

20

Hầu như tất cả các ví dụ của tài liệu đều có lệnh này sai. Cũng giống như unix, bạn sẽ cần cờ "-p" để tạo các thư mục cha, trừ khi bạn đã tạo chúng. Lệnh này sẽ hoạt động.

$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse 
0

Tôi khuyên bạn nên sử dụng phiên bản cao hơn của hive, tức là phiên bản 1.1.0, 0.10.0 rất bị lỗi.

0
  • Chạy lệnh này và cố tạo thư mục để cấp quyền đầy đủ cho người dùng trong thư mục hdfs/user. fs hadoop -chmod -R 755/user
1

Khi thiết lập các thuộc hadoop trong cấu hình tia lửa, tiền tố họ với spark.hadoop.

bèn lập

conf.set("spark.hadoop.hive.metastore.warehouse.dir","/new/location") 

này làm việc cho phiên bản cũ của Spark. Tài sản đã thay đổi trong tia lửa 2.0.0

0

Thêm câu trả lời cho người dùng Cloudera CDH đang gặp vấn đề tương tự.

Nếu bạn đang sử dụng phân phối Cloudera CDH, hãy chắc chắn bạn đã làm theo các bước sau:

  • tung Cloudera Manager (Express/Doanh nghiệp) bằng cách nhấp vào biểu tượng máy tính để bàn.
  • trang quản lý mở Cloudera trong trình duyệt
  • Bắt đầu tất cả các dịch vụ

Cloudera có/người dùng/hive/kho thư mục được tạo theo mặc định. Chỉ có YARN và HDFS của nó có thể không hoạt động để truy cập đường dẫn này.