`

hadoop-2.0-cdh4 HA 解决方案安装文档

 
阅读更多

 

 

1.安装NFS,配置共享目录

安装配置NFS

NFS是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。CentOS系统中如何安装和配置nfs呢,下面我们就来学习一下方法。首先我们来介绍一些会用到的CentOS系统命令。

1. 安装

$yum -y install nfs-utils

2. 创建共享目录

$su root (切换到root用户,因为NFS只能被root用户使用)

$mkdir –p /smp/hadoop-cdh4

$chmod –R 777 /smp/hadoop-cdh4 (因为是root用户创建,要给当前用户赋可读写的权限)

3. 配置

$vi /etc/exports

在配置文件中添加你要共享的目录等信息,例如:

/smp/hadoop-cdh4 *(rw,sync,no_root_squash)

内容具体参数说明如下:

[共享的目录] [主机名或IP(参数,参数)]

其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。

CentOS系统中,当主机名或IP地址为空时,则代表共享给任意客户机提供服务。

当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:

[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

下面是一些NFS共享的常用参数:

 

1.	ro          只读访问  
2.	rw          读写访问  
3.	sync        所有数据在请求时写入共享  
4.	async       NFS在写入数据前可以相应请求  
5.	secure      NFS通过1024以下的安全TCP/IP端口发送  
6.	insecure    NFS通过1024以上的端口发送  
7.	wdelay      如果多个用户要写入NFS目录,则归组写入(默认)  
8.	no_wdelay   如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。  
9.	hide        在NFS共享目录中不共享其子目录  
10.	no_hide     共享NFS目录的子目录  
11.	subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)  
12.	no_subtree_check        和上面相对,不检查父目录权限  
13.	all_squash  共享文件的UID和GID映射匿名用户anonymous,适合公用目录。  
14.	no_all_squash           保留共享文件的UID和GID(默认)  
15.	root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)  
16.	no_root_squash          root用户具有根目录的完全管理访问权限  
17.	anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID  
 

 

anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID

4. 启动

$/etc/init.d/nfs restart

在你要共享的机器上同样使用root用户创建同步的目录并赋读写权限,并挂在该目录,具体的命令如下:

 

$mkdir –p /smp/avatarshare
$mount -v -t nfs -o tcp,soft,retry=20,timeo=20,rsize=32768,wsize=32768  hadoop04:/smp/hadoop-cdh4 /smp/hadoop-cdh4	
 

 

到此我们就将NFS配置并启动好了

 

4.安装zookeeper-3.4.2

下载zookeeper-3.4.2.tar.gz http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.2/zookeeper-3.4.2.tar.gz

将tar包解压到指定目录

tar zxvf zookeeper-3.4.2.tar.gz

修改zookeeper配置

将zookeeper安装目录下conf/zoo_sample.cfg重命名为zoo.cfg

修改其中的内容

 

 

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/home/hadoop/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
 

 

 

在配置的dataDir目录下创建一个myid文件,里面写入一个0-255之间的一个随意数字,每个zookeeper上这个文件的数字要是不一样的

修改下面的内容变成你自己的服务器地址

server.1=hadoop01:2888:3888

server.2=hadoop02:2888:3888

server.3=hadoop03:2888:3888

分别启动所有的zookeeper

bin/zkServer.sh start

使用客户端连接zookeeper测试是否成功

bin/zkCli.sh -server ip地址:clientPort

 

 

 

 

2.修改hadoop安装目录下etc/hadoop/core-site.xml

加入以下内容

 

<!--fs.default.name for MRV1 ,fs.defaultFS for MRV2(yarn) -->
<property>
     <name>fs.defaultFS</name>
	 <!--这个地方的值要和hdfs-site.xml文件中的dfs.federation.nameservices一致-->
     <value>hdfs://dinglicom</value>
</property>
<property>
  <name>ha.zookeeper.quorum</name>
  <value>hadoop03:2181,hadoop04:2181,hadoop05:2181</value>
</property>
 

 

 

3.修改hdfs-site.xml

 

 

<!--配置dfs.nameservices 这个名称可以随意,如果同时还使用HDFS 的Federation机制,则应该使用逗号分隔nameservices列表-->
<property>
  <name>dfs.federation.nameservices</name>
  <value>dinglicom</value>
</property>

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/hadoop/hadoop-cdh4-nn</value>
</property>
<!--配置:dfs.ha.namenodes.[nameservice ID]. 下面的dinglicom是nameservice ID,nn1和nn2是每台namenode的serviceId。-->
<property>
  <name>dfs.ha.namenodes.dinglicom</name>
  <value>nn1,nn2</value> 
</property>
<!--配置rpc通信地址:dfs.namenode.rpc-address.[nameservice ID].-->
<property>
  <name>dfs.namenode.rpc-address.dinglicom.nn1</name>
  <value>hadoop01:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.dinglicom.nn2</name>
  <value>hadoop02:8020</value>
</property>
<!--配置http通信地址:dfs.namenode.http-address.[nameservice ID].-->
<property>
  <name>dfs.namenode.http-address.dinglicom.nn1</name>
  <value>hadoop01:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.dinglicom.nn2</name>
  <value>hadoop02:50070</value>
</property>

<!--配置 dfs.namenode.shared.edits.dir 是主备namenode共享目录,这里要求主备都可以读写,采用NFS实现共享-->
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>/smp/hadoop-cdh4</value>
</property>
<!--配置客户端failover,解决客户端故障转移-->
<property>
  <name>dfs.client.failover.proxy.provider.dinglicom</name> 
  <value>org.apache.Hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<!--配置:Fencing,
这里dfs.ha.fencing.methods实现的方法有两种sshfence和shell,我下面实现的是sshfence,dfs.ha.fencing.ssh.private-key-files这个是ssh的key file ,用于在Active 节点切换期间的安全机制,确保在任何时间都只有一个NameNode 处于活跃状态。在故障切换期间,haadmin 命令确保在将其它NameNode 转换为Active 状态之前Active 节点处在Standby 状态,或其进程已被终止。
至少应该配置一个,因为没有默认配置,因此如果配置则HA 机制将会失效。
如果要实现自定义的安全机制,参照org.apache.hadoop.ha.NodeFencer
-->
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/smp/.ssh/id_rsa</value>
</property>
<!--启用失败自动切换-->
<property>
  <name>dfs.ha.automatic-failover.enabled</name>
  <value>true</value>
</property>
<!--配置zk集群信息-->
<property>
  <name>ha.zookeeper.quorum</name>
  <value>hadoop03:2181,hadoop04:2181,hadoop05:2181</value>
</property>
<!--datanode数据存放目录-->
<property>
    <name>dfs.data.dir</name>
    <value>/home/hadoop/hadoop-cdh4-dn</value>
</property>
 

 

4.namenode格式化

bin/hadoop namenode -format -clusterid cluster1

 

5. HDFS (HA) 的初始化

设定所有的必要配置项后,必须首先同步两个NameNode 上的元数据。如果是新建的HDFS 集群,则应首先格式化一个NameNode ,或者想把非HA 集群转换为HA 集群,按照dfs.namenode.name.dir 、dfs.namenode.edits.dir 的配置把当前NameNode 节点的元数据目录复制到另一个NameNode. 还应该确保共享存储目录下(dfs.namenode.shared.edits.dir ) 包含NameNode 所有的元数据

 

6.zk格式化

bin/hdfs zkfc -formatZK

 

7.HDFS(HA) 的管理

sbin/start-dfs.sh

默认以HA 方式启动集群,启动后为Standby 状态,使用如下命令设置Active 节点 (手动方式)

bin/hdfs haadmin –DFSHAadmin –transitionToActive nn1

如果让nn2 成为变为active nn1 变为standby ,则

# bin/hdfs haadmin -DfSHAadmin -failover nn1 nn2

如果失败(is not ready to become active) 则

# bin/hdfs haadmin -DfSHAadmin -failover --forceactive nn1 nn2

具体参照bin/hdfs haadmin命令

 

 

分享到:
评论

相关推荐

    hadoop-2.6.0-cdh5.15.1.tar.gz

    大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz

    hadoop-2.6.0.tar.gz&hadoop-2.6.0-cdh5.16.2.tar.gz

    而hadoop-2.6.0-cdh5.16.2.tar.gz则是Cloudera公司推出的基于Hadoop 2.6.0的CDH(Cloudera Distribution Including Apache Hadoop)版本。CDH是业界广泛采用的企业级Hadoop发行版,它不仅集成了Hadoop的核心组件,还...

    hadoop-2.6.0-cdh5.14.2.tar.gz

    标题中的"hadoop-2.6.0-cdh5.14.2.tar.gz"是一个针对Apache Hadoop的软件包,具体来说是CDH(Cloudera Distribution Including Apache Hadoop)5.14.2版本,它基于Hadoop 2.6.0。CDH是由Cloudera公司提供的一个开源...

    flink-shaded-hadoop-2-uber-3.0.0-cdh6.2.0-7.0.jar(jar包).rar

    Flink jar包,官网下载很慢,有需要的自行下载 Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink...

    flink-shaded-hadoop-2-uber-3.0.0-cdh6.2.0-7.0.jar

    # 解压命令 tar -zxvf flink-shaded-hadoop-2-uber-3.0.0-cdh6.2.0-7.0.jar.tar.gz # 介绍 用于CDH部署 Flink所依赖的jar包

    pentaho-hadoop-shims-cdh61-kar-9.1.2020.09.00-324.kar

    kettle 9.1 连接hadoop clusters (CDH 6.2) 驱动

    hadoop-0.20.2-CDH3B4.tar.gz下载

    在sqoop-1.2.0版本下,若想在安装了Hadoop-0.20.2的环境中正常运行,我们需要确保sqoop的lib目录包含Hadoop的相关库。解压"Hadoop-0.20.2-CDH3B4.tar.gz"后,我们可以将其中的库文件复制到sqoop的lib目录,确保sqoop...

    hadoop-common-2.6.0-cdh5.8.4.jar

    hadoop-common-2.6.0-cdh5.8.4.jarhadoop-common-2.6.0-cdh5.8.4.jar

    hadoop-2.6.0-cdh5.14.0-with-centos6.9.tar.gz

    这个压缩包“hadoop-2.6.0-cdh5.14.0-with-centos6.9.tar.gz”是针对CDH(Cloudera Distribution Including Apache Hadoop)版本5.14.0的Hadoop 2.6.0安装包,特别优化以适应CentOS 6.9操作系统。在大数据领域,...

    hadoop-2.6.0-cdh5.7.0.tar.gz

    在这个“hadoop-2.6.0-cdh5.7.0.tar.gz”压缩包中,我们可以预期找到的是一个完整的Hadoop 2.6.0 CDH5.7.0安装包。这个安装包通常会包含以下几个关键部分: 1. **Hadoop Distributed File System (HDFS)**:HDFS是...

    hadoop-2.6.0-cdh5.7.0版本.zip

    6. **Hadoop安装与配置**: 安装Hadoop-2.6.0-cdh5.7.0版本需要配置集群环境,包括设置环境变量、配置集群节点间通信、初始化HDFS和YARN等。同时,还需要考虑安全性、监控和性能优化等方面。 7. **Hadoop应用开发**:...

    编译hadoop-2.5.0-cdh5.3.6 + snappy 源码的native包

    4. **编译Hadoop**: - 解压Hadoop源码,进入目录。 - 修改`build.xml`文件,确保配置了正确的Snappy路径,通常是在`&lt;property name="snappy.home" value="/usr/local"/&gt;`这一行中。 - 运行`ant clean`清理旧的...

    hadoop-2.6.0-cdh5.14.2.tar

    hadoop-2.6.0-cdh5.14.2.tar.gz适用于Linux环境,centos7已测试

    hadoop-2.6.0-cdh5.16.2的压缩包.rar

    主要是因为hadoop的cdh5官网收费,项目下载不了了,上传我下载的到csdn方便各位下载

    Hadoop-2.0-NameNode-HA和Federation实践1

    在Hadoop 2.0中,NameNode的High Availability(HA)和Federation是为了解决传统Hadoop架构中的两个关键问题:单点故障和集群扩展性。在Hadoop 2.0之前,NameNode作为HDFS的核心组件,它的单点故障可能导致整个...

    hadoop-yarn-common-2.6.5-API文档-中文版.zip

    赠送原API文档:hadoop-yarn-common-2.6.5-javadoc.jar 赠送源代码:hadoop-yarn-common-2.6.5-sources.jar 包含翻译后的API文档:hadoop-yarn-common-2.6.5-javadoc-API文档-中文(简体)版.zip 对应Maven信息:...

    hadoop-2.6.0-cdh5.7.0.tar.gz和jdk-7u80-linux-x64.tar.gz安装包

    CDH(Cloudera Distribution Including Apache Hadoop)是Cloudera公司提供的一个企业级Hadoop发行版,包含多个开源大数据组件,如HBase、Hive、Pig等,提供了一整套数据管理解决方案。 接着,我们来看看JDK。Java ...

    hadoop-2.6.0-cdh5.15.2编译版本(CentOS 7.3)

    带编译所需的maven库,hadoop-2.6.0-cdh5.15.2在CentOS Linux release 7.3.1611重新编译的版本

    hadoop2.6.0-cdh5.14.0 源码

    hadoop-2.6.0-cdh5.14.0 源码 。

Global site tag (gtag.js) - Google Analytics