zoukankan      html  css  js  c++  java
  • 分布式Hadoop和HBase整合

    环境:

      CentOS 6.6                hadoop-2.6.0            hbase-0.98.10.1

      HBase1    192.168.1.4     Master

      HBase2    192.168.1.5     Slave1

      HBase3    192.168.1.6     Slave2

    准备工作:

    新建hadoop账户

      每台主机都需要设置

    useradd hadoop
    
    passwd hadoop

     

      切换到hadoop用户,以下操作全部使用hadoop用户,所有目录的user和group均为hadoop,如果不是,手动改为hadoop

    设置JAVA环境

      每台主机都需要设置

      参考文章:http://www.cnblogs.com/xs104/p/4478096.html

    设置hosts

      每台主机都需要设置

    vi /etc/hosts

    127.0
    .0.1 localhost 192.168.1.4 HBase1 192.168.1.5 HBase2 192.168.1.6 HBase3

    设置无密码ssh访问子节点

    在Master机器上(HBase1)执行:

      1.在/home/hadoop目录下新建文件夹.ssh,设置权限为700

      2.生成密钥

    ssh-keygen -t rsa 

      连续输入三次回车,则在.ssh文件夹内生成了id_rsaid_rsa.pub两个密钥文件  

      3.在其他两台机器上新建.ssh目录并将id_rsa.pub公钥文件复制到.ssh文件中

      在其他两台机器上新建文件夹

    ssh hadoop@192.168.1.5 "mkdir /home/hadoop/.ssh;chmod 700 /home/hadoop/.ssh"
    ssh hadoop@192.168.1.6 "mkdir /home/hadoop/.ssh;chmod 700 /home/hadoop/.ssh"

      将密钥复制到其他两台机器的.ssh文件夹

    scp /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.5:/home/hadoop/.ssh/id_rsa.pub
    scp /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.6:/home/hadoop/.ssh/id_rsa.pub

      执行第三步的时候,需要远程连接其他两台机器,所以会提示需要输入hadoop账户的密码

    在三台机器上分别执行:

    touch /home/hadoop/.ssh/authorized_keys

      这样就新建了一个authorized_keys文件,需要注意,该文件的权限为600,如果不是,手动更改

    将Master上的id_rsa.pub文件添加到authorized_keys中

    cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

      

      这时候回到Master机器上,就可以无密码ssh连接自己和子节点了

    ssh 192.168.1.4
    ssh 192.168.1.5
    ssh 192.168.1.6

      有时候第一连接的时候会需要输入密码,第二次就不需要了,如果确保前面的操作没有错误,第二次还需要密码的话,尝试关闭防火墙,要是还不行,尝试关闭SELinux

    chkconfig iptables off
    #关闭selinux
    编辑/etc/selinux/config
    将SELINUX=enforcing改为SELINUX=disabled  

      

      至此,准备工作已经完成,开始部署hadoop。

    Hadoop

    在正式配置hadoop之前,需要在master本地文件系统创建以下文件夹:

           /home/hadoop/dfs/name

           /home/hadoop/dfs/data

           /home/hadoop/tmp

    开始配置,所有配置文件均在hadoop的etc/hadoop目录下

      1. hadoop-env.sh

             export JAVA_HOME=你的jdk目录

      2. yarn-env.sh

             export JAVA_HOME=你的jdk目录

      3. slaves

             填写所有子节点

      4. core-site.xml

    <configuration>
           <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://192.168.1.4:8020</value>
           </property>
           <property>
                    <name>io.file.buffer.size</name>
                    <value>131072</value>
            </property>
           <property>
                   <name>hadoop.tmp.dir</name>
                   <value>file:/home/hadoop/tmp</value>
                   <description>Abase for other temporary   directories.</description>
           </property>
            <property>
                   <name>hadoop.proxyuser.hadoop.hosts</name>
                   <value>*</value>
           </property>
           <property>
                   <name>hadoop.proxyuser.hadoop.groups</name>
                   <value>*</value>
           </property>
        <property>
            <name>io.native.lib.available</name>
            <value>true</value>
        </property>
    </configuration>

      5. hdfs-site.xml

    <configuration>
           <property>
                    <name>dfs.namenode.secondary.http-address</name>
                   <value>192.168.1.4:9001</value>
           </property>
         <property>
                 <name>dfs.namenode.name.dir</name>
                 <value>file:/home/hadoop/dfs/name</value>
           </property>
          <property>
                  <name>dfs.datanode.data.dir</name>
                  <value>file:/home/hadoop/dfs/data</value>
           </property>
           <property>
                   <name>dfs.replication</name>
                   <value>3</value>
            </property>
            <property>
                     <name>dfs.webhdfs.enabled</name>
                      <value>true</value>
             </property>
    </configuration>

      6. mapred-site.xml

    <configuration>
        <property>                                                                  
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>192.168.1.4:10020</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
                    <value>192.168.1.4:19888</value>
        </property>
    </configuration>

      7. yarn-site.xml

    <configuration>
        <property>
            <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>
            <name>yarn.resourcemanager.address</name>
            <value>192.168.1.4:8032</value>
           </property>
           <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>192.168.1.4:8030</value>
           </property>
           <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>192.168.1.4:8031</value>
          </property>
          <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>192.168.1.4:8033</value>
           </property>
           <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>192.168.1.4:8088</value>
           </property>
    </configuration>

      配置完成之后,将hadoop复制到两台子节点中

    sudo scp -r /usr/local/hadoop2.6/ hadoop@192.168.1.5:/usr/local/
    
    sudo scp -r /usr/local/hadoop2.6/ hadoop@192.168.1.6:/usr/local/

     

      至此,所有配置完成,剩下的就是启动验证了

    格式化hadoop

    bin/hdfs namenode -format

    启动

    sbin/start-all.sh

      启动之后,在Master上使用jps命令会显示有“Jps、NameNode、SecondaryNameNode、ResourceManager”四个进程。在slave上使用jps命令会显示有“DataNode、Jps、 NodeManager”三个进程。

    HBase

    安装需要注意以下几点:

             1. 已经配置JDK环境

             2. hadoop已经正确安装

             3. ssh必须安装启动

             4. 各个主机时间必须相同(可容易些许的不一致)

    sudo ntpdate time.nist.gov

                      

    开始配置HBase

             1. 在每个节点创建hbase的临时目录和zookeeper目录

             2. 配置hbase-env.sh文件

             修改JAVA环境

    export JAVA_HOME=/usr/local/jdk1.7

             启动HBase自动的zookeeper

    export HBASE_MANAGES_ZK=true

      3. 配置hbase-site.xml

    <configuration>
        <property>
             <name>hbase.rootdir</name>
             <value>hdfs://192.168.1.4:8020/hbase</value>
             <description>The directory shared by region servers.</description>
        </property>
        <property>
            <name>hbase.master</name>
            <value>hdfs://192.168.1.4:60000</value>
        </property>
        <property>
            <name>hbase.tmp.dir</name>
            <value>/home/hadoop/hbaseTmp</value>
        </property>
            <property>
                    <name>hbase.cluster.distributed</name>
                    <value>true</value>
            </property>
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/home/hadoop/zookeeper</value>
            </property>
        <property>
                    <name>hbase.zookeeper.quorum</name>
                    <value>HBase1,HBase2,HBase3</value>
            </property>
    </configuration>

             至此,HBase安装完成

      启动hbase

    bin/start-hbase.sh

      

  • 相关阅读:
    数据准备2 数据清洗
    数据准备1 数据导入、导出
    数据分析基本流程 Python基本数据类型 Python各种括号的使用方式
    fineBI 学习成果展示1
    未确认融资收益的计算
    合同现金流量
    公允价值持续计算的金额
    发放股票股利
    权益法未实现内部交易损益的调整
    营业外收入入不入损益
  • 原文地址:https://www.cnblogs.com/xs104/p/4680577.html
Copyright © 2011-2022 走看看