cdh-配置其他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日志中的此错误:

2012-05-17 12:21:28,929 FATAL master.HMaster (HMaster.java:abort(1317)) - Unhandled exception. Starting shutdown.
java.lang.IllegalArgumentException: java.net.UnknownHostException: ha-nn
        at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:431)
        at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:161)
        at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:126)
...

如果是这样,请确认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的值。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值