2016-05-09 24 views
5

Tôi đang cố gắng sử dụng Presto trên thùng S3 của Amazon, nhưng không tìm thấy nhiều thông tin liên quan trên Internet.Presto trên Amazon S3

Tôi đã cài đặt Presto trên một phiên bản vi mô nhưng tôi không thể tìm ra cách tôi có thể kết nối với S3. Có một cái xô và có những tập tin trong đó. Tôi có một máy chủ lưu trữ di động hive và tôi đã cấu hình nó trong presto hive.properties. Nhưng khi tôi cố gắng chạy lệnh LOCATION trong hive, nó không hoạt động.

CNTT ném lỗi nói không thể tìm thấy loại lược đồ s3.

Và tôi cũng không biết tại sao chúng ta cần chạy hadoop nhưng không có hadoop tổ ong không chạy. Có lời giải thích nào cho điều này không.

Thisthis là tài liệu tôi đã theo dõi khi thiết lập.

Trả lời

2

Presto sử dụng Hast metastore để ánh xạ các bảng cơ sở dữ liệu đến các tệp cơ bản của chúng. Các tệp này có thể tồn tại trên S3 và có thể được lưu trữ ở một số định dạng - CSV, ORC, Parquet, Seq, v.v.

Di tích Hive thường được điền thông qua HQL (Hive Query Language) bằng cách phát hành câu lệnh DDL như CREATE EXTERNAL TABLE ... một mệnh đề LOCATION ... tham chiếu đến các tệp cơ bản chứa dữ liệu.

Để có được Presto kết nối với một kho lưu trữ Hive, bạn cần chỉnh sửa tệp hive.properties (EMR đặt số này trong /etc/presto/conf.dist/catalog/) và đặt tham số hive.metastore.uri cho dịch vụ tiết kiệm của dịch vụ di chuyển Hive thích hợp.

Các trường hợp cụm Amazon EMR sẽ tự động định cấu hình cho bạn nếu bạn chọn Hive và Presto, do đó, đây là nơi tốt để bắt đầu.

Nếu bạn muốn thử nghiệm điều này trên một cá thể ec2 độc lập thì tôi khuyên bạn trước hết nên tập trung vào việc nhận dịch vụ hive hoạt động với cơ sở hạ tầng Hadoop. Bạn có thể xác định các bảng nằm cục bộ trên hệ thống tệp hdfs. Presto bổ sung hive, nhưng không yêu cầu thiết lập hive hoạt động, các câu lệnh ddl gốc của presto không phải là tính năng hoàn chỉnh như tổ ong, vì vậy bạn sẽ thực hiện hầu hết việc tạo bảng từ tổ ong trực tiếp.

Ngoài ra, bạn có thể xác định trình kết nối Presto cho cơ sở dữ liệu mysql hoặc postgresql, nhưng nó chỉ là một jdbc đi qua làm tôi không nghĩ rằng bạn sẽ đạt được nhiều.

+0

Cảm ơn bạn đã trả lời. Tôi muốn thử presto với chi phí hoàn toàn không liên quan. Vui lòng kiểm tra các chỉnh sửa, tôi đã nghi ngờ nhiều hơn sau khi đi qua các tài liệu có liên quan mà bạn vừa đề cập. – Codex

+0

Với Amazon EMR tôi sẽ chịu chi phí vì vậy tôi đang cố gắng tránh điều đó. Có cách nào để giải quyết vấn đề này không. – Codex

+1

Tôi đã viết [bài đăng] sau đây (http://blog.danielcorin.com/code/2016/04/11/querying-s3-with-presto.html) năm ngoái về chủ đề này. Tôi đã không cố gắng thiết lập kể từ nhưng có một cơ hội nó có thể giúp đỡ. Ý tưởng chung là sử dụng vùng chứa Docker làm kho lưu trữ Hive để bạn không cần dịch vụ được quản lý như EMR chỉ nhằm mục đích định tuyến truy vấn Presto của bạn. –