Hadoop集群搭建 HA
Hadoop集群搭建 HA
下载hadoop-2.7.1包
将 hadoop2.4.1 上传
解压
tar -zxvf ./hadoop-2.7.1.tar.gz
修改hadoop环境变量
export HADOOP_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el6_10.x86_64
export PATH=HADOOP_HOME/bin:$HADOOP_HOME/sbin
检验hadoop环境变量
加载源 source /etc/profile
查看版本 hadoop version
修改hadoop的配置文件
修改 hadoop-2.7.1/etc/hadoop/下的四个文件
hadoop-env.sh
配置java环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el6_10.x86_64
yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el6_10.x86_64
core-site.xml
在文件中的configuration节点里加入
<!--zookeeper服务名-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://yuniko</value>
</property>
<!--hadoop临时文件-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.7.1/tmp</value>
</property>
<!--zookeeper端口-->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
</property>
hdfs-site.xml
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop-2.7.1/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-2.7.1/hdfs/data</value>
</property>
<!--块大小-->
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<!--制定hdfs的虚拟服务名-->
<property>
<name>dfs.nameservices</name>
<value>yuniko</value>
</property>
<!--制定hdfs的虚拟服务名下的namenode的名字-->
<property>
<name>dfs.ha.namenodes.yuniko</name>
<value>nn1,nn2</value>
</property>
<!--内部通信端口-->
<property>
<name>dfs.namenode.rpc-address.yuniko.nn1</name>
<value>hadoop1:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.yuniko.nn2</name>
<value>hadoop2:9000</value>
</property>
<!--web ui通信端口-->
<property>
<name>dfs.namenode.http-address.yuniko.nn1</name>
<value>hadoop1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.yuniko.nn2</name>
<value>hadoop2:50070</value>
</property>
<!--指定journalnode数据共享目录-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop1:8485;hadoop2:8485;hadoop3:8485/yuniko</value>
</property>
<!--本地共享数据存放-->
<property>
<name>hadoop.journalnode.edits.dir</name>
<value>/home/hadoop/hadoop-2.7.1/journaldata</value>
</property>
<!--namenode失败进行自动切换的主类-->
<property>
<name>dfs.client.failover.proxy.provider.yuniko</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--指定SSh公钥位置-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!--防止多个namenode脑裂,采用某种方式杀死其中一个-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:8030</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:8088</value>
</property>
mapred-site.xml
mapred-site.xml.template 是存在的
mapred-site.xml不存在
注意:先要copy一份
cp mapred-site.xml.template mapred-site.xml
然后编辑
vim mapred-site.xml
新增以下内容
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop1:19888</value>
</property>
格式化Namenode 节点
hdfs namenode - format
添加从节点
etc/hadoop/slaves //文件下添加Dataname节点
hadoop01
hadoop02
hadoop03
复制配置信息 发送到其他机器 (环境变量+hadoop)
启动zk
zkServer.sh start
jps查看
2674 Jps
2647 QuorumPeerMain
启动journalnode服务(每台hadoop机器)
hadoop-daemon.sh start journalnode
jps查看
2739 JournalNo de
2788 Jps
2647 QuorumPeerMain
挑选两个namenode之中的一台来格式化
hdfs namenode -format
然后启动
hadoop-daemonsh start namenode
在另一台namenode的机子上拉取元数据
hdfs namenode -bootstrapStandby
格式化zkfc(在namenode节点)
hdfs zkfc -formatZK
浏览网页端口 hadoop1 :50070 查看节点状态
使用命令查看hadoop1节点状态
hdfs haadmin -getServiceState nn1
active
使用命令查看hadoop2节点状态
hdfs haadmin -getServiceState nn2
standby
在hadoop1中使用进程杀死 Namenode
kill -9 namenoded的id值
重新按照上述命令 浏览 hadoop1的和hadoop’2的值
hadoop2 状态变为active
在使用命令将hadoop1的namenode启动
hadoop-daemonsh start namenode
浏览hadoop1的状态
hadoop1 为 standby hadoop2为 active
HA高可用配置完成
可能出现的问题
指定默认文件系统名称为zookeeper的配置服务名
fs.defaultFS hdfs://yuniko
slaves 奴隶名 配置三台主机的名(三台datanode)
/etc /hosts 下主机名对相应
hdfs-site.xml中指定公钥位置
多次使用namenode格式化产生clusterID不对应
上一篇: 用cr3读写内存
下一篇: C# 添加windows应用程序日志
推荐阅读
-
Hadoop2.x的HA介绍
-
Hadoop集群(CHD4)实践之 (5) Sqoop安装
-
关于hadoop完全分布式集群搭建 博客分类: hadoop hadoop完全分布式
-
关于hadoop完全分布式集群搭建 博客分类: hadoop hadoop完全分布式
-
Hadoop集群(CDH4)实践之 (1) Hadoop(HDFS)搭建
-
Hadoop2.x的HA介绍
-
Hadoop运行环境搭建(五)
-
hadoop 集群环境Sqoop 将数据导入mysql问题 many connection err
-
Hadoop集群(CDH4)实践之 (2) HBase&Zookeeper搭建
-
WAS7集群-搭建系列-文章目录(V2014-9)