AvatarNode集群测试(三)- - - - 系统部署
之前已经做好了avatar的编译工作,现在把之前的AvatarNode克隆3份,注意均要修改mac地址,修改方法在NFS服务器搭建里面写的有
克隆完后,现在已经确定可以开启5个虚拟机,包括
AvatarNode primary NameNode 192.168.0.11
StandbyNode standby NameNode 192.168.0.12
NFS nfs server 192.168.0.13
AvatarDataNode1 datanode、client 192.168.0.14
AvatarDataNode2 datanode、client 192.168.0.15
1. 启动虚拟机集群,确保jdk,ssh,ucarp,nfs都已经没有问题
2. AvatarNode的配置
① 配置/etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop-0.20.3-dev
export PATH=$HADOOP_HOME/bin:$PATH
使之生效 source /etc/profile
② 配置/etc/hosts和network
sudo vi /etc/hosts
192.168.0.11 AvatarNode
192.168.0.12 StandbyNode
192.168.0.13 NFS
192.168.0.14 AvatarDataNode1
192.168.0.15 AvatarDataNode2
sudo vi /etc/sysconfig/network
HOSTNAME=AvatarNode
③ 配置 /usr/hadoop/hadoop-0.20.3-dev/conf/hadoop-env.sh
添加
export JAVA_HOME=/home/user/jdk1.6.0_24
④ 配置 /usr//hadoop/hadoop-0.20.3-dev/conf/masters
添加
192.168.0.11
192.168.0.12
配置 /usr/hadoop/hadoop-0.20.3-dev/conf/slaves
添加
192.168.0.14
192.168.0.15
这两个文件是在执行/usr/hadoop/hadoop-0.20.3-dev/bin/start-all.sh等脚本的时候,用来远程调用其他节点的脚本
⑤ 配置 /usr/hadoop/hadoop-0.20.3-dev/conf/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- special parameters for avatarnode -->
<property>
<name>fs.default.name0</name>
<value>hdfs://0.0.0.0:9000</value>
</property>
<property>
<name>fs.default.name1</name>
<value>hdfs://192.168.0.12:9000</value>
</property>
<!-- special parameters for avatarnode -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.0.10:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
</configuration>
这里参数的意思:
fs.default.name0 是主节点的默认监听地址,也可以认为是对外提供服务的地址,当设为0.0.0.0的时候,代表在本网络所有ip上都监听
fs.default.name1 是备份结点的监听地址,设置为自己的ip
fs.default.name 是对外提供的ip地址,这里使用虚拟ip
注意,只有把fs.default.name0设置成为0.0.0.0才可以同时监听192.168.0.11这个本机实际物理IP以及192.168.0.10这个对外提供服务的虚拟IP,否则若设置成192.168.0.11也可以,但是就无法使用虚拟IP的切换功能,这样在主节点出问题的时候,各个client要修改配置文件(该为连接备份节点)才能重新取得服务,这也是虚拟IP的核心--故障切换
⑥ 配置/usr/hadoop/hadoop-0.20.3-dev/conf/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<!-- special parameters for avatarnode -->
<configuration>
<property>
<name>dfs.name.dir.shared0</name>
<value>/usr/hadoop/avatarshare/share0/namenode</value>
</property>
<property>
<name>dfs.name.edits.dir.shared0</name>
<value>/usr/hadoop/avatarshare/share0/editlog</value>
</property>
<property>
<name>dfs.http.address0</name>
<value>0.0.0.0:50070</value>
</property>
<property>
<name>dfs.name.dir.shared1</name>
<value>/usr/hadoop/avatarshare/share1/namenode</value>
</property>
<property>
<name>dfs.name.edits.dir.shared1</name>
<value>/usr/hadoop/avatarshare/share1/editlog</value>
</property>
<property>
<name>dfs.http.address1</name>
<value>192.168.0.12:50070</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/local/namenode</value>
</property>
<property>
<name>dfs.name.edits.dir</name>
<value>/usr/hadoop/local/editlog</value>
</property>
</configuration>
这里参数的意思:
dfs.name.dir.shared0: AvatarNode镜像存储路径
dfs.name.edits.dir.shared0:AvatarNode日志存储路径
dfs.http.address0:AvatarNode服务器地址
dfs.name.dir.shared1: StandbyNode镜像存储路径
dfs.name.edits.dir.shared1:StandbyNode日志存储路径
dfs.http.address1:StandbyNode服务器地址
dfs.http.address: 对外提供的服务器地址
dfs.name.dir: 本地镜像存储路径
dfs.name.edits.dir: 本地日志存储路径
3. StandbyNode的配置
① 以下的配置与AvatarNode一样,包括/etc/hosts 、/etc/profile、/usr/hadoop/hadoop-0.20.3-dev/conf/slaves、/usr/hadoop/hadoop-0.20.3-dev/conf/master、/usr/hadoop/hadoop-0.20.3-dev/conf/hadoop-env.sh
注意要修改主机名 在/etc/sysconfig/network
② core-site.xml的配置:
core-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- special parameters for avatarnode -->
<property>
<name>fs.default.name0</name>
<value>hdfs://192.168.0.11:9000</value>
</property>
<property>
<name>fs.default.name1</name>
<value>hdfs://0.0.0.0:9000</value>
</property>
<!-- special parameters for avatarnode -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.0.10:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
</configuration>
③ hdfs-site的配置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<!-- special parameters for avatarnode -->
<configuration>
<property>
<name>dfs.name.dir.shared0</name>
<value>/usr/hadoop/avatarshare/share0/namenode</value>
</property>
<property>
<name>dfs.name.edits.dir.shared0</name>
<value>/usr/hadoop/avatarshare/share0/editlog</value>
</property>
<property>
<name>dfs.http.address0</name>
<value>192.168.0.11:50070</value>
</property>
<property>
<name>dfs.name.dir.shared1</name>
<value>/usr/hadoop/avatarshare/share1/namenode</value>
</property>
<property>
<name>dfs.name.edits.dir.shared1</name>
<value>/usr/hadoop/avatarshare/share1/editlog</value>
</property>
<property>
<name>dfs.http.address1</name>
<value>0.0.0.0:50070</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/local/namenode</value>
</property>
<property>
<name>dfs.name.edits.dir</name>
<value>/usr/hadoop/local/editlog</value>
</property>
</configuration>
4. AvatarDataNode的配置:
① 以下的配置与AvatarNode一样:/etc/hosts 、/etc/profile、/usr/hadoop/hadoop-0.20.3-dev/conf/slaves、/usr/hadoop/hadoop-0.20.3-dev/conf/master、/usr/hadoop/hadoop-0.20.3-dev/conf/hadoop-env.sh
注意要修改主机名
② core-site.xml的配置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- special parameters for avatarnode -->
<property>
<name>fs.default.name0</name>
<value>hdfs://192.168.0.11:9000</value>
</property>
<property>
<name>fs.default.name1</name>
<value>hdfs://192.168.0.12:9000</value>
</property>
<!-- special parameters for avatarnode -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.0.10:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
</configuration>
③ hdfs-site.xml的配置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<!-- special parameters for avatarnode -->
<configuration>
<property>
<name>dfs.http.address0</name>
<value>192.168.0.11:50070</value>
</property>
<property>
<name>dfs.http.address1</name>
<value>192.168.0.12:50070</value>
</property>
<!-- special parameters for avatarnode -->
<property>
<name>dfs.http.address</name>
<value>192.168.0.10:50070</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/block</value>
</property>
</configuration>
参数意思:
dfs.replication表示数据块的复制分数
dfs.data.dir表示数据块存放路径
5. 创建相关目录
AvatarNode(Primary):
/usr/hadoop/avatarshare/share0/namenode
/usr/hadoop/avatarshare/share0/editlog
/usr/hadoop/local/namenode
/usr/hadoop/local/editlog
/usr/hadoop/tmp
StandbyNode(Standby):
/usr/hadoop/avatarshare/share1/namenode
/usr/hadoop/avatarshare/share1/editlog
/usr/hadoop/local/namenode
/usr/hadoop/local/editlog
/usr/hadoop/tmp
DataNode:
/usr/hadoop/block
/usr/hadoop/tmp
还要在NFS上建几个目录
/usr/hadoop/avatarshare/share0/namenode
/usr/hadoop/avatarshare/share0/editlog
/usr/hadoop/avatarshare/share1/namenode
/usr/hadoop/avatarshare/share1/editlog
6. 部署完毕,一定要注意每个文件夹的权限
补充:hadoop集群常用的端口配置
官方参考
http://hadoop.apache.org/common/docs/r0.20.2/core-default.html
http://hadoop.apache.org/common/docs/r0.20.2/hdfs-default.html
http://hadoop.apache.org/common/docs/r0.20.0/mapred-default.html
HDFS端口
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| fs.default.name | namenode RPC交互端口 | 8020 | core-site.xml | hdfs://master:8020/ |
| dfs.http.address | NameNode web管理端口 | 50070 | hdfs-site.xml | 0.0.0.0:50070 |
| dfs.datanode.address | datanode 控制端口 | 50010 | hdfs-site.xml | 0.0.0.0:50010 |
| dfs.datanode.ipc.address | datanode的RPC服务器地址和端口 | 50020 | hdfs-site.xml | 0.0.0.0:50020 |
| dfs.datanode.http.address | datanode的HTTP服务器和端口 | 50075 | hdfs-site.xml | 0.0.0.0:50075 |
MR端口
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| mapred.job.tracker | job tracker交互端口 | 8021 | mapred-site.xml | hdfs://master:8021/ |
| mapred.job.tracker.http.address | job tracker的web管理端口 | 50030 | mapred-site.xml | 0.0.0.0:50030 |
| mapred.task.tracker.http.address | task tracker的HTTP端口 | 50060 | mapred-site.xml | 0.0.0.0:50060 |
其他端口
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| dfs.secondary.http.address | secondary NameNode web管理端口 | 50090 | hdfs-site.xml | 0.0.0.0:28680 |
集群目录配置
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| dfs.name.dir | name node的元数据,以,号隔开,hdfs会把元数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉 |
{hadoop.tmp.dir} /dfs/name |
hdfs-site.xm | /hadoop/hdfs/name |
| dfs.name.edits.dir | node node的事务文件存储的目录,以,号隔开,hdfs会把事务文件冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉 | ${dfs.name.dir} | hdfs-site.xm | ${dfs.name.dir} |
| fs.checkpoint.dir | secondary NameNode的元数据以,号隔开,hdfs会把元数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉 |
${hadoop.tmp.dir} /dfs/namesecondary |
core-site.xml | /hadoop/hdfs/namesecondary |
| fs.checkpoint.edits.dir | secondary NameNode的事务文件存储的目录,以,号隔开,hdfs会把事务文件冗余复制到这些目录 | ${fs.checkpoint.dir} | core-site.xml | ${fs.checkpoint.dir} |
| hadoop.tmp.dir | 临时目录,其他临时目录的父目录 | /tmp/hadoop-${user.name} | core-site.xml | /hadoop/tmp/hadoop-${user.name} |
| dfs.data.dir | data node的数据目录,以,号隔开,hdfs会把数据存在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉 |
${hadoop.tmp.dir} /dfs/data |
hdfs-site.xm |
/hadoop/hdfs/data1/data, /hadoop/hdfs/data2/data |
| mapred.local.dir | MapReduce产生的中间数据存放目录,以,号隔开,hdfs会把数据存在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉 |
${hadoop.tmp.dir} /mapred/local |
mapred-site.xml |
/hadoop/hdfs/data1/mapred/local, /hadoop/hdfs/data2/mapred/local |
| mapred.system.dir | MapReduce的控制文件 |
${hadoop.tmp.dir} /mapred/system |
mapred-site.xml | /hadoop/hdfs/data1/system |
其他配置
| 参数 | 描述 | 默认 | 配置文件 | 例子值 |
| dfs.support.append | 支持文件append,主要是支持hbase | false | hdfs-site.xml | true |
| dfs.replication | 文件复制的副本数,如果创建时不指定这个参数,就使用这个默认值作为复制的副本数 | 3 | hdfs-site.xml | 2 |
浙公网安备 33010602011771号