hadoop集群搭建

第一步:准备2台虚拟机或者物理机(我准备的机器IP:192.168.195.159,192.168.202.145(centos))

第二步:配置hosts文件

vi /etc/hosts

加入

192.168.195.159 master

 

192.168.202.145 slave

2台机器都要加入这2行

第三步:建立hadoop运行帐号

/usr/sbin/groupadd -f hadoop    //设置hadoop用户组

/usr/sbin/useradd -m longzhun -g hadoop -G admin //-m 用户名 -g 用户组 -G admin权限

passwd longzhun //新建密码

su longzhun 切换到longzhun

 

安照这个步骤分别在192.168.195.159,192.168.202.145机器上建立hadoop运行账号

 

第三步:配置ssh免密码连入

 

SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数

据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。

 

(1)     每个结点分别产生公私密钥。

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,如下:

cd /root/.ssh 或者cd ~/.ssh

id_dsa

id_dsa.pub

Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:

cat id_dsa.pub >> authorized_keys

 

用上述同样的方法在剩下结点中如法炮制即可。

(2)     单机回环ssh免密码登录测试

即在单机结点上用ssh进行登录,看能否登录成功。登录成功后注销退出(退出命令exit)

ssh localhost

用上述同样的方法在剩下结点中如法炮制即可。

(3)     让主结点(master)能通过SSH免密码登录子结点(slave)

为了实现这个功能,slave结点的公钥文件中必须要包含主结点的公钥信息,这样

当master就可以顺利安全地访问这slave结点了。操作过程如下:

在slave机器上输入命令:

scp longzhun@master:~/.ssh/id_dsa.pub ~/.ssh/master_dsa.pub

cat master_dsa.pub >> authorized_keys

如上过程显示了slave结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,这一过程需要密码验证。接着,将master结点的公钥文件追加至authorized_keys文件中,通过这步操作,如果不出问题,master结点就可以通过ssh远程免密码连接slave结点了。在master结点中操作如下:

ssh slave

slave结点首次连接时需要,“YES”确认连接,这意味着master结点连接slave结点时需要人工询问,无法自动连接,输入yes后成功接入,紧接着注销退出(exit)至master结点。要实现ssh免密码连接至其它结点,还差一步,只需要再执行一遍ssh slave,如果没有要求你输入”yes”,就算成功了

 

表面上看,slave的ssh免密码登录已经配置成功,但是我们还需要对主结点master也要进行上面的同样工作,这一步有点让人困惑,但是这是有原因的,具体原因现在也说不太好,据说是真实物理结点时需要做这项工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。

 

对master自身进行ssh免密码登录测试工作:

scp longzhun@master:~/.ssh/id_dsa.pub ~/.ssh/master_dsa.pub

cat master_dsa.pub >> authorized_keys

ssh master 测试

 

四、下载并解压hadoop安装包

由于测试就用低版本的,下载地址

http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/

解压到/home/longzhun/hadoop目录下

 

五、配置namenode,修改site文件

前提条件:安装好JDK(请上网查找安装方法)

vi /etc/profile

加入:

export HADOOP_INSTALL=/home/longzhun/hadoop

 

export PATH=$PATH:$HADOOP_INSTALL/bin

2台机器都需要

 

让配置文件立刻生效 source /etc/profile

到目前为止,准备工作已经完成,下面开始修改hadoop的配置文件了,即各种site文件,文件存放在/hadoop/conf下,主要配置core-site.xml、hdfs-site.xml、mapred-site.xml这三个文件。

core-site.xml:







fs.default.name
hdfs://master:9000
true


   hadoop.tmp.dir
   /home/longzhun/hadoop/tmp
   A base for other temporary directories

 

hdfs-site.xml配置如下:







   
        dfs.name.dir
        /home/longzhun/hadoop/name
        true
   

   
   dfs.data.dir
   /home/longzhun/hadoop/data
   true
   
   
        dfs.replication
        2
        true
   

 

接着是mapred-site.xml文件:

 








mapred.job.tracker
192.168.195.159:9001


~

 

 

六、配置hadoop-env.sh

export JAVA_HOME=/export/servers/jdk1.6.0_25

 

七、配置mastersslaves文件

vi masters

写入master

vi slaves

写入slave

八、向各节点复制hadoop

scp -r hadoop slave:/home/longzhun

九、格式化namenode

hadoop namenode -format

这一步在主结点master上进行操作

 注意:只要出现“successfully formatted”就表示成功了。

十、启动hadoop

这一步也在主结点master上进行操作:

start-all.sh

十一、   用jps检验各后台进程是否成功启动

在主结点master上查看namenode,jobtracker,secondarynamenode进程是否启动。\

出现如下为正确

21400 NameNode

22287 Jps

21560 SecondaryNameNode

21640 JobTracker

在slave结点了查看tasktrackerdatanode进程是否启动。

3114 Jps

29546 Bootstrap

673 DataNode

 

777 TaskTracker

 

进程都启动成功了。恭喜~~~

十二、   通过网站查看集群情况

    在浏览器中输入:http://192.168.195.159:50030/jobtracker.jsp,网址为master结点所对应的IP:


hadoop集群搭建_第1张图片
 
浏览器中输入:http://192.168.195.159:50070/dfshealth.jsp,网址为master结点所对应的IP:


hadoop集群搭建_第2张图片
 至此,hadoop的完全分布式集群安装已经全部完成,可以好好睡个觉了。~~

你可能感兴趣的:(hadoop)