hadoop分布式搭建

本文为个人从装系统到搭建hadoop,zk,hbase过程的随记,仅供参考。

一,环境介绍

       3台虚拟机均用乌班图14的系统

二,安装包

       jdk1.7.0_79
       hadoop2.6.2
       zk3.4.6
       hbase1.1.5

三,安装操作系统以及配置网络

       虚拟机安装操作系统的部分暂且略过,相信都会安装。
       需要注意的是安装的过程会提示你填写用户,此时我将需要的hadoop用户填好并设置好密码,所有
       系统操作均在hadoop下用sudo 来操作。
       下面先说配置网络部分。
       个人把虚拟机环境都配置成了静态IP,选择的是桥接模式。
       配置过程如下: 1,修改/etc/network/interfaces文件
                                       auto eth0
                                       iface eth0 inet static
                                       address 192.168.1.121
                                       netmask 255.255.255.0
                                      gateway 192.168.1.1
                      2,修改/etc/NetworkManager/NetworkManager.conf中的managed=true
                      3,修改/etc/resolvconf/resolv.conf.d/base文件
                            nameserver DNS1
                            nameserver DNS2
        其他准备工作:
        启用ssh服务,以方便客户端连接传送文件等
         sudo apt-get install openssh-server
        配置hostname
        sudo vi /etc/hostname
       注意: 这里三台机器我分别配置成了master,node1,node2
       配置/etc/hosts文件
       sudo vi /etc/hosts
       文件内容为
       127.0.0.1     localhost
       192.168.1.121 master
       192.168.1.122 node1
       192.168.1.123 node2

四,安装hadoop(安装文件均放在了/home/hadoop/目录下)

   1,配置JDK

            tar -zxvf jdk-7u79-linux-x64.gz
    sudo vi /etc/profile
    文件里填写 export JAVA_HOME=/home/hadoop/jdk1.7.0_79
               export PATH=$JAVA_HOME/bin:$PATH
    保存退出后需要执行source /etc/profile使环境变量生效
    执行java -version查看jkd是否生效
    执行scp -r jdk1.7.0_79 hadoop@node1:/home/hadoop/将jdk复制到另一台机器
    执行scp -r jdk1.7.0_79 hadoop@node2:/home/hadoop/将jdk复制到另一台机器
    注意:因为还没有配置免秘钥登录,所以需要输入密码。也可以先生成公钥免密访问两台机器

    2,生成公钥免密访问两台Slaves

    执行cd ~/ 进入到主目录
    执行ssh-keygen –t rsa 生成公私钥(一路回车。。。)
    cd .ssh 进入到公钥目录下
    以上步骤三台机器均需要操作
    主节点继续执行如下操作
    执行sudo cat id_rsa.pub >> authorized_keys 公共文件并用scp命令 将  authorized_keys 复制到
    其他两台机器 

    主节点直接ssh node1看看是否实现免秘钥登录

    3,配置hadoop

    解压安装包
    tar -zxvf hadoop-2.6.2.tar.gz 
    同配置java环境变量一样配置$HADOOP_HOME 
    sudo echo 'export HADOOP_HOME=/home/hadoop/hadoop2.6.2' >>/etc/profile
    sudo echo 'export PATH=$HADOOP_HOME/bin:$PAHT'>>/etc/profile
    source /etc/profile
    配置hadoop配置文件
    cd $HADOOP_HOME/etc/hadoop/
    修改hadoop-env.sh 、yarn-env.sh(大家根据自己实际情况更改)
    export JAVA_HOME=/home/hadoop/jdk1.7.0_79   
    修改core-site.xml文件

            <configuration>
                  <property>
                        <name>fs.defaultFS</name>
                        <value>hdfs://master:9000</value>
                  </property>
                 <property>
                        <name>hadoop.tmp.dir</name>
                        <value>/home/hadoop/tmp</value>
                 </property>
            </configuration> 
  
          注意:没有tmp目录的需要先创建tmp目录  
          修改hdfs-site.xml文件
   
       <configuration>
           <property>
                <name>dfs.datanode.ipc.address</name>
                <value>0.0.0.0:50020</value>
           </property>
           <property>
                <name>dfs.datanode.http.address</name>
               <value>0.0.0.0:50075</value>
          </property>
          <property>
                <name>dfs.replication</name>
                <value>2</value>
          </property>
       </configuration>


     注意:dfs.replication表示数据副本数,一般不大于datanode的节点数。
     修改mapred-site.xml文件
 
      <configuration>
         <property>
               <name>mapreduce.framework.name</name>
               <value>yarn</value>
         </property>
     </configuration>
    修改yarn-site.xml
     <configuration>
       <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
       </property>
    </configuration>


   修改slaves文件:
   vi slaves
   里面填写datanode的节点名称,我填的是
   node1
   node2
   使用scp将hadoop目录复制到其他两台机器,并配置相应的环境变量
   主节点执行格式化:
    $HADOOP_HOME/bin/hdfs namenode –format
   如果提示有successfully字样,则进入$ HADOOP_HOME/sbin目录执行start-all.sh
   通过jps查看hadoop进程是否正常启动
   主节点进程如下:
   7482 ResourceManager
   7335 SecondaryNameNode
   7159 NameNode
