这次准备多台虚拟机来安装分布式Hadoop.  官方文档:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html

Hadoop的节点分为两大类:masters和slaves。

masters 必须是分开(exclusively)的两台机器:NameNode 和 ResourceManager,

slaves 包含了DataNode和NodeManager,文档上没有说一定必须互斥。

下面是YARN的架构图, YARN只是Hadoop体系的一部分,此图没有包含HDFS。

HDFS的信息参考:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html



现在安装hadoop,做一些基本配置,由于前面已经自己编译了64 bit的Hadoop,现在可以拿来用了。

为了方便大家,我将编译好的放在了公开的gitlab项目上:https://gitlab.com/hadoop/learn

首先准备一个虚拟机Ubuntu 12.04.4 server,  host name: hd1, IP: 192.168.1.71

然后参考Ubuntu 12.04 上使用Hadoop 2.2.0 一 用户权限设置

做相应的设置。不过不要下载hadoop的安装包,只要将编译好的64 bit的复制到/usr/local目录下即可,重命名为hadoop

然后参考Ubuntu 12.04 上使用Hadoop 2.2.0 二 配置single node server

设置好环境变量,修改/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件后,退出后再用hduser登录。

有篇文章中提到要修改下面这个文件,但是我不确定,先放在这里记录,暂时不用修改,因为如果程序在hduser用户身份下运行,应该已经有正确的JAVA_HOME环境变量了。

Add JAVA_HOME to libexec/hadoop-config.sh at beginning of the file
hduser@solaiv[~]#vi /opt/hadoop-2.2.0/libexec/hadoop-config.sh
….
export JAVA_HOME=/usr/local/jdk1.6.0_18
….

在/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件中

推荐设定JAVA_HOME, 有这么句话:

# The only required environment variable is JAVA_HOME.  All others are                                                                            
# optional.  When running a distributed configuration it is best to                                                                               
# set JAVA_HOME in this file, so that it is correctly defined on                                                                                  
# remote nodes.                                                                                                                                   

# The java implementation to use.                                                                                                                 
export JAVA_HOME=${JAVA_HOME}
由于我的环境变量已经正确设置,并且我可以保证每台虚拟机都一样,所以我认为这里无须改动。

创建hadoop使用的临时目录

mkdir $HADOOP_INSTALL/tmp

后面会逐步创建各个server,都会从这个VM克隆。



Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