Hadoop的安装---在真实的linux集群上安装

 

1.在每台linux节点上安装好jdk,最好把ant一并装了,装的目录最好一致,然后统一配好java所需要的环境变量,例如:

a)        $export  JAVA_HOME=/usr/java/jdk1.6.0_16  

b)        $export  ANT_HOME=/usr/ant/ant-1.7.0

c)        $export  JRE_HOME=/usr/java/jdk1.6.0_16/jre

d)        $export                     CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib:$ANT_HOME/lib

e)        $export  PATH=/usr/java/jdk1.6.0_16/bin:/usr/ant/ant-1.7.0/bin:$PATH

   注:最好将这些写到~/.bash_profile里面去

 

2.配置每个节点上的用户权限,强烈建议使用root用户,因为在运行hadoop的时候,hadoop会生成tmp文件,并且对这些文件修改,用户必须得具有足够的权限,这一点曾让我欲哭无泪,曾通宵一夜调bug,未果,特引以为戒!!

          (a)给用户添加sudo的权限:

              $chmod +w /etc/sudoers

         $vi /etc/sudoer    添加一行: 用户名 ALL=(ALL) ALL

                    $chmod –w /etc/sudoers     注:必须得把写权限去掉,因为系统只是别具有只读权限的sudoers文件

          (b)干脆直接将用户设为root用户组:

          $chmod +w /etc/passwd

                     $vi /etc/passwd      更改对应用户那一行的信息:

                                                                 例如:zhangliuhang:x:0:0::/home/zhangliuhang:/bin/bash

                     $chmod –w /etc/passwd

 

3.配置每个节点上的网络环境,这是比较重要而且比较费事,首先安装ssh,安装好后,配置ssh,使得各个节点间可以互相访问,不需要手动的密码验证。

 

(1)生成RSA密钥,公钥:

      $ssh-keygen –t rsa –f  ~/.ssh/id_rsa

                  注:(一直按回车键就好)此时在~/.ssh目录下会有密钥id_rsa,和公钥id_rsa.pub

 

       (2)将公有密钥id_rsa.pub追加到其他所有节点的~/.ssh/authorized_keys文件中,以使得本节点访问别的节点时候不需要手动输入密码验证。这有两种处理方法:

    (A)在一台机器上的~./ssh/authorized_keys文件中收集好所有节点的公有密钥id_rsa.pub,然后将该文件分发到其他各个节点的相应位置。最后保证authorized_keys文件的读写权限只对所有者有读写权限,否则ssh是不会工作的!    

      (B) 当集群较小的情况下,推荐使用命令ssh-copy-id  -i  ~/.ssh/id_rsa.pub user@machine的方法将本节点的公钥传到别的节点上。

 

        配好后可以试试ssh 看能不能不输入密码直接登录上别的节点

 

4.到官网上下载hadoop,我这里下的是hadoop 0.20.2版本。

(1)首先配置环境变量:

       $ export HADOOP_HOME=/home/zhangliuhang/hadoop

             $ export HADOOP_INSTALL=$HADOOP_HOME

       $ export PATH=.:$HADOOP_HOME/bin:$PATH

                  (注:最好将当前安装hadoop/bin目录放在前面,由于我之前放在后面,导致我运行hadoop的时候看上去是我自己的版本,实际上运行的是别人的版本(注:我运行的节点上有别人安装过的残留的hadoop),会出现诡异的错,很难发现,所以一定得确定后面运行hadoop指令的时候是自己当前版本的!)

  

   (2)在各个节点中选择一台作为master,其他的节点都作为slave。

(注:这时候可以给ip进行映射,这样就不要显示的敲击ip了,

      $chmod +w /etc/hosts

      $vi /etc/hosts

                  修改例子如下:

                100.100.100.101  主机名1或域名1  slave1

                      100.100.100.102  主机名2或域名2  master

                100.100.100.103  主机名3或域名3  slave2

      $chmod –w /etc/hosts)

 

  (3)对于所有节点配置:

      $HADOOP_HOME/conf/目录下:

             (a)Hadoop-env.sh:

          export  JAVA_HOME=/usr/java/jdk1.6.0_16

                 其他的选项可以自己看着办

          (b)Core-site.xml:

                    <configuration>    

            <property>

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

              <value>/home/zhangliuhang/tmp</value>

            </property>

      

            <property>

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

              <value>hdfs://master:9910/</value>

           </property>

        </configuration>

         注:最好把tmp目录给设了,这样以后重新安装hadoop的时候知道在哪可以直接把各个节点上hadoop的tmp文件删掉,然后重新安装,否则如果没删掉tmp文件就重新安装容易造成新安装的hadoop运行时报版本错误!本人深刻体会了这一点!!

   (c)hdfs-site.xml:

        <configuration>

           <property>

               <name>dfs.replication</name>

               <value>1</value>

                 </property>

       </configuration>

       其他的属性可以自行设置

 

   (d)mapred-site.xml:

          <configuration>

                <property>

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

                   <value>master:9007</value>

                    <final>true</final>

                   </property>

              </configuration>

        其他的属性可以自行设置,该处端口号和(b)中的端口号无法使用的时候可以自行换

      

  (e)masters:

            master 

                  注:此处是设置secondnode的并不是namenode

 

          (f)slaves:

                                     slave1

                                     slave2

 

  (4)当配好这一切后就可以在namenode(也就是我们的master)上启动了!~

          $hadoop namenode –format  注:对于hadoop文件系统格式化

          $start-all.sh

          运行后可以查看是否正常,在namenode上输入jps应该可以看到

              Jps

                            Namenode

              JobTracker

              SecondaryNameNode

          在slave节点上敲击jps看到

               Jps

                             Datanode

               TaskTracker

         那么整个安装系统就结束了,可以跑跑hadoop的benchmark

      注:整个过程比较麻烦,最好可以写一些脚本,这样以后再次搭建的时候就会方便很多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值