至此hadoop已经完全搭建成功。个人觉得写的比较糙。现附上我的参考文章链接,希望对看到的朋友有所帮助。
参考链接:http://www.cnblogs.com/yjmyzz/p/4280069.html

五,安装zk

       1,同安装hadoop一样先解压zk的tar包,然后配置环境变量
2,修改coo.cfg文件
  增加dataDir和dataLogDir以及server1,2,3
  下面是我的个人配置
  dataDir=/home/hadoop/zk/data/
  dataLogDir=/home/hadoop/zk/log/
  
  server.1=master:3333:4444
  server.2=master:3333:4444
  server.3=master:3333:4444
  由于我是三台服务器所以需要配置3个server
  server.A=B:C:D:其中 
  A 是一个数字,表示这个是第几号服务器;
  B 是这个服务器的 ip 地址;
  C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
  D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
注意:如果是伪分布式,则需要选择不同端口
3,创建myid文件
  在dataDir目录下创建一个myid文件,分别在myid文件中按照zoo.cfg文件的server.A中A的数值
4,将主节点的zk文件夹scp到两个子节点并修改相应的myid文件(记得修改两台机器上的环境变量)
  scp zk hadoop@node1:/home/hadoop/
  scp zk hadoop@node2:/home/hadoop/
5,启动zk
 三台机器分别执行zkServer.sh start并使用jps查看相应进程

六,安装HBase

    1,同安装hadoop一样先解压hbase的tar包,然后配置环境变量
2,配置hbase-env.sh文件
  这里需要配置两个点
  (1)export你的java_home
     export JAVA_HOME=/home/hadoop/jdk-7u79-linux-x64/
  (2)不使用系统自带的zookeeper
     export HBASE_MANAGES_ZK=false 
    3,配置hbase-site.xml文件
   <configuration>  
           <property>  
               <name>hbase.rootdir</name>  
               <value>hdfs://master:9000/hbase</value>  
           </property>  
           <property>  
               <name>hbase.cluster.distributed</name>  
               <value>true</value>  
           </property>  
           <property>  
               <name>hbase.zookeeper.quorum</name>  
               <value>master,node1,node2</value>  
           </property>  
           <property>  
               <name>dfs.replication</name>                                                                                      
               <value>1</value>                                                                                            
           </property>  
        </configuration> 
4,配置regionservers文件,将两个子节点ip添加到文件里面
  192.168.1.122
  192.168.1.123
5,将文件夹拷贝到两个子节点(记得修改两台机器上的环境变量)
  scp hbase hadoop@node1:/home/hadoop/
  scp hbase hadoop@node2:/home/hadoop/
6,启动hbase
  ./start-hbase.sh
  注意:启动hbase之前应保证hadoop和zk服务正常
   

猜你喜欢

转载自blog.csdn.net/Gospelanswer/article/details/52000176
今日推荐