JobPlus知识库 IT 大数据 文章
hadoop+zookeepe+hbase完全分布式配置详解

一、准备工作
    1.安装虚拟机+操作系统:VMware、CentOS
    2.设置基础环境三要素:IP、主机名、映射
    3.设置远程连接工具:secureCRT、FileZilla、Notepad++
    4.禁用安全系统和防火墙:service iptables、chkconfig iptables
    5.卸载系统自带JDK 并配置我们需要的JDK版本:rpm -qa、-e、vi /etc/profile

    注意:此处我们只安装一个Linux系统,后面进行克隆生成。速度更快,更方便

    8G内存:可每个虚拟机分1G内存  , 8G以上可分2G内存
    4G内存:看运气,最多512MB每台

    主机名和网络
    student01.com        02.com        03.com


----------- HDFS---------
 DataNode
 NameNode
 SecondaryNameNode

----------YARN---------
 ResourceManager
 NodeManager
 JobHistoryServer

 -------zookeeper--------
 QuorumPeerMain

 -------hbase -------------
 HMaster
 HRegionServer

 node1                    node2                    node3
NameNode                 DataNode                DataNode
ResourceManager            NodeManager                NodeManager
HMaster                    HRegionServer            HRegionServer
QuorumPeerMain             QuorumPeerMain          QuorumPeerMain
SecondaryNameNode
JobHistoryServer

    node1                    node2                    node3

    NameNode                 ResourceManager            HMaster    
    QuorumPeerMain            QuorumPeerMain            QuorumPeerMain
    DataNode                DataNode                DataNode
    NodeManager                NodeManager                NodeManager
    HRegionServer            HRegionServer            HRegionServer
    JobHistoryServer        SecondaryNameNode


二、完全分布式环境安装部署
        1.克隆虚拟机
        2.修改主机名
            --》vi /etc/sysconfig/network
        3.修改网络
            3.1  vi /etc/udev/rules.d/70-persistent-net.rules 
                    复制MAC地址( ATTR{address}),,删除eth0,
                    并将eth1修改为eth0
            3.2     vi /etc/sysconfig/network-scripts/ifcfg-eth0
                    替换eth0的MAC地址(HWADDR=)
                    重启网络   service network restart 
            
            3.4  Linux中修改/etc/hosts
                 windows:C:\Windows\System32\drivers\etc\hosts
                     修改好网络映射配置文件
                         在linux中  /etc/hosts 文件写入所有主机的网络及主机名

            3.5  在每一台Linux系统中都写入对方的网络映射信息。
                    ip地址  主机名

        4.SSH免密码登录
            步骤
                4.1 在客户端主机中生成公/私钥对   
                     ssh-keygen  -t rsa
                4.2将客户端主机中的公钥分发给服务端主机
                     ssh-copy-id   服务端主机地址

                         以上两步需要在三台主机上做相同操作
                                 注意:分发公钥时 也要发给自己

                4.3在客户端主机上免密码登录至服务端 
                     ssh   服务端主机地址

        5.上传hadoop二进制包到指定位置
            5.1解压
                tar -zxvf hadoop-2.6.0.tar.gz -C /opt/modules/

            5.2配置hadoop-env.sh   
                export JAVA_HOME=/opt/modules/jdk1.7.0_67

            5.3配置mapred-env.sh
                export JAVA_HOME=/opt/modules/jdk1.7.0_67

            5.4配置yarn-env.sh
                export JAVA_HOME=/opt/modules/jdk1.7.0_67

            5.5配置slaves
                选择node2、node3作为从节点
                    hadoop02.linux
                    hadoop03.linux

            5.6在HADOOP家目录下创建
                mkdir -p data/tmp

            5.7配置core-site.xml
                <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://hadoop01.linux:8020</value>
                </property>
                
                <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/opt/modules/hadoop-2.6.0/data/tmp</value>
                </property>

            5.8配置hdfs-site.xml
                    <property>
                        <name>dfs.namenode.secondary.http-address</name>
                        <value>hadoop01.linux:50090</value>
                        <description>配置secondarynamenode</description>
                    </property>
                    <property>
                        <name>dfs.replication</name>
                        <value>2</value>
                        <description>配置默认副本数</description>
                    </property>
                    
                    <property>
                        <name>dfs.webhdfs.enabled</name>
                        <value>true</value>
                        <description>在NameNode和DataNode中启用WebHDFS</description>
                    </property>
                    <property>
                        <name>dfs.permissions.enabled</name>
                        <value>false</value>
                        <description>是否开启权限检查</description>
                    </property>

            5.9配置mapred-site.xml
                    hadoop配置文件中没有此文件,需要我们手动重命名此文件
                        cp mapred-site.xml.template mapred-site.xml

                    <property>
                        <name>mapreduce.framework.name</name>
                        <value>yarn</value>
                    </property>
                    
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop01.linux:10020</value>
</property>

