2014-03-25 183 views
0

在Amazon Elastic MapReduce集羣上運行WebHCat是可能的還是可取的?亞馬遜EMR上的WebHCat?

我對這項技術很陌生,不知道是否有可能使用WebHCat作爲REST接口來運行Hive查詢。正在討論的羣集正在運行Hive。

回答

1

我是不是能夠得到它的工作,但WebHCat實際上是默認在Amazon的EMR實例安裝。

要讓它運行,你必須做到以下幾點,

chmod u+x /home/hadoop/hive/hcatalog/bin/hcat 
chmod u+x /home/hadoop/hive/hcatalog/sbin/webhcat_server.sh 
export TEMPLETON_HOME=/home/hadoop/.versions/hive-0.11.0/hcatalog/ 
export HCAT_PREFIX=/home/hadoop/.versions/hive-0.11.0/hcatalog/ 
/home/hadoop/hive/hcatalog/webhcat_server.sh start 

然後,您可以確認它的端口50111使用curl運行,

curl -i http://localhost:50111/templeton/v1/status 

要對你有其他的機器打50111在EC2 EMR安全組中打開端口。

然後您必須配置用戶,當您在hcatalog中運行查詢時,您將要「代理」。我實際上並沒有保存這個配置,但它是outlined in the WebHCat documentation。我希望他們在那裏有一些具體的例子,但基本上我最終將本地的「hadoop」用戶配置爲運行查詢的用戶,而不是我確信的最安全的事情,但我只是想讓它啓動並運行。

試圖查詢,然後給了我這個錯誤,

{ 「錯誤」: 「服務器IPC版本9不能與客戶端版本 4溝通」}

的解決方法是關閉最新的EMR鏡像(帶Hadoop 2.2.0的3.0.4),並切換到Hadoop 1.0鏡像(2.4.2和Hadoop 1.0.3)。

然後我又碰到了另一個問題,在找不到Hive jar之後,我決定花費足夠的時間嘗試讓它工作,並決定直接與Hive通信(使用針對Ruby的RBHive和針對JVM的JDBC)。

爲了回答我自己的問題,可以在EMR上運行WebHCat,但它沒有記錄(谷歌搜索引導我無處可去,這就是爲什麼我首先創建了這個問題,它是目前搜索時的第一個搜索結果「WebHCat EMR」)和WebHCat文檔有很多不足之處。讓它起作用似乎是一種痛苦,儘管我希望通過寫出最初的步驟來讓人們繼續前進,然後繼續前進併發佈一個完整的答案。

0

我沒有測試它,但它應該是可行的。

EMR允許自定義引導操作,即腳本在節點啓動的位置運行。您可以使用引導操作來安裝其他軟件並更改集羣上應用程序的配置。 在http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html處查看更多詳細信息。

我將創建一個shell腳本來安裝WebHCat和第一定期EC2實例測試腳本(EMR環境之外 - 就像一個測試,以確保您的腳本是OK)

您可以使用EC2的user-data properties測試你的腳本,通常爲:

#!/bin/bash curl http://path_to_your_install_script.sh | sh

然後 - 一旦你知道的腳本工作 - 使其可在S3存儲集羣和follow these instructions to include your script羣集的定製引導作用。

--Seb