欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【转】Hadoop0.23.0初探2---HDFS Federation部署

程序员文章站 2022-05-31 10:28:01
...

Hadoop的目录文件结构:
.
|-- LICENSE.txt
|-- NOTICE.txt
|-- README.txt
|-- bin
|-- conf
|-- etc
|-- export_hadoop.sh
|-- hadoop-0.23.0-gridmix.jar
|-- hadoop-0.23.0-streaming.jar
|-- hadoop-mapreduce-0.23.0-sources.jar
|-- hadoop-mapreduce-0.23.0.jar
|-- hadoop-mapreduce-examples-0.23.0-sources.jar
|-- hadoop-mapreduce-examples-0.23.0.jar
|-- hadoop-mapreduce-test-0.23.0-sources.jar
|-- hadoop-mapreduce-test-0.23.0.jar
|-- hadoop-mapreduce-tools-0.23.0-sources.jar
|-- hadoop-mapreduce-tools-0.23.0.jar
|-- lib
|-- libexec
|-- logs
|-- modules
|-- sbin
`-- share

与之前版本最大区别是增加了etc、share、libexec目录。
在搭建Hadoop之前,我在baidu上搜索到了一篇博文
http://www.blogjava.net/shenh062326/archive/2011/11/28/363472.html
然后各种碰壁,各种问题。于是再次回归Google,回归Apache-Hadoop的doc文档,http://hadoop.apache.org /common/docs/r0.23.0/hadoop-yarn/hadoop-yarn-site/Federation.html,hadoop 那些大佬们写得都是片段,另外不知道我的版本是不是和它们的不一致还是其它原因,还是遇到很多没有道理的问题。于是,安下心来,一边往源码里打Log,一 遍调整配置文件,最终还是配置成功了。这篇博文将正确的配置过程还原给Hadoop-0.23.0的用户。
1、下载Hadoop-0.23.0
wget http://labs.renren.com/apache-mirror//hadoop/core/hadoop-0.23.0/hadoop-0.23.0.tar.gz
wget http://labs.renren.com/apache-mirror//hadoop/core/hadoop-0.23.0/hadoop-0.23.0-src.tar.gz
(ps:renren网提供的apache镜像还是挺快的,如果链接不行的话,从列表中选一个http://www.apache.org/dyn/closer.cgi/hadoop/core/)
2、解压
tar -xvzf hadoop-0.23.0.tar.gz
3、配置集群的环境
在~/.bashrc文件内添加
#hadoop 0.23 required settings
export HADOOP_DEV_HOME=/home/jiangbing/hadoop-0.23.0 #设置你hadoop的路径,需要修改一下
export HADOOP_MAPRED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=/opt/jiangbing/hdfs23/conf #conf目录也可以按照Hadoop-0.20.*版本的特点设置在${HADOOP_DEV_HOME}/conf文件夹下。
export HDFS_CONF_DIR=/opt/jiangbing/hdfs23/conf #可单独设置路径
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/conf #可单独设置路径
如果home目录是通过NFS挂载共享的,只需在一个节点修改即可,其它节点由于挂载了/home目录,可以读取该内容。
4、安装Java、配置ssh。由于这部分与Hadoop-0.20.*的配置相同,这里不再赘述。
5、配置Hadoop内部的环境
cd ~/hadoop-0.23.0
cp share/hadoop/common/templates/conf/* $HDFS_CONF_DIR
1)修改hadoop-env.sh中的JAVA_HOME路径
由于hadoop-env.sh默认使用了export JAVA_HOME=${JAVA_HOME},如果在配置JAVA环境时,已经添加到bash中,这步可以省略。
实验使用的集群节点:gb17,gb18,gb19,gb20,gb21,gb22,配置gb17,gb18为两个namenode,分别作为ns1和ns2,HDFS配置图如下:


【转】Hadoop0.23.0初探2---HDFS Federation部署
            
    
    博客分类: hadoop hadoop2hadoop 
图1 HDFS节点配置图


2)${HDFS_CONF_DIR}/core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>fs.trash.interval</name>
    <value>360</value>
    <description>Number of minutes between trash checkpoints.
      If zero, the trash feature is disabled.
    </description>
  </property>
  <property>
     <name>hadoop.tmp.dir</name>
     <value>file:///opt/jiangbing/hadoop23</value>
     <description>A base for other temporary directories.</description>
  </property>
</configuration>

请注意在多个NameNode情况下,core-site.xml不需要设置fs.defaultFS,只需在下面hdfs-site.xml设置对应内容即可。
3)${HDFS_CONF_DIR}/hdfs-site.xml

<configuration>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///opt/jiangbing/hdfs23</value>
  </property>
  <property>
    <name>dfs.federation.nameservices</name>
    <value>ns1,ns2</value>
  </property>
  <property>
    <name>dfs.namenode.rpc-address.ns1</name>
    <value>gb17:9000</value>
  </property>
  <property>
    <name>dfs.namenode.http-address.ns1</name>
    <value>gb17:23001</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address.ns1</name>
    <value>gb17:23002</value>
  </property>
  <property>
    <name>dfs.namenode.rpc-address.ns2</name>
    <value>gb18:9000</value>
  </property>
  <property>
    <name>dfs.namenode.http-address.ns2</name>
    <value>gb18:23001</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address.ns2</name>
    <value>gb18:23002</value>
  </property>
</configuration>


4)${HDFS_CONF_DIR}/slaves

gb19

gb20

gb21

gb22

ps:在新版本HDFS的配置中,所有节点的配置文件都是统一的,不用单独配置NameNode和DataNode。
下面是一个hdfs新增配置的表格

Daemon Configuration Parameter
Namenode dfs.namenode.rpc-address
dfs.namenode.servicerpc-address
dfs.namenode.http-address
dfs.namenode.https-address

dfs.namenode.keytab.file
dfs.namenode.name.dir
dfs.namenode.edits.dir
dfs.namenode.checkpoint.dir
dfs.namenode.checkpoint.edits.dir
dfs.federation.nameservices
Secondary Namenode dfs.namenode.secondary.http-address dfs.secondary.namenode.keytab.file
BackupNode dfs.namenode.backup.address dfs.secondary.namenode.keytab.file


对照hdfs-site.xml文件可以看出,dfs.federation.nameservices指定不同的Namespace,一个 Namespace对应于一个NameNode,NameNode对应配置选项的后面,增加对应的namespace名字,比 如**.**.**.ns1。
6、启动HDFS Federation
1)执行Format
ssh gb17
${HADOOP_DEV_HOME}/bin/hdfs namenode -format -clusterid klose
ssh gb18
${HADOOP_DEV_HOME}/bin/hdfs namenode -format -clusterid klose
2)启动sbin/start-dfs.sh
ssh到各个节点上,使用jps命令查看对应的NameNode或者DataNode Daemon是否启动。
7、查看ui界面
【转】Hadoop0.23.0初探2---HDFS Federation部署
            
    
    博客分类: hadoop hadoop2hadoop 

相关标签: hadoop2 hadoop