为已存在的Hadoop集群配置HDFS Federation

一、实验目的

1. 现有Hadoop集群只有一个NameNode,现在要增加一个NameNode。

2. 两个NameNode构成HDFS Federation。

3. 不重启现有集群,不影响数据访问。

二、实验环境

4台CentOS release 6.4虚拟机,IP地址为

192.168.56.101 master

192.168.56.102 slave1

192.168.56.103 slave2

192.168.56.104 kettle

其中kettle是新增的一台“干净”的机器,已经配置好免密码ssh,将作为新增的NameNode。

软件版本:

hadoop 2.7.2

hbase 1.1.4

hive 2.0.0

spark 1.5.0

zookeeper 3.4.8

kylin 1.5.1

现有配置:

master作为hadoop的NameNode、SecondaryNameNode、ResourceManager,hbase的HMaster

slave1、slave2作为hadoop的DataNode、NodeManager,hbase的HRegionServer

同时master、slave1、slave2作为三台zookeeper服务器

三、配置步骤

1. 编辑master上的hdfs-site.xml文件,修改后的文件内容如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
	<name>dfs.namenode.name.dir</name>
	<value>file:/home/grid/hadoop-2.7.2/hdfs/name</value>
</property>
<property>
	<name>dfs.datanode.data.dir</name>
	<value>file:/home/grid/hadoop-2.7.2/hdfs/data</value>
</property>
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>
<property>
	<name>dfs.webhdfs.enabled</name>
	<value>true</value>
</property>

<!-- 新增属性 -->
<property>
    <name>dfs.nameservices</name>
    <value>ns1,ns2</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.ns1</name>
    <value>master:9000</value>
</property>
<property>
    <name>dfs.namenode.http-address.ns1</name>
    <value>master:50070</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address.ns1</name>
    <value>master:9001</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.ns2</name>
    <value>kettle:9000</value>
</property>
<property>
    <name>dfs.namenode.http-address.ns2</name>
    <value>kettle:50070</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address.ns2</name>
    <value>kettle:9001</value>
</property>
</configuration>

2. 拷贝master上的hdfs-site.xml文件到集群上的其它节点

scp hdfs-site.xml slave1:/home/grid/hadoop-2.7.2/etc/hadoop/
scp hdfs-site.xml slave2:/home/grid/hadoop-2.7.2/etc/hadoop/

3. 将Java目录、Hadoop目录、环境变量文件从master拷贝到kettle

