天天看點

cdh-配置其他CDH元件以使用HDFS HA配置其他CDH元件以使用HDFS HA

配置其他CDH元件以使用HDFS HA

可以将HDFS高可用性NameNodes與CDH的其他元件一起使用。

配置HBase以使用HDFS HA

配置HBase以使用HDFS HA使用Cloudera Manager

如果您将HBase配置為使用啟用HA的HDFS執行個體,則Cloudera Manager會自動為您處理HA配置。

使用指令行配置HBase以使用HDFS HA

要配置HBase使用HDFS HA,請按以下步驟操作。

1.關閉HBase群集

1.1停止Thrift伺服器和用戶端:

sudo service hbase-thrift stop
           

1.2通過關閉Master和RegionServers來停止叢集:

在主要主機上使用以下指令:

sudo service hbase-master stop
           

在承載RegionServer的每個主機上使用以下指令:

sudo service hbase-regionserver stop
           

2.配置hbase.rootdir

将hbase-site.xml中的分布式檔案系統URI更改為hdfs-site.xml中dfs.nameservices屬性中指定的名稱。用戶端還必須能夠通路hdfs-site.xml的dfs.client。*設定才能正确使用HA。

例如,假設HDFS高可用性屬性dfs.nameservices在hdfs-site.xml中設定為ha-nn。要将HBase配置為使用HA NameNode,請将相同的值指定為hbase-site.xml的hbase.rootdir值的一部分:

<!-- Configure HBase to use the HA NameNode nameservice -->
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://ha-nn/hbase</value>
</property>
           

3.重新啟動HBase

啟動HBase Master。

啟動每個HBase RegionServers。

4.HBase-HDFS HA故障排除

問題:HMasters無法啟動。

解決方案:檢查HMaster日志中的此錯誤:

-- ::, FATAL master.HMaster (HMaster.java:abort()) - Unhandled exception. Starting shutdown.
java.lang.IllegalArgumentException: java.net.UnknownHostException: ha-nn
        at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:)
        at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:)
        at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:)
...
           

如果是這樣,請确認Hadoop的hdfs-site.xml和core-site.xml檔案位于hbase / conf目錄中。如果你把你的配置放在非标準的地方,這可能是必要的。

更新Hive Metastore以使用HDFS HA

Hive Metastore可以配置為使用HDFS高可用性。

使用Cloudera Manager更新Hive Metastore以使用HDFS HA

1.去Hive服務。

2.選擇操作>停止。

注意:您可能需要先停止Hue和Impala服務(如果存在),因為它們依賴于Hive服務。

單擊停止以确認該指令。

3.備份Hive Metastore資料庫。

4.選擇“操作”>“更新Hive Metastore NameNodes”并确認該指令。

5.選擇操作>開始。

如果在更新Metastore之前停止了它們,請重新啟動Hue和Impala服務。

使用指令行更新Hive Metastore以使用HDFS HA

重要:

在不使用Cloudera Manager的系統上遵循這些指令行訓示資訊。 此資訊特别适用于CDH 5.11.x.有關其他版本的資訊,請參閱Cloudera文檔。

要配置Hive Metastore以使用HDFS HA,請更改記錄以反映在dfs.nameservices屬性中指定的位置,使用Hive metatool擷取和更改位置。

注意:在嘗試更新Hive Metastore以使用HDFS HA之前,請關閉Metastore并将其備份到持久存儲區。

如果您不确定使用哪個版本的Avro SerDe,請同時使用serdePropKey和tablePropKey參數。例如:

$ hive --service metatool -listFSRoot
.
.
.
hdfs://<oldnamenode>.com/user/hive/warehouse

$ hive --service metatool -updateLocation hdfs://<new_nameservice1>
hdfs://<oldnamenode>.com -tablePropKey <avro.schema.url> 
-serdePropKey <schema.url>
.
.
.
$ hive --service metatool -listFSRoot
.
.
.
hdfs://nameservice1/user/hive/warehouse
           

其中:

hdfs://oldnamenode.com/user/hive/warehouse 辨別NameNode的位置

hdfs://nameservice1 指定新的位置并且應該比對dfs.nameservices屬性的值。

tablePropKey是一個表屬性鍵,其值字段可能引用HDFS NameNode位置,是以可能需要更新。要更新Avro SerDe模式URL,請為此參數指定avro.schema.url。

serdePropKey是SerDe屬性鍵,其值域可能引用HDFS NameNode位置,是以可能需要更新。要更新Haivvero模式URL,請為此參數指定schema.url。

注意:Hive metatool是盡力更新盡可能多的Hive Metastore記錄的盡力服務。如果在記錄更新期間遇到錯誤,則跳到下一條記錄。

使用Cloudera Manager将Hue配置為使用HDFS HA

1添加HttpFS角色。

2指令完成後,轉到Hue服務。

3單擊配置頁籤。

4找到HDFS Web界面角色屬性或通過在搜尋框中鍵入其名稱來搜尋它。

5選擇您剛建立的HttpFS角色而不是NameNode角色,然後儲存更改。

6重新啟動Hue服務。

配置Impala以使用HDFS HA

1如上一節所述,完成重新配置Hive Metastore資料庫的步驟。 Impala與Hive共享相同的底層資料庫,以管理資料庫,表格等的中繼資料。

2從Impala shell發出INVALIDATE METADATA語句。此一次性操作使群集中的所有Impala守護程式都知道Hive Metastore資料庫的最新設定。或者,重新啟動Impala服務。

配置Oozie以使用HDFS HA

要将Oozie工作流配置為使用HDFS HA,請使用HDFS名稱服務,而不是工作流的元素中的NameNode URI。

例如:

<action name="mr-node">
  <map-reduce>
    <job-tracker>${jobTracker}</job-tracker>
    <name-node>hdfs://ha-nn
           

其中ha-nn是hdfs-site.xml中dfs.nameservices的值。

繼續閱讀