Hadoop是Apache组织的一个顶级项目,它是一个分布式系统架构。Hadoop实现了一个分布式文件系统(HDFS),易于部署在低廉的硬件设备上,并且极易扩充。Hadoop的核心是HDFS和MapReduce。本篇文章主要介绍如何安装Hadoop集群,伪分布模式的安装应该是简单的,因此这里旨在在3台互通的centOS平台上安装完全分布模式的Hadoop集群。


准备工作:3台装有centOS的机器(可以使用虚拟机模拟)

Hadoop版本:0.20.2 (这里使用的是低版本,很小,高版本的安装是基本相似的)

JDK的安装:see http://blog.csdn.net/tao_sun/article/details/16870097


1.修改所有节点的 /etc/hosts 文件,使彼此之间都能把主机名解析为IP,如下:


这里使用了3台设备,其中准备用myseu作为master,myseu2和myseu3作为slave


2.三台设备建立统一的Hadoop用户,即用户名均为同样的名字,这里均使用 well 作为用户名

#useradd well

   注意,创建用户后需要设置密码后才能登陆该用户,使用如下命令

#passwd well


3.配置SSH免密码登录

  CentOS默认情况下是安装有SSH服务的,因此避免了SSH的安装步骤。这里直接介绍如何进行设置免密码登录。

生成密钥并配置SSH无密码登录本机,在终端依次输入如下两条命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 
注意,三台机器都需要配置免密码登录,并将生成的 authorized_keys文件互相追加,合并成一个大文件。

可以使用如下命令拷贝文件到两台slave主机:

scp authorized_keys well@myseu2:/home/well/.ssh/  
scp authorized_keys well@myseu3:/home/well/.ssh/
最后,需要在每台机器上更改权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
测试是否可以使用免密码登录SSH,可以在任意机器上使用以下命令:

ssh myseu
ssh myseu2
ssh myseu3
第一次登录可能要输入yes确认,以后就可以直接登录了。

4.在master(这里选择的是myseu这台机器)上解压缩hadoop(这里使用的是hadoop-0.20.2.tar.gz文件)

将hadoop解压缩在well用户的home目录下(即/home/well/ 目录中)

#tar -xzvf hadoop-0.20.2.tar.gz


5.在master上配置hadoop

这里需要修改4个文件。core-site.xml,hdfs-site.xml,mapred-site.xml以及hadoop-env.sh文件。这几个文件都位于hadoop文件夹中的conf文件夹下。


core-site.xml配置如下:(这个文件配置的是master节点)

<configuration> 
<property> 
  <name>fs.default.namename> 
  <value>hdfs://myseu:9000</value> 
</property>


hdfs-site.xml配置如下:(这个文件配置的是slave节点的数量)

<configuration> 
<property> 
  <name>dfs.replication</name> 
  <value>2</value> 
</property> 
</configuration> 

mapred-site.xml配置如下:(这里还是配置的是master节点的作业跟踪器,注意value的取值)
<configuration> 
<property> 
   <name>mapred.job.tracker</name> 
  <value>myseu:9001</value> 
</property> 
</configuration> 


hadoop-env.sh配置如下:

export JAVA_HOME=“你的Java安装地址”  


然后,还需要修改masters和slaves文件

#vim masters   添加如下内容

myseu


#vim slaves  添加如下内容

myseu2

myseu3


这样,主节点的hadoop就配置好了。


6.向各节点复制hadoop

其他节点可以使用scp命令直接将主节点的hadoop文件拷贝到其他节点中。(so easy,爸爸再也不用担心集群数量的增加啦)


#scp -r ./hadoop-0.20.2 myseu2:/home/well

#scp -r ./hadoop-0.20.2 myseu3:/home/well

(无论多少节点,只要修改一个常数就能全部拷贝)


7.格式化分布式文件系统(这个操作只需要在master节点进行)

#bin/hadoop namenode -format


8.启动守护进程

#bin/start-all.sh




成功启动后,可以使用jps命令检查几个进程是否都成功启动了。如上图下半部分所示。


9.检查hadoop是否安装成功

使用浏览器访问 myseu:50070  查看namenode 的运行状况



访问myseu:50030查看Map/Reduce管理界面



至此,整个完全分布的hadoop集群安装完毕,若要增加节点的话,只需更改slave节点的数量,并相应的修改几个文件即可,这里不再赘述。

Logo

开源、云原生的融合云平台

更多推荐