天天看点

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的值。

继续阅读