Hadoop2.2.0版本多节点集群安装及测试

摘要:本文记录了Hadoop2.2.0版本多节点集群安装过程,并做了基本配置,启动运行和测试了一个单词统计例子。

环境说明:

基于Windows下的VMware Player4.0.3中的Ubuntu12.04-64server安装,先把基础软件安装到一个虚拟机中,然后拷贝两份再配置下即可。三台机器的分工如下:

Hadoop1(Master): NameNode/ResouceManager

Hadoop2(Slave):DataNode/NodeManager

 Hadoop3(Slave): DataNode/NodeManager

假定三台虚拟机的IP地址如下,后面会用到。

Hadoop1:192.168.128.130

Hadoop2:192.168.128.131

Hadoop3:192.168.128.132

 

一:环境准备:

下载免费的VMware Player并安装好;
下载 免费的Ubuntu 12.04 server版并在VMware中安装好;
二:基础安装:

执行如下命令升级部分软件和把ssh安装好
  (1)sudo apt-get update;

  (2)sudo apt-get upgrade;

  (3)sudo apt-get install openssh-server;

安装Oracle JDK
通过webupd8team自动安装,执行命令如下:

(1)  sudo apt-get install python-software-properties

(2)  sudo add-apt-repository ppa:webupd8team/java

(3)  sudo apt-get update

(4)  sudo apt-get install oracle-java6-installer

创建hadoop用户
(1)  sudo addgroup hadoop

(2)  sudo adduser --ingroup hadoop hduser

编辑/etc/sudoers编辑文件,在root ALL=(ALL)ALL行下添加hduser ALL=(ALL)ALL。如果不添加这行,hduser将不能执行sudo操作。

注:以下操作均用hduser用户登录后操作。

 

三:公共安装:

注:以下操作以hduser登录进行操作。

下载Hadoop2.2.0版本
(1)  cd /home/hduser

(2)  $ wgethttp://apache.dataguru.cn/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz

(3)  $ tar zxf hadoop-2.2.0.tar.gz

(4)  $ mv hadoop-2.2.0 hadoop

配置Hadoop
(1)  配置/home/hduser/hadoop/etc/hadoop/hadoop-env.sh

替换exportJAVA_HOME=${JAVA_HOME}为如下:

export JAVA_HOME=/usr/lib/jvm/java-6-oracle

(2) 配置/home/hduser/hadoop/etc/hadoop/core-site.xml,

在<configuration>中添加如下:

<property>

  <name>hadoop.tmp.dir</name>

 <value>/home/hduser/hadoop/tmp/hadoop-${user.name}</value>

 <description>A base for other temporary directories.</description>

</property>

<property>

 <name>fs.default.name</name>

 <value>hdfs://192.168.128.130:8010</value>

 <description>The name of the default file system.  A URI whose

  schemeand authority determine the FileSystem implementation.  The

  uri'sscheme determines the config property (fs.SCHEME.impl) naming

  theFileSystem implementation class.  Theuri's authority is used to

 determine the host, port, etc. for a filesystem.</description>

</property>

注意:以下两点务必确保正确,否则后面会出错。

a. 需执行mkdird home/hduser/hadoop/tmp创建这个临时目录;

b. 这个fd.default.name值的IP地址为NameNode的地址,即Hadoop1。

配置/home/hduser/hadoop/etc/hadoop/mapred-site.xml
(1)  mv /home/hduser/hadoop/etc/hadoop/mapred-site.xml.template/home/hduser/hadoop/etc/hadoop/mapred-site.xml

(2)  在<configuration>中添加如下:

<property>

 <name>mapred.job.tracker</name>

 <value>192.168.128.130:54311</value>

 <description>The host and port that theMapReduce job tracker runs

 at.  If "local", thenjobs are runin-process as a single map

 and reducetask.

 </description>

</property>

配置/home/hduser/hadoop/etc/hadoop/hdfs-site.xml
在<configuration>中添加如下:

<property>

 <name>dfs.replication</name>

 <value>2</value>

 <description>Default block replication.

  Theactual number of replications can be specified when the file is created.

  Thedefault is used if replication is not specified in create time.

  </description>

</property>

四:整体安装

将上面安装和配置好的虚拟机拷贝两份,即Hadoop2和Hadoop3。
分别修改三台虚拟机的/etc/hostname中的内容改为相应的主机名,即
hadoop1的hostname为hadoop1,其他类推。

修改完成后需要重启,并通过命令hostname确认已经生效。

分别检查并修改三台虚拟机的/etc/hosts中的内容,确保包含如下配置:
192.168.128.130 hadoop1

192.168.128.131 hadoop2

192.168.128.132 hadoop3

为三台虚拟机之间建立SSH信任以便是实现无需密码登陆。
(1)  将以下命令分别在三台机子上做一遍:

$echo"" > .ssh/authorized_keys

$ssh-keygen-t rsa -P ""

 $cat.ssh/id_rsa.pub >>.ssh/authorized_keys

(2)  分别将各台机子上的.ssh/id_rsa.pub的内容追加到其他两台的.ssh/authorized_keys中,这样三台机子相互访问就不需要输入密码了。可通过ssh hadoop1来测试。

分别修改各台机子的$HADOOP_HOME/etc/hadoop/slaves,这里$HADOOP_HOME为你的hadoop安装目录。Slaves的内容如下:
hadoop2

hadoop3

相关阅读

相关推荐