`
longzhun
  • 浏览: 360127 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<final>true</final>
</property>
<property>
   <name>hadoop.tmp.dir</name>
   <value>/home/longzhun/hadoop/tmp</value>
   <description>A base for other temporary directories</description>
</property>
</configuration>

 

hdfs-site.xml配置如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
   <property>
        <name>dfs.name.dir</name>
        <value>/home/longzhun/hadoop/name</value>
        <final>true</final>
   </property>

   <property>
   <name>dfs.data.dir</name>
   <value>/home/longzhun/hadoop/data</value>
   <final>true</final>
   </property>
   <property>
        <name>dfs.replication</name>
        <value>2</value>
        <final>true</final>
   </property>
</configuration>

 

接着是mapred-site.xml文件:

 

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.195.159:9001</value>
</property>
</configuration>
~

 

 

六、配置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:



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



 至此,hadoop的完全分布式集群安装已经全部完成,可以好好睡个觉了。~~

  • 大小: 22.2 KB
  • 大小: 17.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics