一、配置说明
这是在我之前yarn框架上通过加入节点,改动相关的配置文件,使得secondarynamenode独立出来的,所以这里前期的一系列琐碎配置请參考我之前的博客:
http://blog.csdn.net/u014078192/article/details/27992567
我会在这基础上讲述怎样将secondarynamenode抽调出来。
二、配置
1)先添加一台虚拟机,配置免password。关防火墙,主机名(secondarynamenode)
确保三台机器都能ping通。
2)配置文件:
a) Master上的配置:
i. Core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
Ii. Hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<!-- 值须要与实际的DataNode节点数要一致本文为1 -->
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!-- 注意创建相关的文件夹结构 -->
<value>file:/home/hadoop/hadoop/dfs/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!-- 注意创建相关的文件夹结构 -->
<value>file:/home/hadoop/hadoop/dfs/datanode</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>secondarynamenode:50090</value>
</property>
</configuration>
Iii、mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/hadoop/hadoop/tmp/mapred/system/</value>
</property>
</configuration>
B) secondartnamenode的配置
I、core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>3600</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
</configuration>
Iii、hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<!-- 值须要与实际的DataNode节点数要一致本文为1 -->
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!-- 注意创建相关的文件夹结构 -->
<value>file:/home/hadoop/hadoop/dfs/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!-- 注意创建相关的文件夹结构 -->
<value>file:/home/hadoop/hadoop/dfs/datanode</value>
</property>
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
</property>
</configuration>
Iii、mapred-site.xml配置能够沿用master中的mapred-site.xml
C)slave1上的配置(datanode)
I)core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
Ii)hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<!-- 值须要与实际的DataNode节点数要一致本文为1 -->
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!-- 注意创建相关的文件夹结构 -->
<value>file:/home/hadoop/hadoop/dfs/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!-- 注意创建相关的文件夹结构 -->
<value>file:/home/hadoop/hadoop/dfs/datanode</value>
</property>
</configuration>
Iii、mapred-site.xml配置能够沿用master中的mapred-site.xml
3)配置etc/profile,以下的代码,三台虚拟机是通用的。
#set java enviroment
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
# Hadoop
export HADOOP_HOME="/home/hadoop/hadoop"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export HADOOP_YARN_HOME=${HADOOP_HOME}
三、执行
1)格式化namenode:bin/hadoop namenode -format
2)执行:sbin/start-all.sh
master上的结果:
secondarynamenode上的结果:
slave1上的结果:
3)总结:
进程是可以启起来,但是出现一个错误:我在度娘和Google上都搜了,但是没有找到好的解决方法。我会将它发到论坛。尽快的去解决问题。