共计 5255 个字符,预计需要花费 14 分钟才能阅读完成。
Hadoop2.7.2-HA 安装配置方案如图
NN | DN | ZK | ZKFC | JN | RM | NM(任务管理器) | HMaster | Region Server | |
Node1 | 1 |
| 1 | 1 |
| 1 |
|
| 1 |
Node2 | 1 | 1 | 1 | 1 | 1 |
| 1 |
| 1 |
Node3 |
| 1 | 1 |
| 1 |
| 1 | 1 | 1 |
Node4 |
| 1 |
|
| 1 |
| 1 | 1 | 1 |
一、进入 hadoop2.7/etc/hadoop/ 文件夹,修改 hadoop-env.sh 的 JAVA_HOME 路径。
二、修改 hdfs-site.xml 配置文件
1、配置命名服务
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
2、配置所有 namenode 名字
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
3、配置 RPC 协议端口
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>node1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>node2:8020</value>
</property>
4、配置 http 端口
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>node2:50070</value>
</property>
5、配置 journalname 的 uri
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node2:8485;node3:8485;node4:8485/mycluster</value>
</property>
6、配置客户端使用的类
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
7、配置 sshfence
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_dsa</value>
</property>
8、配置 journalname 的工作目录
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/journalname/data</value>
</property>
9、开启自动切换
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
三、配置 core-site.xml 配置文件
1、配置 namenode 入口
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
2、配置 zookeeper 集群的位置
<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>
3、配置 hadoop 的工作目录
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop2</value>
</property>
四、配置 slaves
node2
node3
node4
五、进入 zookeeper 的 conf/zoo.cfg 配置 zookeeper 集群
1、
dataDir=/opt/zookeeper
2、
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
3、创建 mkdir /opt/zookeeper, 创建一个文件 myid
里面写上机器编号(node1 里写 1,Node2 里写 2)每台 zookeeper 机器都要创建
4、在 etc/profile 配置 zookeeper 的环境变量
export PATH=$PATH:/home/zookeeper-3.4.6/bin
六、启动集群
1、启动 zookeeper 集群,装有 zookeeper 都要启动,在 zookeeper/bin/zkServer.sh start
2、启动 JournalNode daemons(仅在所在的机器启动)
hadoop/sbin/
./hadoop-daemon.sh start journalnode
3、格式化 namenode(任意一个)
hadoop/bin/
./hdfs namenode -format
然后启动这个节点,复制到另一个节点
./hadoop-daemon.sh start namenode
在另一台没有格式化的机器执行
hadoop/bin 下
./hdfs namenode -bootstrapStandby
4、停止 hdfs 的所有服务
./stop-dfs.sh
5、初始化 zkfc
./hdfs zkfc -formatZK
6、启动 hdfs
./start-dfs.sh
七、配置 mapreduce
1、mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2、yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
八、配置 hbase
1、修改
hbase-env.sh 的 Javahome
和 export HBASE_MANAGES_ZK=false
2. 修改 hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/zookeeper</value>
</property>
3、修改 regionservers
node1
node2
node3
node4
4、复制 hdfss-site.xml 到 hbase/conf 下
5、启动 hbase
随意一台机器都可以启动,启动的那台机器为 hmaster
./start-hbase.sh
也可以在其他机器增加 hmaster
./hbase-daemon.sh start master
其他:
一些 /etc/profile 变量
export HADOOP_HOME=/home/hadoop-2.7.2
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib”
遇到的问题:
1、安装过程有些步骤需要关闭防火墙
2、虽然我在 64 位的 linux 上重新编译了 hadoop,并跟踪编译后端 hadoop2.7.2 进行部署。部署后启动,但出现了警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
该警告通过如下方法消除了:
在 hadoop-env.sh 中 修改 HADOOP_OPTS:
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native”
下面关于 Hadoop 的文章您也可能喜欢,不妨看看:
Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程 http://www.linuxidc.com/Linux/2015-02/113487.htm
CentOS 安装和配置 Hadoop2.2.0 http://www.linuxidc.com/Linux/2014-01/94685.htm
CentOS 6.3 下 Hadoop 伪分布式平台搭建 http://www.linuxidc.com/Linux/2016-11/136789.htm
Ubuntu 14.04 LTS 下安装 Hadoop 1.2.1(伪分布模式)http://www.linuxidc.com/Linux/2016-09/135406.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
实战 CentOS 系统部署 Hadoop 集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
Hadoop 2.6.0 HA 高可用集群配置详解 http://www.linuxidc.com/Linux/2016-08/134180.htm
Spark 1.5、Hadoop 2.7 集群环境搭建 http://www.linuxidc.com/Linux/2016-09/135067.htm
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138477.htm