scp -rp /home/grid/hadoop-2.7.2 kettle:/home/grid/
scp -rp /home/grid/jdk1.7.0_75 kettle:/home/grid/
# 用root执行
scp -p /etc/profile.d/* kettle:/etc/profile.d/

4. 启动新的NameNode、SecondaryNameNode

# 在kettle上执行
source /etc/profile
ln -s hadoop-2.7.2 hadoop
$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode
$HADOOP_HOME/sbin/hadoop-daemon.sh start secondarynamenode

执行后启动了NameNode、SecondaryNameNode进程,如图1所示。

图1

5. 刷新DataNode收集新添加的NameNode

# 在集群中任意一台机器上执行均可
$HADOOP_HOME/bin/hdfs dfsadmin -refreshNamenodes slave1:50020
$HADOOP_HOME/bin/hdfs dfsadmin -refreshNamenodes slave2:50020

至此,HDFS Federation配置完成,从web查看两个NameNode的状态分别如图2、图3所示。

图2

图3

四、测试

# 向HDFS上传一个文本文件
hadoop dfs -put /home/grid/hadoop/NOTICE.txt /
# 分别在两台NameNode节点上运行Hadoop自带的例子
# 在master上执行
hadoop jar /home/grid/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /NOTICE.txt /output
# 在kettle上执行
hadoop jar /home/grid/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /NOTICE.txt /output1

用下面的命令查看两个输出结果,分别如图4、图5所示。

hadoop dfs -cat /output/part-r-00000
hadoop dfs -cat /output1/part-r-00000

图4

图5

参考:

http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/Federation.html

时间: 2024-08-04 07:17:11

为已存在的Hadoop集群配置HDFS Federation的相关文章

Hadoop集群配置心得(低配置集群+自动同步配置)

本文为本人原创,首发到炼数成金 http://f.dataguru.cn/thread-138720-1-1.html. 情况是这样的,我没有一个非常强劲的电脑来搞出一个性能非常NB的服务器集群,相信很多人也跟我差不多,所以现在把我的低配置集群经验拿出来写一下好了. 我的配备:1)五六年前的赛扬单核处理器2G内存笔记本 2)公司给配的ThinkpadT420,i5双核处理器4G内存(可用内存只有3.4G,是因为装的是32位系统的缘故吧...) 就算是用公司配置的电脑,做出来三台1G内存的虚拟机也

Hadoop 集群配置记录小结

Hadoop集群配置往往按照网上教程就可以"配置成功",但是你自己在操作的时候会有很多奇奇怪怪的问题出现, 我在这里整理了一下常见的问题与处理方法: 1.配置/etc/hosts 这个文件至关重要,他决定了各个节点是否能够成功通信,有两个地方要注意 1.127.0.0.1 localhost 要配置在其他的地址之后 2.127.0.0.1 hostname 配置要删掉,因为有对应的配置,比如192.168.0.150 service1 常见问题:节点间无法通信,datanode无法和n

hadoop集群配置和在windows系统上运用java操作hdfs

安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.1/ sudo apt-get install ssh sudo apt-get install rsync mkdir /usr/local/hadoop tar -zxvf hadoop-3.1.1.tar.gz -C

Hadoop集群配置(最全面总结)

通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker.这些机器是masters.余下的机器即作为DataNode也作为TaskTracker.这些机器是slaves\ 官方地址:(http://Hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html) 1 先决条件 确保在你集群中的每个节点上都安装了所有必需软件:sun-JDK  ,ssh,Hadoop JavaTM1.5.x,必须安装,建议

Hadoop集群配置过程中需要注意的问题

环境:VMwareWorkstation8.0 和 Ubuntu14.04 1. 使用三台虚拟机搭建Hadoop集群 2. 一定要在每台机器上配置ssh免密码登录 3. 由于需要给/etc/hosts文件配置3台虚拟机的IP,所以尽量给三台虚拟机设置静态IP.不然即使之前整个集群搭建成功了,但是当某一台的IP变化后,这个集群又不可以使用了. 例如报如下错误: 当重新将/etc/hosts中各个节点的ip以及mapred-site.xml中master节点的ip改正确后,在重新启动hadoop就好

hadoop集群配置

一.首先我们需要一个 hadoop-2.8.5.tar.gz 这里就省略了什么解压,指定路径什么的步骤啦 1.配置hadoop环境变量 vim /etc/profile export HADOOP_HOME=/usr/java/hadoop-2.8.5 (按自己的路径来) export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 记得 source   /etc/profile 2.修改hadoop的配置文件 cd /usr/java/hadoop

Hadoop集群配置免密登录方法

Hadoop集群包含1个主节点和3个从节点,需要实现各节点之间的免密码登录,下面介绍具体的实现方法. 一.Hadoop集群环境 二.免密登录原理 每台主机authorized_keys文件里面包含的主机(ssh密钥),该主机都能无密码登录,所以只要每台主机的authorized_keys文件里面都放入其他主机(需要无密码登录的主机)的ssh密钥就行了. 三.实现方法 1. 配置每个节点的hosts文件 #vim /etc/hosts1 192.168.44.3 hadoop01 2 192.16

Hadoop集群(二) HDFS搭建

HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的.所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始. 安装Hadoop集群,首先需要有Zookeeper才可以完成安装.如果没有Zookeeper,请先部署一套Zookeeper.另外,JDK以及物理主机的一些设置等.请参考: Hadoop集群(一) Zookeeper搭建 Hadoop集群(三) Hbase搭建 Hadoop集群(四) Hadoop升级 下面开始HDFS的安装 HDFS主机分配 1

hadoop集群之HDFS和YARN启动和停止命令

假如我们只有3台linux虚拟机,主机名分别为hadoop01.hadoop02和hadoop03,在这3台机器上,hadoop集群的部署情况如下: hadoop01:1个namenode,1个datanode,1个journalnode,1个zkfc,1个resourcemanager,1个nodemanager: hadoop02:1个namenode,1个datanode,1个journalnode,1个zkfc,1个resourcemanager,1个nodemanager: hadoo