Hadoop+Hbas完全分布式安装部署

Posted Liang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop+Hbas完全分布式安装部署相关的知识,希望对你有一定的参考价值。

Hadoop安装部署基本步骤:

 

1、安装jdk,配置环境变量。

       jdk可以去网上自行下载,环境变量如下:

       编辑  vim  /etc/profile 文件,添加如下内容:

       export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(填写自己的jdk安装路径)
       export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
       export PATH=$PATH:$JAVA_HOME/bin

       输入命令,source /etc/profile  使配置生效

      分别输入命令,java 、 javac 、 java -version,查看jdk环境变量是否配置成功

2、linux环境下,至少需要3台机子,一台作为master,2台(以上)作为slave。

    这里我以3台机器为例,linux用的是CentOS  6.5  x64为机器。

         master 192.168.172.71
         slave1 192.168.172.72
         slave2 192.168.172.73

3、配置所有机器的hostname和hosts。

         (1)更改hostname,可以编辑 vim /etc/sysconfig/network    

     更改master的HOSTNAME,这里改为HOSTNAME=master

     其它slave为HOSTNAME=slave1、HOSTNAME=slave2 ,重启后生效。

     或者直接输:  hostname   名字,更改成功,这种方式无需重启即可生效,

     但是重启系统后更改的名字会失效,仍是原来的名字

   (2)更改host,可以编辑 vim /etc/hosts,增加如下内容:

         192.168.172.71    master 
            192.168.172.72    slave1 
              192.168.172.73     slave2 

            hosts可以和hostname不一致 ,这里为了好记就写一致了。

4、配置SSH所有机器之间免密码登录

  (1)CentOS默认没有启动ssh无密登录,编辑 vim  /etc/ssh/sshd_config,

      去掉以下两行注释,开启Authentication免登陆。

      #RSAAuthentication yes
           #PubkeyAuthentication yes

           如果是root用户下进行操作,还要去掉 #PermitRootLogin yes注释,允许root用户登录。

  (2)输入命令,ssh-keygen -t rsa,生成key,一直按回车,

      就会在/root/.ssh生成:authorized_keys   id_rsa.pub   id_rsa 三个文件,

     这里要说的是,为了各个机器之间的免登陆,在每一台机器上都要进行此操作。

  (3) 接下来,在master服务器,合并公钥到authorized_keys文件,

     进入/root/.ssh目录,输入以下命令

          cat id_rsa.pub>> authorized_keys    把master公钥合并到authorized_keys 中

       ssh [email protected] cat ~/.ssh/id_rsa.pub>> authorized_keys    

       ssh [email protected] cat ~/.ssh/id_rsa.pub>> authorized_keys    

       把slave1、slave2公钥合并到authorized_keys 中

                完成之后输入命令,把authorized_keys远程copy到slave1和slave2之中

      scp authorized_keys 192.168.172.72:/root/.ssh/  

         scp authorized_keys 192.168.172.73:/root/.ssh/

      最好在每台机器上进行chmod 600  authorized_keys操作,

       使当前用户具有 authorized_keys的读写权限。

      拷贝完成后,在每台机器上进行 service sshd restart  操作, 重新启动ssh服务。

      之后在每台机器输入 ssh 192.168.172.xx,测试能否无需输入密码连接另外两台机器。

5、配置Hadoop环境变量,HADOOP_HOME、hadoop-env.sh、yarn-env.sh。

  (1)配置HADOOP_HOME,编辑  vim  /etc/profile 文件,添加如下内容:

     export HADOOP_HOME=/opt/hbase/hadoop-2.7.3 (Hadoop的安装路径)

     export PATH=$PATH:$HADOOP_HOME/sbin

     export PATH=$PATH:$HADOOP_HOME/bin 

     (以下两行最好加上,若没有启动Hadoop、hbase时都会有没加载lib成功的警告)    

       export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
     export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

  (2)配置hadoop-env.sh、yarn-env.sh,在Hadoop安装目录下

     编辑  vim etc/hadoop/hadoop-env.sh  

      加入export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(jdk安装路径)

     编辑  vim etc/hadoop/yarn-env.sh  

      加入export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(jdk安装路径)

     保存退出

 

