Hadoop2.5 HA搭建

准备工作:关闭防火墙,时间同步(必做)

hbase--hadoop--jdk对应关系

http://hbase.apache.org/book.html#basic.prerequisites

cool-2018-05-04-hadoop-HA环境搭建

cool-2018-05-04-hadoop-HA环境搭建


service iptables stop

ntpdate 0.asia.pool.ntp.org

1、主机映射hadoop1hadoop2hadoop3hadoop4

Vi /etc/hosts

192.168.25.151 hadoop1

192.168.25.152 hadoop2

192.168.25.153 hadoop3

192.168.25.154 hadoop4

 

2免密码登录

hadoop1hadoop2hadoop3hadoop4

ssh-****** -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

验证自己登录到自己上

如:ssh hadoop1


Hadoop1

cd ~/.ssh

Hadoop1的公钥拷贝到hadoop2hadoop3hadoop4

scp ./id_dsa.pub [email protected]:/opt/

scp ./id_dsa.pub [email protected]:/opt/

scp ./id_dsa.pub [email protected]:/opt/


hadoop2上

cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys


hadoop3

cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys

hadoop4

cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys


验证hadoop1登录到hadoop2hadoop3hadoop4

ssh hadoop2     exit

ssh hadoop3     exit

ssh hadoop4     exit


hadoop2拷贝到Hadoop1

scp ./id_dsa.pub [email protected]:/opt/

Hadoop1

cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys

ssh hadoop1


3、环境变量hadoop1hadoop2hadoop3hadoop4

vi ~/.bash_profile

export HADOOP_HOME=/home/hadoop-2.5.1

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export ZOOKEEPER_HOME=/home/zookeeper-3.4.6

export PATH=$PATH:$ZOOKEEPER_HOME/bin

source ~/.bash_profile

 

四台机器:hadoop1hadoop2hadoop3hadoop4

 

 

NN

DN

ZK

ZKFC

JN

RM

NM(任务管理)

Hadoop1

Y

 

Y

Y

 

 Y

 

Hadoop2

Y

Y

Y

Y

Y

Y

Y

Hadoop3

 

Y

Y

 

Y

 

Y

Hadoop4

 

Y

 

 

Y

 

Y

 

 在hadoop1上解压hadoop-2.5.1.tar.gz

1. core-site.xml

<configuration>

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://bjsxt</value>

</property>

<property>

   <name>ha.zookeeper.quorum</name>

   <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>

</property>

<property>

  <name>hadoop.tmp.dir</name>

  <value>/opt/hadoop</value>

</property>

</configuration>

2. hdfs-site.xml

<configuration>

<property>

  <name>dfs.nameservices</name>

  <value>bjsxt</value>

</property>

<property>

  <name>dfs.ha.namenodes.bjsxt</name>

  <value>nn1,nn2</value>

</property>

<property>

  <name>dfs.namenode.rpc-address.bjsxt.nn1</name>

  <value>hadoop1:8020</value>

</property>

<property>

  <name>dfs.namenode.rpc-address.bjsxt.nn2</name>

  <value>hadoop2:8020</value>

</property>

<property>

  <name>dfs.namenode.http-address.bjsxt.nn1</name>

  <value>hadoop1:50070</value>

</property>

<property>

  <name>dfs.namenode.http-address.bjsxt.nn2</name>

  <value>hadoop2:50070</value>

</property>

<property>

  <name>dfs.namenode.shared.edits.dir</name>

  <value>qjournal://hadoop2:8485;hadoop3:8485;hadoop4:8485/bjsxt</value

>

</property>

<property>

  <name>dfs.client.failover.proxy.provider.bjsxt</name>

  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<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>

<property>

  <name>dfs.journalnode.edits.dir</name>

  <value>/opt/hadoop/data</value>

</property>

<property>

   <name>dfs.ha.automatic-failover.enabled</name>

   <value>true</value>

</property>

</configuration>

 

3. vi hadoop-env.sh

将其中的JAVA_HOME 修改成为

export JAVA_HOME=/usr/java/jdk1.7.0_79

hadoop1拷贝到hadoop2,hadoop3,hadoop4

scp -r hadoop-2.5.1/ [email protected]:/home/

scp -r hadoop-2.5.1/ [email protected]:/home/

scp -r hadoop-2.5.1/ [email protected]:/home/

4. 准备zookeeper

a) 三台zookeeperhadoop1hadoop2hadoop3

b) 编辑zoo.cfg配置文件

i. 修改dataDir=/opt/zookeeper

ii. clientPort=2181

iii. tickTime=2000

iv. initLimit=5

v. syncLimit=2

vi. server.1=hadoop1:2888:3888

server.2=hadoop2:2888:3888

server.3=hadoop3:2888:3888

c) 在所有节点的dataDir目录中创建/opt/zookeeper,在/opt/zookeeper中创建一个myid的文件,文件内容为123

5. 配置hadoop中的slaves,分别是 hadoop2,hadoop3,hadoop4

6. 启动三个zookeeper./zkServer.sh start

7. 启动三个JournalNodehadoop-daemon.sh start journalnode

8. 在其中一个namenode上格式化:hdfs namenode -format

9. 把刚刚格式化之后的元数据拷贝到另外一个namenode

a) 启动刚刚格式化的namenode   hadoop-daemon.sh start namenode

b) 在没有格式化的namenode上执行:hdfs namenode -bootstrapStandby

c) 启动第二个namenode      hadoop-daemon.sh start namenode

10. 在其中一个namenode上初始化zkfchdfs zkfc -formatZK

11. 停止上面节点:stop-dfs.sh

12. 全面启动:start-dfs.sh


12.1 集群yarn配置,所有节点搭建分布式计算功能

vi mapred-site.xml

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>


vi yarn-site.xml

<configuration>

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>coolfxl</value>
 </property>
 <property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>hadoop1</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>hadoop2</value>
 </property>
 <property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
 </property>
</configuration>


13. 重启服务器之后:

service iptables stop

ntpdate 0.asia.pool.ntp.org

zkServer.sh start

hadoop1    start-dfs.sh

hadoop1    start-yarn.sh

hadoop2    yarn-daemon.sh start resourcemanager

任何一台含有hadoop的节点上,都可以进行创建文件

对应命令:hdfs dfs -mkdir /test    (文件夹名称)

读取文件内容

hdfs dfs -text /usr/nginx/html/index.html    (文件名称)

文件上传

hdfs dfs -put srcFile destFile

相关文章: