[英]Restart hive service on AWS EMR
我對HIVE以及AWS-EMR也很陌生。 根據我的要求,我需要在群集外部創建Hive Metastore(從AWS EMR到AWS RDS)。 我遵循了給出的指示
我在hive-site.xml中進行了更改,並能夠將hive metaStore設置為Amazon RDS mysql服務器。 為了實現更改,目前我正在重新啟動整個集群,因此配置單元開始將Metastore存儲到AWS-RDS。 這樣它就有效了。
但我想避免重啟集群,有什么辦法可以重啟服務嗎?
僅適用於那些將來自谷歌的人
重新啟動任何EMR服務
要在EMR中重新啟動服務,請執行以下操作:
通過運行以下命令找到服務的名稱:
initctl列表
例如,YARN Resource Manager服務名為“hadoop-yarn-resourcemanager”。
通過運行以下命令停止服務:
sudo stop hadoop-yarn-resourcemanager
等待幾秒鍾,然后運行以下命令啟動服務:
sudo start hadoop-yarn-resourcemanager
注意:需要停止/啟動; 不要使用restart命令。
通過運行以下命令驗證進程是否正在運行:
sudo status hadoop-yarn-resourcemanager
使用ps檢查進程,然后檢查日志文件中是否有日志目錄/ var / log /中的任何錯誤。
資料來源: https : //aws.amazon.com/premiumsupport/knowledge-center/restart-service-emr/
sudo stop hive-metastore
sudo start hive-metastore
在EMR 5.x上我發現這個工作:
hive --service metastore --stop
hive --service metastore --start
對我來說,這種方法有效:
1和2的命令:
ps aux | grep MetaStore
sudo -u hive kill <pid from above>
在這里,如果您不熟悉ps
,可以使用以下命令,該命令將顯示PID
的標題,並且只顯示hive Metastore命令的一行:
ps aux | egrep "MetaStore|PID" | grep -v grep
Hive Server自行重啟。 再次通過ps
驗證豬會發生變化。
ps aux | grep MetaStore
您不必重新啟動整個群集。 啟動集群時,您可以使用RDS的詳細信息指定hive-site.xml文件。 如果您沒有按照此選項並在啟動群集后手動進行更改,則無需重新啟動整個群集。 只需重新啟動hive-metastore服務即可。 Hive Metastore僅在主節點中運行
您可以使用多種方式啟動集群。
1)AWS控制台2)使用API(Java,Python等)3)使用AWS cli
您可以將Hive-site.xml保留在S3中,並在啟動集群時將此活動作為引導步驟執行。 AWS api提供了從S3指定自定義hive-site.xml的功能,而不是默認創建的hive-site.xml。
如果您僅使用主計算機中的配置單元,則無需在所有計算機中進行更改。
下面給出了使用aws cli啟動EMR時指定hive-site.xml的示例
aws emr create-cluster --name "Test cluster" --ami-version 3.3 --applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type m3.xlarge --instance-count 3 \
--bootstrap-actions Name="Install Hive Site Configuration",Path="s3://elasticmapreduce/libs/hive/hive-script",\
Args=["--base-path","s3://elasticmapreduce/libs/hive","--install-hive-site","--hive-site=s3://mybucket/hive-site.xml","--hive-versions","latest"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.