hadoop部署(单机、HA、HA+federation)

Hadoop目录结构及其意思:

hadoop部署(单机、HA、HA+federation)


单机部署:

1、tar -zvxf java.......tar.gz

2、tar -zvxf hadoop .... .tar.gz

3、修改hadoop 目录下的etc/hadoop/hadoop-env.sh

Java_home配置:

export JAVA_HOME = jdk地址

4、修改hadoop 目录下的etc/hadoop/mapred-site.xml

  <configuration>

<property>

  <name>mapreduce.framework.name</name>

  <value>yarn</value>

</property>

</configuration>

5、修改slaves文件

加上 slaves的主机名

6、修改core-site.xml

   <property>

 <name>fs.default.name</name>

 <value>hdfs://YARN001:8020</value>

   </property>

  其中YARN001 /etc/hosts 下配置

7、修改yarn-site.xml

    <property>

 <name>yarn.nodemanager.aux-services</name>

 <value>mapreduce_shuffle</value>

    </property>

 

8、修改core-site.xml,配置副本数量

<property>

<name>dfs.replication</name>   

<value>1</value>

</property>

9、格式化hdfsbin/hadoop namenode -format

10、启动hdfs: sbin/ start-dfs.sh

11、启动yarn: sbin/ start-yarn.sh

 

Yarn web:   http://yarn001:8088

Hdfs web:   http://yarn001:50070

 

 

重启失败:

修改core-site.xml

  <property>

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

 <value>home/luobida/hadoop/dfs/name</value>

   </property>

<property>

<name>dfs.namenode.data.dir</name>

<value>home/luobida/hadoop/dfs/data</value>

</property>

 

如果不配置的话,hadoop会默认配置到linux/tmp目录下,然而/tmp目录在linux重启都会被清空,需要重新格式化,并且会丢失namenode上元信息,从而与datanode上的信息不一致。


多机部署(生产环境):

Hdfs ha 部署:

hadoop部署(单机、HA、HA+federation)

hdfs-site.xml各个配置的解释:

dfs.nameservices :集群中命名服务列表

dfs.ha.namenodes.${ns}:命名服务中的namenode的逻辑名称

dfs.namenode.rpc-address.${ns}.${nn}:命名服务中逻辑名称对应的rpc地址

dfs.namenode.http-address.${ns}.${nn}:命名服务中逻辑名称对应的http地址

dfs.namenode.name.dir:  namenode存放目录

dfs.namenode.shared.edits.dir:  主备namenode同步元信息的共享存储系统

dfs.journalnode.edits.dir:  journalnode数据存放的目录

 

 

hdfs-site.xml配置:

hadoop部署(单机、HA、HA+federation)

hadoop部署(单机、HA、HA+federation)

core-site.xml配置:namenode地址

   hadoop部署(单机、HA、HA+federation)


slaves配置:

hadoop部署(单机、HA、HA+federation)

启动方式:

1、启动各个节点上的journalnode服务:sbin/hadoop-daemon.sh start journalnode

2、格式化namenode1,并且启动namenode1bin/hdfs namenode -format    

                                                      sbin/hadoop-daemon.sh start namenode

3、namenode2上同步元信息:bin/hdfs namenode bootstrapStandby

4、启动namenode2sbin/hadoop-daemon.sh start namenode

5、namenode1切换为activebin/hdfs haadmin -transitionToActive nn1

6、namenode1上启动datanodesbin/hadoop-daemons.sh start datanode




Hdfs HA+federation:

架构图:

hadoop部署(单机、HA、HA+federation)

Hdfs-site.xml配置:

hadoop部署(单机、HA、HA+federation)

hadoop部署(单机、HA、HA+federation)



hadoop-cluster1中nn1和nn2配置如下(hdfs-site.xml):

<property>

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

   <value>qjournal://SY-0355:8485;SY-0225:8485;SY-0226:8485;/hadoop-cluster1</value>

</property>


hadoop-cluster2中nn3和nn4配置如下(hdfs-site.xml):

<property>

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

   <value>qjournal://SY-0355:8485;SY-0225:8485;SY-0226:8485;/hadoop-cluster2</value>

</property>


启动:

在nn1和nn2节点上进行如下操作:

1、在各个journalnode节点上: sbin/hadoop-daemon.sh start journalnode

2、在nn1上,进行格式化和启动:

      bin/hdfs namenode -format -clusterId hadoop-cluster

      sbin/hadoop-daemon.sh start namenode

3、在nn2上,同步nn1上元信息:bin/hdfs namenode -bootstrapStandby

4、在nn2启动namenode

(经过上面四步后,nn1和nn2还是处于standby状态)

5、在nn1上,将namenode切换成active状态:bin/hdfs haadmin -ns hadoop-cluster1 -transitionToActive nn1


在nn3和nn4节点上进行如下操作:

1、在各个journalnode节点上: sbin/hadoop-daemon.sh start journalnode

2、在nn3上,进行格式化和启动:

      bin/hdfs namenode -format -clusterId hadoop-cluster

      sbin/hadoop-daemon.sh start namenode

3、在nn4上,同步nn3上元信息:bin/hdfs namenode -bootstrapStandby

4、在nn4启动namenode

(经过上面四步后,nn3和nn4还是处于standby状态)

5、在nn3上,将namenode切换成active状态:bin/hdfs haadmin -ns hadoop-cluster1 -transitionToActive nn3


最后:在nn1上启动datanode:

sbin/hadoop-daemons.sh start datanode