hadoop部署(单机、HA、HA+federation)
Hadoop目录结构及其意思:
单机部署:
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、格式化hdfs:bin/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 部署:
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配置:
core-site.xml配置:主namenode地址
slaves配置:
启动方式:
1、启动各个节点上的journalnode服务:sbin/hadoop-daemon.sh start journalnode
2、格式化namenode1,并且启动namenode1:bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode
3、在namenode2上同步元信息:bin/hdfs namenode bootstrapStandby
4、启动namenode2: sbin/hadoop-daemon.sh start namenode
5、将namenode1切换为active:bin/hdfs haadmin -transitionToActive nn1
6、在namenode1上启动datanode:sbin/hadoop-daemons.sh start datanode
Hdfs HA+federation:
架构图:
Hdfs-site.xml配置:
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