Hadoop2.2.0集群的HA高可靠的最简单配置

HA集群需要使用nameservice ID区分一个HDFS集群。另外,HA中还要使用一个词,叫做NameNode ID。同一个集群中的不同NameNode,使用不同的NameNode ID区分。为了支持所有NameNode使用相同的配置文件,因此在配置参数中,需要把“nameservice ID”作为NameNode ID的前缀。

HA配置内容是在文件hdfs-site.xml中的。下面介绍关键配置项。

dfs.nameservices 命名空间的逻辑名称。如果使用HDFS Federation,可以配置多个命名空间的名称,使用逗号分开即可。

<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>

dfs.ha.namenodes.[nameservice ID] 命名空间中所有NameNode的唯一标示名称。可以配置多个,使用逗号分隔。该名称是可以让DataNode知道每个集群的所有NameNode。当前,每个集群最多只能配置两个NameNode。

<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>

dfs.namenode.rpc-address.[nameservice ID].[name node ID] 每个namenode监听的RPC地址。如下所示

<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>machine1.example.com:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>machine2.example.com:8020</value>
</property>

dfs.namenode.http-address.[nameservice ID].[name node ID] 每个namenode监听的http地址。如下所示

<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>machine1.example.com:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>machine2.example.com:50070</value>
</property>

如果启用了安全策略,也应该对每个namenode配置htts-address信息,与此类似。

dfs.namenode.shared.edits.dir 这是NameNode读写JNs组的uri。通过这个uri,NameNodes可以读写edit log内容。URI的格式"qjournal://host1:port1;host2:port2;host3:port3/journalId"。这里的host1、host2、host3指的是Journal Node的地址,这里必须是奇数个,至少3个;其中journalId是集群的唯一标识符,对于多个联邦命名空间,也使用同一个journalId。配置如下

<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node1.example.com:8485;node2.example.com:8485;node3.example.com:8485/mycluster</value>
</property>
dfs.client.failover.proxy.provider.[nameservice ID] 这里配置HDFS客户端连接到Active NameNode的一个java类。
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.Hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
dfs.ha.fencing.methods 配置active namenode出错时的处理类。当active namenode出错时,一般需要关闭该进程。处理方式可以是ssh也可以是shell。
如果使用ssh,配置如下
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>

<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/exampleuser/.ssh/id_rsa</value>
</property>

这种方法配置简单,推荐使用。

fs.defaultFS 客户端连接HDFS时,默认的路径前缀。如果前面配置了nameservice ID的值是mycluster,那么这里可以配置为授权信息的一部分。
可以在core-site.xml中配置如下
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>
dfs.journalnode.edits.dir 这是JournalNode进程保持逻辑状态的路径。这是在linux服务器文件的绝对路径。
配置如下
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/path/to/journal/node/local/data</value>
</property>
时间: 2024-10-03 23:16:08

Hadoop2.2.0集群的HA高可靠的最简单配置的相关文章

Ubuntu14.04下Hadoop2.2.0集群搭建

系统版本: master: Ubuntu 14.04  salve1: Ubuntu 14.04 hadoop: hadoop 2.2.0 1.系统配置以及安装SSH无密码登陆环境(master&slaves): 修改本机(master)和子节点(slaveN)机器名:打开/etc/hostname文件 sudo gedit /etc/hostname (修改后需重启才能生效) 修改host文件(映射各个节点IP): sudo gedit /etc/hosts 在后面添加内容为: 172.22.

Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

1 . 安装maven .libssl-dev .cmake 和JDK 安装本机库http://wiki.apache.org/hadoop/HowToContribute sudo apt-get -y install maven build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev sudo tar -zxvf jdk-7u51-linux-x64.tar.gz /usr/lib/jv

在hadoop-2.2.0集群上使用TotalOrderPartitioner进行排序时遇到的新旧接口问题

最近我所在的一个项目进行了Hadoop版本迁移,由hadoop-0.20.2迁移至hadoop-2.2.0,旧版的mapreduce Job虽然都是用旧的API写的,但在新环境下基本上都是兼容的,只有两个涉及到global sort的Job,出现了同样的问题,报错分别如下: 1.wrong key class: org.apache.hadoop.io.LongWritable is not class com.cmri.bcpdm.v2.filters.sort.NewText at org.

第一个hadoop程序(hadoop2.4.0集群+Eclipse环境)

一.Eclipse hadoop环境配置  1. 在我的电脑右键->属性->高级系统设置->环境变量,配置环境变量: JAVA_HOME=D:\ProgramFiles\Java\jdk1.7.0_67, HADOOP_HOME=D:\TEDP_Software\hadoop-2.4.0, PATH=.;%JAVA_HOME%\bin;%HADOOP_HOME%\bin; 2. 在Eclipse中安装好hadoop-eclipse-kepler-plugin-2.2.0.jar插件,并配

Eclipse环境下使用jdbc访问hive程序(hive-0.12.0 + hadoop-2.4.0集群)

一.Eclipse 新建Other->Map/Reduce Project工程 工程自动包含了相关hadoop的jar包, 另外还需分别导入以下hive和连接mysql的jar包: hive/lib/*.jar mysql-connector-java-5.1.24-bin.jar 二.启运HiveServer 命令:bin/hive --service hiveserver & 曾经执行多次这个命令没成功后,报错:Could not create ServerSocket on addre

RedHadoop创始人童小军在北京开讲“Hadoop2.0集群优化与管理”啦!

一.活动介绍 目前Hadoop的应用越来越广泛,开始被很多企业采用,且Hadoop人才十分稀缺和抢手,待遇也远比Java..Net开发好.为了帮助您快速掌握Hadoop的前沿技术,了解企业应用Hadoop的性能优化,CSDN特别邀请您参加我们精心策划的Hadoop2.0运维管理与集群安装监控管理实训班.届时,在历时一天的实训班上,RedHadoop创始人童小军将为您分享Hadoop企业应用成功案例.讲解Hadoop技术架构知识与小窍门. 期待您的加入,名额有限,感兴趣的小伙伴们欲报从速哦!另外,

Hadoop2.0集群、Hbase集群、Zookeeper集群、Hive工具、Sqoop工具、Flume工具搭建总结

实验开发环境所用软件: [[email protected] local]# ll total 320576 -rw-r--r-- 1 root root 52550402 Mar 6 10:34 apache-flume-1.6.0-bin.tar.gz drwxr-xr-x 7 root root 4096 Jul 15 10:46 flume drwxr-xr-x. 11 root root 4096 Jul 10 21:04 hadoop -rw-r--r--. 1 root root

Spark修炼之道(进阶篇)——Spark入门到精通:第一节 Spark 1.5.0集群搭建

作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 操作系统环境准备 Hadoop 2.4.1集群搭建 Spark 1.5.0 集群部署 注:在利用CentOS 6.5操作系统安装spark 1.5集群过程中,本人发现Hadoop 2.4.1集群可以顺利搭建,但在Spark 1.5.0集群启动时出现了问题(可能原因是64位操作系统原因,源码需要重新编译,但本人没经过测试),经本人测试在ubuntu 10.04 操作系统上可以顺利成功搭建.大家可以利用CentOS

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 http://www.tuicool.com/articles/naeEJbv 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 时间 2014-02-21 15:15:17  IT社区推荐资讯 原文  http://itindex.net/detail/48192-redis-sentinel-redis Redis Sentinel是一个分布式系统,可以部署多个Se