6、配置基本相关xml,core-site.xml、hdfs-site.xml、mapred-site.xml、mapred-site.xml

  (1)配置core-site.xml,在Hadoop安装目录下 编辑  vim etc/hadoop/core-site.xml

    <configuration>

      <property> 
        <name>fs.defaultFS</name> <!--NameNode 的URI-->
        <value>hdfs://mater:9000</value> 
      </property> 
      <property> 
        <name>hadoop.tmp.dir</name> <!--hadoop临时文件的存放目录-->
        <value>/opt/hbase/hadoop-2.7.3/temp</value> 
      </property> 
    </configuration>

  (2)配置hdfs-site.xml,在Hadoop安装目录下 编辑  vim etc/hadoop/hdfs-site.xml

     <configuration>

      <property> <!--namenode持久存储名字空间及事务日志的本地文件系统路径--> 
        <name>dfs.namenode.name.dir</name> 
        <value>/opt/hbase/hadoop-2.7.3/dfs/name</value> 

          <!--目录无需预先创建,会自动创建-->
      </property> 
      <property>  <!--DataNode存放块数据的本地文件系统路径--> 
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hbase/hadoop-2.7.3/dfs/data</value> 
       </property> 
      <property>  <!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
        <name>dfs.replication</name>
        <value>2</value> 
      </property>

      <property> 
        <name>dfs.namenode.secondary.http-address</name> 
        <value>master:9001</value> 
      </property>  
      <property>  <!--设置为true,可以在浏览器中IP+port查看--> 
        <name>dfs.webhdfs.enabled</name>
        <value>true</value> 
      </property> 
    </configuration>

(3)配置mapred-site.xml,在Hadoop安装目录下 编辑  vim etc/hadoop/mapred-site.xml

   <configuration>

    <property> <!--mapreduce运用了yarn框架,设置name为yarn--> 
      <name>mapreduce.framework.name</name> 
      <value>yarn</value> 
    </property> 
    <property> <!--历史服务器,查看Mapreduce作业记录--> 
      <name>mapreduce.jobhistory.address</name> 
      <value>master:10020</value> 
    </property> 
    <property> 
      <name>mapreduce.jobhistory.webapp.address</name> 
      <value>master:19888</value> 
    </property> 
  </configuration>

 

(4)配置yarn-site.xml,在Hadoop安装目录下 编辑  vim etc/hadoop/yarn-site.xml

  <configuration>

    <property> <!--NodeManager上运行的附属服务,用于运行mapreduce--> 
      <name>yarn.nodemanager.aux-services</name> 
      <value>mapreduce_shuffle</value> 
    </property> 
    <property> 
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
      <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
    </property> 
    <property> <!--ResourceManager 对客户端暴露的地址--> 
      <name>yarn.resourcemanager.address</name> 
      <value>master:8032</value> 
    </property> 
    <property> <!--ResourceManager 对ApplicationMaster暴露的地址-->  
      <name>yarn.resourcemanager.scheduler.address</name> 
      <value>master:8030</value> 
    </property> 
    <property> <!--ResourceManager 对NodeManager暴露的地址--> 
      <name>yarn.resourcemanager.resource-tracker.address</name>  
      <value>master:8031</value> 
    </property> 
    <property> <!--ResourceManager 对管理员暴露的地址--> 
      <name>yarn.resourcemanager.admin.address</name>   
      <value>master:8033</value> 
    </property> 
    <property> <!--ResourceManager 对外web暴露的地址,可在浏览器查看-->   
      <name>yarn.resourcemanager.webapp.address</name> 
      <value>master:8088</value> 
    </property> 
  </configuration>

7、配置slaves文件

  在Hadoop安装目录下,编辑vim etc/hadoop/slaves,

  去除默认的localhost,加入slave1、slave2,保存退出。

8、通过远程复制命令scp,将配置好的Hadoop复制到各个节点对应位置

  scp -r /opt/hadoop-2.7.3 192.168.172.72:/opt/hadoop-2.7.3 
  scp -r /opt/hadoop-2.7.3 192.168.172.73:/opt/hadoop-2.7.3 