<property>        
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop01.linux:19888</value>
</property>

            5.10 配置yarn-site.xml
                   <property>
                        <name>yarn.nodemanager.aux-services</name>
                        <value>mapreduce_shuffle</value>
                    </property>
                     <property>
                        <name>yarn.resourcemanager.hostname</name>
                        <value>hadoop01.linux</value>
                    </property>
                    <property>
                        <name>yarn.log-aggregation-enable</name>
                        <value>true</value>
                       <description>启用日志聚合</description>
                    </property>
                    <property>
                        <name>yarn.log-aggregation.retain-seconds</name>
                        <value>604800</value>
                    </property>
                    <property>
                        <name>yarn.resourcemanager.webapp.address</name>
                        <value>hadoop01.linux:8088</value>
                    </property>

            5.11分发hadoop到各个节点
                scp -r hadoop-2.6.0/ hadoop02.linux:/opt/modules/
                scp -r hadoop-2.6.0/ hadoop03.linux:/opt/modules/

            5.12格式化namenode
                    bin/hdfs namenode -format

                    再次格式化时:删除HADOOP_HOME/data/tmp/下的所有内容,再进行格式化


            5.13启动节点
                    sbin/start-dfs.sh 
                    sbin/start-yarn.sh 
                    sbin/mr-jobhistory-daemon.sh start historyserver

            5.14 替换native包

            5.15 配置HADOOP_HOME
                在node1上配置即可

    三、zookeeper完全分布式环境安装配置

        1.解压
            tar -zxvf zookeeper-3.4.6.tar.gz -C /opt/modules/

        2.创建目录
            mkdir -p mydata/zkData

        3.修改配置文件名称
            到conf目录下修改zoo_sample.cfg文件名称为zoo.cfg

        4.修改zoo.cfg配置文件
            dataDir=/opt/modules/zookeeper-3.4.6/mydata/zkData

            添加
                server.1=hadoop01.linux:2888:3888
                server.2=hadoop02.linux:2888:3888
                server.3=hadoop03.linux:2888:3888

        5.在zkData目录下创建
                vi myid
                编辑内容:1
                保存并退出

        6.分发配置好的zookeeper到各个节点
            scp -r zookeeper-3.4.6/ hadoop02.linux:/opt/modules/
            scp -r zookeeper-3.4.6/ hadoop03.linux:/opt/modules/

        7.修改各个节点上的myid文件
            对应第二个节点 便改为 2
            对应第三个节点 便改为 3

        8.启动zookeeper时  zookeeper会有一个选举的过程,需要等待一小段时间

                选出哪个为领导者
                    哪些又为跟随者
                   启动命令:bin/zkServer.sh start

                   查看集群状态命令:
                               bin/zkServer.sh status
                                   领导者:Mode: leader
                                   跟随者:Mode: follower

    四、HBase完全分布式环境搭建
        1.上传并解压到指定目录
            tar -zxvf hbase-1.0.2-bin.tar.gz -C /opt/modules/

            替换hadoop相关jar包

        2.配置hbase-env.sh
            指定JDK安装路径(which java)
                export JAVA_HOME=/opt/modules/jdk1.7.0_67

            2.1修改HBASE_MANAGES_ZK为false
                    --》代表使用我们自己配置的zookeeper
                export HBASE_MANAGES_ZK=false

        3.conf/hbase-site.xml
              <property>
                <name>hbase.rootdir</name>
                <value>hdfs://hadoop01.linux:8020/hbase</value>
                <description>hbase在HDFS上保存文件位置</description>
              </property>
              <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
                <description>hbase是否是分布式的,true代表是</description>
              </property>
              <property>
                <name>hbase.zookeeper.quorum</name>
                <value>hadoop01.linux,hadoop02.linux,hadoop03.linux</value>
                <description>zookeeper所在节点名称</description>
              </property>
              
              <property>
                <name>hbase.master</name>
                <value>hadoop01.linux:60000</value>
                <description>配置HMaster的地址</description>
              </property>

        4.conf/regionservers
                --》指定从节点所在节点
                        hadoop02.linux
                        hadoop03.linux

        5.将Hbase目录分发到各个节点
             scp -r ../hbase-1.0.2/ hadoop02.linux:/opt/modules/
             scp -r ../hbase-1.0.2/ hadoop03.linux:/opt/modules/

        同步集群时间:hbase集群要求,所有集群节点之间时间不能相差超过30秒
            date -s "2017-12-15 09:34:00"

        6.启动hbase
            全部启动命令:start-hbase.sh 


        7.配置HBASE_HOME
            #HBASE_HOME
            export HBASE_HOME=/opt/modules/hbase-1.0.2
            export PATH=$PATH:$HBASE_HOME/bin


        HDFS :
                50070
                50090
        YARN :    
                8088
        job:    
                19888
        HBase:
                16010


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
338人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序