9、Hadoop的启动与停止

  (1)在Master服务器启动hadoop,从节点会自动启动,进入Hadoop目录下,

      输入命令,bin/hdfs namenode -format进行hdfs格式化

      输入命令,sbin/start-all.sh,进行启动

      也可以分开启动,sbin/start-dfs.sh、sbin/start-yarn.sh

      在master 上输入命令:jps, 看到ResourceManager、

      NameNode、SecondaryNameNode进程

         在slave 上输入命令:jps, 看到DataNode、NodeManager进程

      出现这5个进程就表示Hadoop启动成功。

  (2)接下来配置本地hosts,编辑 C:WindowsSystem32driversetc的hosts文件,加入

      192.168.172.71   master

      192.168.172.72   slave1

      192.168.172.73   slave2

     在浏览器中输入http://master:50070查看master状态,

     输入http://192.168.172.72:8088查看集群状态

  (3)停止hadoop,进入Hadoop目录下,输入命令:sbin/stop-all.sh,

      即可停止master和slave的Hadoop进程

 

Hbase安装部署基本步骤:

  1、在Hadoop配置的基础上,配置环境变量HBASE_HOME、hbase-env.sh

    编辑 vim /etc/profile  加入 

      export  HBASE_HOME=/opt/hbase-1.2.6 

         export  PATH=$HBASE_HOME/bin:$PATH

    编辑vim /opt/hbase-1.2.6/conf/hbase-env.sh  加入

      export JAVA_HOME=/opt/java_environment/jdk1.7.0_80(jdk安装路径)

    去掉注释 # export  HBASE_MANAGES_ZK=true,使用hbase自带zookeeper。

    2、配置hbase-site.xml文件 

    <configuration>

      <property> 
        <name>hbase.rootdir</name> <!-- hbase存放数据目录 -->
        <value>hdfs://master:9000/opt/hbase/hbase_db</value>

          <!-- 端口要和Hadoop的fs.defaultFS端口一致-->
      </property> 
      <property> 
        <name>hbase.cluster.distributed</name> <!-- 是否分布式部署 -->
        <value>true</value> 
      </property> 
      <property> 
        <name>hbase.zookeeper.quorum</name> <!-- list of  zookooper -->
        <value>master,slave1,slave2</value> 
      </property>     

       <property><!--zookooper配置、日志等的存储位置 -->
          <name>hbase.zookeeper.property.dataDir</name> 
          <value>/opt/hbase/zookeeper</value>
       </property>

    </configuration>

  3、配置regionservers

    编辑 vim /opt/hbase-1.2.6/conf/regionservers   去掉默认的localhost,
     加入slave1、slave2,保存退出 

     然后把在master上配置好的hbase,通过远程复制命令

     scp -r /opt/hbase-1.2.6  192.168.172.72/73:/opt/hbase-1.2.6 

     复制到slave1、slave2对应的位置

  4、启动与停止Hbase

     (1)在Hadoop已经启动成功的基础上,输入start-hbase.sh,过几秒钟便启动完成,

      输入jps命令查看进程是否启动成功,若 master上出现HMaster、HQuormPeer,

      slave上出现HRegionServer、HQuorumPeer,就是启动成功了。

      (2)输入hbase shell 命令 进入hbase命令模式

          输入status命令可以看到如下内容,1个master,2 servers,3机器全部成功启动。

          1 active master, 0 backup masters, 2 servers, 0 dead, 2.0000 average load

    (3)接下来配置本地hosts,(前边配置过的无需再配置了)

       编辑 C:WindowsSystem32driversetc的hosts文件,加入

        192.168.172.71   master

        192.168.172.72   slave1

        192.168.172.73   slave2

      在浏览器中输入http://master:16010就可以在界面上看到hbase的配置了

    (4)当要停止hbase时输入stop-hbase.sh,过几秒后hbase就会被停止了。





























































































以上是关于Hadoop+Hbas完全分布式安装部署的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop完全分布式部署

大数据技术栈-Hadoop3.3.4-完全分布式集群搭建部署-centos7(完全超详细-小白注释版)虚拟机安装+平台部署

Hadoop2.x-基础(HadoopHDFSYARNMapReduce安装与部署本地模式伪分布式完全分布式)

Hadoop的完全分布式部署

hadoop完全分布式搭建部署

Hadoop2.7.3+Hbase-1.2.6完全分布式安装部署