zoukankan      html  css  js  c++  java
  • HP DL160 Gen9服务器集群部署文档

    HP DL160 Gen9服务器集群部署文档

    硬件配置
    =======================================================
    Server        Memory    CPU            DISK            NetWork
    DL160①        32GB    6*1.9GHZ    2*2TB(SATA)        2*1GBE
    DL160②        32GB    6*1.9GHZ    2*2TB(SATA)        2*1GBE
    DL160③        24GB    6*1.9GHZ    2*2TB(SATA)        2*1GBE
    DL160④        24GB    6*1.9GHZ    2*2TB(SATA)        2*1GBE
    DL160⑤        24GB    6*1.9GHZ    2*2TB(SATA)        2*1GBE
    DL160⑥        8GB      6*1.9GHZ    2*1TB(SATA)        2*1GBE
    =======================================================


    集群规划
    ==============================================================
    Host         IP                          Role                        Soft                     Process        
    lf1            192.168.0.211        HDFS Master            Hadoop2.4.1        NameNode(Active)
                                                HBase Master            Hbase0.98.8        DFSZKFailoverController
                                                                                                         HMaster(Active)
    lf3            192.168.0.213        YARN Master            Hadoop2.4.1        ResourceManager(Active)
                                                 HBase Master           Hbase0.98.8        DFSZKFailoverController
                                                                                                         HMaster(Backup)                                
    lf5            192.168.0.215        HDFS Slave              Hadoop2.4.1         DataNode
                                                                                                          JournalNode
                                                YARN Slave              Hadoop2.4.1         NodeManager
                                                ZooKeeper Follower  ZooKeeper3.4.5     QuorumPeerMain
                                                HBase Slave             Hbase0.98.8          HRegionServer
                                                Sqoop                     Sqoop1.4.5           Sqoop
                                                                        
    lf6            192.168.0.216        HDFS Slave              Hadoop2.4.1         DataNode
                                                                                                          JournalNode
                                                 YARN Slave              Hadoop2.4.1         NodeManager
                                                 ZooKeeper Leader    ZooKeeper3.4.5     QuorumPeerMain
                                                 HBase Slave             Hbase0.98.8          HRegionServer
                                                 Hive                        Hive0.14.0        

    lf7            192.168.0.217        HDFS Slave               Hadoop2.4.1         DataNode
                                                                                                           JournalNode
                                                 YARN Slave               Hadoop2.4.1         NodeManager
                                                 ZooKeeper Follower   ZooKeeper3.4.5    QuorumPeerMain
                                                 HBase Slave              Hbase0.98.8         HRegionServer
    ===============================================================


    一、安装JDK(在lf1节点上)
        cd /home/lefuBigDataDev/clouds/
        安装jdk
            tar -zxvf jdk-7u65-linux-x64.tar.gz
            mv jdk1.7_65 jdk
        配置JAVA_HOME到环境变量
            vim /etc/profile    
            export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
            export PATH=.:$JAVA_HOME/bin:$PATH
            shift+zz
        刷新环境变量使JAVA_HOME立即生效
            source /etc/profile
        验证jdk是否安装成功
            java -version
        复制配置好的jdk和/etc/profile到其他节点
            scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf3:/home/lefuBigDataDev/clouds/
            scp /etc/profile lefuBigDataDev@lf3:/etc/    ##在lf5节点上执行source /etc/profile使环境变量立即生效
            scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf5:/home/lefuBigDataDev/clouds/
            scp /etc/profile lefuBigDataDev@lf5:/etc/    ##在lf5节点上执行source /etc/profile使环境变量立即生效
            scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/
            scp /etc/profile lefuBigDataDev@lf6:/etc/    ##在lf6节点上执行source /etc/profile使环境变量立即生效
            scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/
            scp /etc/profile lefuBigDataDev@lf7:/etc/    ##在lf7节点上执行source /etc/profile使环境变量立即生效
            
            
    二、安装ZooKeeper(在lf5节点上)    
        cd /home/lefuBigDataDev/clouds/
        安装ZooKeeper
            tar -zxvf zookeeper-3.4.5.tar.gz
            mv zookeeper-3.4.5 zk
        修改zookeeper配置文件
            cd /home/lefuBigDataDev/clouds/zk/conf
            mv zoo_sample.cfg zoo.cfg
            zoo.cfg
                dataDir=/home/lefuBigDataDev/clouds/zk/data
                server.1=lf5:2888:3888
                server.2=lf6:2888:3888
                server.3=lf7:2888:3888
            cd /home/lefuBigDataDev/clouds/zk/
            mkdir data
            cd data
            echo "1">myid
        配置ZOOKEEPER_HOME到环境变量
            vim /etc/profile    
            export ZOOKEEPER_HOME=/home/lefuBigDataDev/clouds/jdk
            export PATH=.:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
            shift+zz
        刷新环境变量使ZOOKEEPER_HOME立即生效
            source /etc/profile
        复制配置好的zk和/etc/profile到其他节点
            复制到lf6节点:scp -r /home/lefuBigDataDev/clouds/zk lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/  ##修改zk/data/myid的值为2
            scp /etc/profile lefuBigDataDev@lf6:/etc/    ##在lf6节点上执行source /etc/profile使环境变量立即生效
            复制到lf7节点:scp -r /home/lefuBigDataDev/clouds/zk lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/  ##修改zk/data/myid的值为3
            scp /etc/profile lefuBigDataDev@lf7:/etc/    ##在lf7节点上执行source /etc/profile使环境变量立即生效
        验证ZooKeeper是否安装成功
            在lf5节点上执行启动ZooKeeper命令:
                zkServer.sh start        ##启动ZooKeeper
                jps                        ##如果出现了QuorumPeerMain进程表示ZooKeeper启动成功
                zkServer.sh status        ##偶数节点为Follower
            在lf6节点上执行命令:
                zkServer.sh start        ##启动ZooKeeper
                jps                        ##如果出现了QuorumPeerMain进程表示ZooKeeper启动成功
                zkServer.sh status        ##奇数节点为Leader
            在lf7节点上执行命令:
                zkServer.sh start        ##启动ZooKeeper
                jps                        ##如果出现了QuorumPeerMain进程表示ZooKeeper启动成功
                zkServer.sh status        ##偶数节点为Follower

        
    三、安装Hadoop(在lf1节点上)
        cd /home/lefuBigDataDev/clouds/
        安装Hadoop
            tar -zxvf hadoop-2.4.1-x64.tar.gz
            mv hadoop-2.4.1 hadoop
        修改hadoop配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-env.sh、mapred-site.xml、yarn-env.sh、yarn-site.xml、slaves)    
            cd /home/lefuBigDataDev/clouds/hadoop/etc/hadoop
            1、hadoop-env.sh
                export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
                export HADOOP_HEAPSIZE=2048
            2、core-site.xml
                <configuration>
                    <property>
                        <name>fs.defaultFS</name>
                        <value>hdfs://ns1</value>
                        <description>指定hdfs的nameservice为ns1</description>
                    </property>
                    <property>
                        <name>hadoop.tmp.dir</name>
                        <value>/home/lefuBigDataDev/clouds/hadoop/tmp</value>
                        <description>指定hadoop存放数据的临时目录</description>
                    </property>
                    <property>
                        <name>ha.zookeeper.quorum</name>
                        <value>lf5:2181,lf6:2181,lf7:2181</value>
                        <description>采用QJM方式的高可用需要用到的zookeeper集群节点</description>
                    </property>
                    <property>
                        <name>io.file.buffer.size</name>
                        <value>131072</value>
                        <description>指定hadoop辅助IO操作的缓冲区为128KB,默认是4KB</description>
                    </property>
                    <property>
                        <name>io.compression.codecs</name>
                        <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
                        <description>hdfs实现数据压缩的算法包</description>
                    </property>
                    <property>
                        <name>fs.trash.interval</name>
                        <value>43200</value>
                        <description>开启hadoop回收站功能,保存回收站的数据30天,回收站默认为0分钟,表示关闭</description>
                    </property>
                    <property>
                        <name>fs.trash.checkpoint.interval</name>
                        <value>43200</value>
                        <description>开启hadoop回收站检查间隔(默认为0分钟,必须小于等于fs.trash.interval的时间)</description>
                    </property>
                </configuration>
            3、hdfs-site.xml
                <configuration>
                    <property>
                        <name>dfs.namenode.name.dir</name>
                        <value>/home/lefuBigDataDev/clouds/hadoop/dfs/name</value>
                        <description>指定hadoop的NameNode存放元数据fsImage文件在本地文件系统上的路径</description>
                    </property>
                    <property>
                        <name>dfs.datanode.data.dir</name>
                        <value>/home/lefuBigDataDev/clouds/hadoop/dfs/data</value>
                        <description>指定hadoop的DataNode存放数据块在本地文件系统上的路径,多个文件夹用逗号分隔</description>
                    </property>
                    <property>
                        <name>dfs.namenode.edits.dir</name>
                        <value>/home/lefuBigDataDev/clouds/hadoop/dfs/name</value>
                        <description>指定hadoop的NameNode存放编辑日志edits文件在本地文件系统上的路径</description>
                    </property>
                    <property>
                        <name>dfs.replication</name>
                        <value>3</value>
                        <description>指定hdfs上存放数据的副本数为3,完全分布式下默认为3</description>
                    </property>
                    <property>
                        <name>dfs.blocksize</name>
                        <value>134217728</value>
                        <description>指定hdfs的数据块大小为128MB,默认块大小为128MB</description>
                    </property>
                    <property>
                        <name>dfs.webhdfs.enabled</name>
                        <value>true</value>
                        <description>启用REST方式通过web查看hdfs上的文件、文件夹等详细信息</description>
                    </property>
                    <property>
                        <name>dfs.nameservices</name>
                        <value>ns1</value>    
                        <description>指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致</description>
                    </property>
                    <property>
                        <name>dfs.ha.namenodes.ns1</name>
                        <value>nn1,nn2</value>
                        <description>ns1下面有两个NameNode,分别是nn1,nn2</description>
                    </property>
                    <property>
                        <name>dfs.namenode.rpc-address.ns1.nn1</name>
                        <value>lf1:9000</value>
                        <description>nn1的RPC通信地址</description>
                    </property>
                    <property>
                        <name>dfs.namenode.http-address.ns1.nn1</name>
                        <value>lf1:50070</value>
                        <description>nn1的http通信地址</description>
                    </property>
                    <property>
                        <name>dfs.namenode.rpc-address.ns1.nn2</name>
                        <value>lf2:9000</value>
                        <description>nn2的RPC通信地址</description>
                    </property>
                    <property>
                        <name>dfs.namenode.http-address.ns1.nn2</name>
                        <value>lf2:50070</value>
                        <description>nn2的http通信地址</description>
                    </property>
                    <property>
                        <name>dfs.namenode.shared.edits.dir</name>
                        <value>qjournal://lf5:8485;lf6:8485;lf7:8485/ns1</value>
                        <description>指定NameNode的元数据在JournalNode上的存放位置</description>
                    </property>
                    <property>
                        <name>dfs.journalnode.edits.dir</name>
                        <value>/home/lefuBigDataDev/clouds/hadoop/dfs/journal</value>
                        <description>指定JournalNode在本地磁盘存放数据的位置</description>
                    </property>
                    <property>
                        <name>dfs.ha.automatic-failover.enabled</name>
                        <value>true</value>
                        <description>活动NameNode失效时与备用NameNode完成自动切换</description>
                    </property>
                    <property>
                        <name>dfs.client.failover.proxy.provider.ns1</name>
                        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
                        <description>配置自动切换实现方式的java类</description>
                    </property>
                    <property>
                        <name>dfs.ha.fencing.methods</name>
                        <value>
                            sshfence
                            shell(/bin/true)
                        </value>
                        <description>非平稳故障转移需要使用规避(fencing)机制,多种规避方法以换行分隔,每个规避方法一行</description>
                    </property>
                    <property>
                        <name>dfs.ha.fencing.ssh.private-key-files</name>
                        <value>/home/lefuBigDataDev/.ssh/id_rsa</value>
                        <description>使用规避sshfence隔离机制时需要ssh免登陆</description>
                    </property>
                    <property>
                        <name>dfs.ha.fencing.ssh.connect-timeout</name>
                        <value>30000</value>
                        <description>配置规避sshfence隔离机制超时时间</description>
                    </property>
                    <property>
                        <name>dfs.datanode.du.reserved</name>
                        <value>10737418240</value>
                        <description>预留10GB给其他非HDFS应用程序使用</description>
                    </property>    
                </configuration>
            4、mapred-env.sh
                export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
                export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
                export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
            5、mapred-site.xml
                <configuration>
                    <property>
                        <name>mapreduce.framework.name</name>
                        <value>yarn</value>
                        <description>指定mr框架为yarn方式</description>
                    </property>    
                    <property>
                        <name>mapreduce.task.io.sort.factor</name>
                        <value>100</value>
                        <description>reducer进入排序(合并map的输出)阶段默认合并因子是10,这里的100是为了减少合并的次数</description>
                    </property>
                    <property>
                        <name>mapreduce.job.jvm.numtasks</name>
                        <value>-1</value>
                        <description>开启jvm重用,在密集型任务计算时效率更高</description>
                    </property>
                    <property>
                        <name>mapreduce.output.fileoutputformat.compress.codec</name>
                        <value>org.apache.hadoop.io.compress.DefaultCodec</value>
                        <description>用于处理map任务输出的编解码器</description>
                    </property>
                    <property>
                        <name>mapreduce.map.maxattempts</name>
                        <value>4</value>
                        <description>map任务失败最大尝试次数,默认尝试4次</description>
                    </property>
                    <property>
                        <name>mapreduce.reduce.maxattempts</name>
                        <value>4</value>
                        <description>reduce任务失败最大尝试次数,默认尝试4次</description>
                    </property>
                    <property>
                        <name>mapreduce.reduce.shuffle.parallelcopies</name>
                        <value>10</value>
                        <description>reduce任务复制map输出的阶段,默认启用5个线程,这里指定为10,当map输出数量小于该值时则只每个map任务输出对应一个reduce复制线程</description>
                    </property>
                    <property>
                        <name>mapreduce.map.speculative</name>
                        <value>false</value>
                        <description>关闭map任务的推测执行</description>
                    </property>
                    <property>
                        <name>mapreduce.reduce.speculative</name>
                        <value>false</value>
                        <description>关闭reduce任务的推测执行</description>
                    </property>    
                    <property>
                        <name>mapreduce.job.reduce.slowstart.completedmaps</name>
                        <value>0.80</value>
                        <description>慢启动reduce任务,默认调度器会等待作业5%的map任务结束后调用reduce任务开始等待,等待的时候reduce是会占用reduce任务槽导致其他作业分配不到reduce任务。如果是大型作业时会降低集群的利用率,这里设置某个作业的map任务运行到80%的时候再启动reduce等待</description>
                    </property>    
                </configuration>
            6、yarn-env.sh
                export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
            7、yarn-site.xml
                <configuration>
                    <property>
                       <name>yarn.resourcemanager.ha.enabled</name>
                       <value>true</value>
                       <description>开启ResourceManager的HA</description>
                    </property>
                    <property>
                       <name>yarn.resourcemanager.cluster-id</name>
                       <value>yrc</value>
                       <description>指定ResourceManager的集群ID</description>
                    </property>
                    <property>
                       <name>yarn.resourcemanager.ha.rm-ids</name>
                       <value>rm1,rm2</value>
                       <description>指定HA方式的活动和备用的ResourceManager的名字</description>
                    </property>
                    <property>
                       <name>yarn.resourcemanager.hostname.rm1</name>
                       <value>lf3</value>
                       <description>指定活动的ResourceManager的节点</description>
                    </property>
                    <property>
                       <name>yarn.resourcemanager.hostname.rm2</name>
                       <value>lf4</value>
                       <description>指定备用的ResourceManager的节点</description>
                    </property>
                    <property>
                       <name>yarn.resourcemanager.zk-address</name>
                       <value>lf5:2181,lf6:2181,lf7:2181</value>
                       <description>指定zk集群地址</description>
                    </property>
                    <property>
                       <name>yarn.nodemanager.aux-services</name>
                       <value>mapreduce_shuffle</value>
                       <description>在NodeManager上扩展自定义服务</description>
                    </property>
                    <property>
                       <name>yarn.nodemanager.resource.cpu-vcores</name>
                       <value>6</value>
                       <description>yarn使用虚拟cpu个数,默认8个;虚拟cpu个数在生产中建议和物理cpu核数相同</description>
                    </property>
                    <property>
                       <name>yarn.nodemanager.resource.memory-mb</name>
                       <value>16384</value>
                       <description>yarn节点上可使用的物理内存总量,默认8192MB(8GB),这里设置为16384MB(16GB)</description>
                    </property>
                    <property>
                       <name>yarn.nodemanager.vmem-pmem-ratio</name>
                       <value>2.1</value>
                       <description>任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1MB</description>
                    </property>
                    <property>
                       <name>yarn.nodemanager.pmem-check-enabled</name>
                       <value>true</value>
                       <description>是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true</description>
                    </property>
                    <property>
                       <name>yarn.nodemanager.vmem-check-enabled</name>
                       <value>true</value>
                       <description>是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true</description>
                    </property>
                    <property>
                       <name>yarn.scheduler.minimum-allocation-mb</name>
                       <value>1024</value>
                       <description>单个任务可申请的最少物理内存量,默认是1024MB(1GB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数</description>
                    </property>
                    <property>
                       <name>yarn.scheduler.maximum-allocation-mb</name>
                       <value>15360</value>
                       <description>单个任务可申请的最多物理内存量,默认是8192MB(8GB),这里是15360MB(15GB)</description>
                    </property>
                </configuration>
            8、slaves
                lf5
                lf6
                lf7
        配置HADOOP_HOME到环境变量
            vim /etc/profile    
            export HADOOP_HOME=/home/lefuBigDataDev/clouds/jdk
            export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
        刷新环境变量使HADOOP_HOME立即生效
            source /etc/profile
        复制配置好的hadoop到其他节点
            复制到lf3节点:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf3:/home/lefuBigDataDev/clouds/  ##添加HADOOP_HOME到/etc/profile,然后执行source /etc/profile立即生效
            复制到lf5节点:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf5:/home/lefuBigDataDev/clouds/  ##添加HADOOP_HOME到/etc/profile,然后执行source /etc/profile立即生效
            复制到lf6节点:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/  ##添加HADOOP_HOME到/etc/profile,然后执行source /etc/profile立即生效
            复制到lf7节点:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/  ##添加HADOOP_HOME到/etc/profile,然后执行source /etc/profile立即生效
        开始准备启动hadoop集群,严格按照如下步骤执行
            1、检查lf5、lf6、lf7节点上的ZooKeeper集群是否启动(HDFS HA和YARN HA都需要依赖ZooKeeper集群)
                在lf5节点上执行命令:
                    zkServer.sh status  ##如果没有QuorumPeerMain进程则执行zkServer.sh start启动
                在lf6节点上执行命令:
                    zkServer.sh status  ##如果没有QuorumPeerMain进程则执行zkServer.sh start启动
                在lf7节点上执行命令:
                    zkServer.sh status  ##如果没有QuorumPeerMain进程则执行zkServer.sh start启动
            2、在lf1节点上启动JournalNode
                cd /home/lefuBigDataDev/clouds/hadoop/sbin
                hadoop-daemons.sh start journalnode
            3、在lf1节点上格式化hadoop的HDFS,即hadoop的分布式文件系统
                cd /home/lefuBigDataDev/clouds/hadoop/bin
                hdfs namenode -format    ##日志中出现这行内容Storage directory /home/lefuBigDataDev/clouds/hadoop/dfs/name has been successfully formatted.则表示格式化HDFS成功
            4、在lf1节点上格式化ZKFC,即ZooKeeper故障转移控制器
                cd /home/lefuBigDataDev/clouds/hadoop/bin
                hdfs zkfc -formatZK        ##日志中出现这行内容ha.ActiveStandbyElector: Successfully created /hadoop-ha/ns1 in ZK.则表示格式化ZKFC成功
            5、在lf1节点上启动hadoop的HDFS
                cd /home/lefuBigDataDev/clouds/hadoop/sbin
                start-dfs.sh
            6、在lf3节点上启动hadoop的YARN
                cd /home/lefuBigDataDev/clouds/hadoop/sbin
                start-yarn.sh
            7、验证hadoop集群是否启动成功
                1、使用shell验证:
                    输入命令:for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i `which jps`; done    ##如下进程表示hadoop集群启动成功
                        lf1
                        3598 DFSZKFailoverController
                        9197 Jps
                        3283 NameNode
                        lf3
                        2902 ResourceManager
                        3037 JobHistoryServer
                        7491 Jps
                        lf5
                        3148 DataNode
                        3370 NodeManager
                        3255 JournalNode
                        3073 QuorumPeerMain
                        15238 Jps
                        lf6
                        3220 NodeManager
                        2917 QuorumPeerMain
                        10380 Jps
                        2997 DataNode
                        3105 JournalNode
                        lf7
                        2974 QuorumPeerMain
                        3163 JournalNode
                        3277 NodeManager
                        3056 DataNode
                        12048 Jps
                2、使用浏览器方式验证:
                    输入lf1:50070验证HDFS
                    输入lf3:8088验证YARN
                    输入lf3:19888验证HistoryServer
            8、以上两种方式验证通过则表示Hadoop集群正确部署并启动成功


    四、安装HBase(在lf1节点上),前提条件是必须已有ZooKeeper集群
        cd /home/lefuBigDataDev/clouds/
        安装HBase
            tar -zxvf hbase-0.98.8-hadoop2-bin.tar.gz
            mv hbase-0.98.8-hadoop2-bin hbase
        修改hbase配置文件(hbase-env.sh,hbase-site.xml,regionservers,需要将Hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下)
            1、hbase-env.sh
                export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
                export HBASE_HEAPSIZE=3000
            2、hbase-site.xml
                <configuration>
                    <property>
                            <name>hbase.rootdir</name>
                            <value>hdfs://ns1/hbase</value>
                            <description>指定hbase在HDFS上存储的路径</description>
                    </property>
                    <property>
                            <name>hbase.cluster.distributed</name>
                            <value>true</value>
                            <description>指定hbase集群为完全分布式</description>
                    </property>
                    <property>
                            <name>hbase.zookeeper.quorum</name>
                            <value>lf5:2181,lf6:2181,lf7:2181</value>
                            <description>指定HBase集群使用外部的zookeeper集群的地址</description>
                    </property>
                    <property>
                            <name>zookeeper.session.timeout</name>
                            <value>60000</value>
                            <description>RegionServer与zookeeper连接超时时间默认180000毫秒(3分钟),当超过超时时间时,zookeeper会将超时节点的RegionServer从RegionServer集群清单中清除,当HMaster收到移除通知后会对超时节点的Regions重新负载均衡,让其他存活的RegionServer接管。这里改为60000毫秒(1分钟)</description>
                    </property>
                    <property>
                        <name>hbase.regionserver.handler.count</name>
                        <value>80</value>
                        <description>RegionServer端开启的RPC监听器实例个数(RegionServer能够处理的IO请求线程数)。老版本默认10,0.98.8中默认是30,这里改为80</description>
                    </property>
                        <property>
                        <name>hfile.block.cache.size</name>
                        <value>0.4</value>
                        <description>regionserver cache的大小,默认是0.4,是整个堆内存的多少比例作为regionserver的cache,调大该值会提升查询性能。如果有大量的查询,写入不多,则调到0.5。当这里设置大了,有MapReduce作业Scan HBase时需要在MapReduce作业的Scan类中添加scan.setCacheBlocks(false),这样可以避免由于MapReduce使用regionserver的cache都被替换,造成hbase的查询性能明显下降。</description>
                    </property>
                    <property>
                        <name>hbase.hregion.memstore.flush.size</name>
                        <value>268435456</value>
                        <description>regionserver的单个region memstore的大小,默认是128M,这里设为256。在hbase结构中,一个regionserver管理多个region,一个region对应一个hlog和多个store,一个store对应多个storefile和一个memstore,这里的hbase.hregion.memstore.flush.size意思一个region下面的所有store里面的memstore的达到多少时,开始将这些memstore flush到hdfs中去,配置这个值,需
                        要参考一下,平均每个regionserver管理的region数量,如果每台regionsever管理的region不多的话,可以适当的调大该值,如512M时再flush</description>
                    </property>
                    <property>
                        <name>hbase.hregion.max.filesize</name>
                        <value>10737418240</value>
                        <description>默认10GB,regions会被hmaster balance入各个regionserver,后随着单region的记录数增加,触发splite条件一般为hbase.hregion.max.filesize,会对其进行splite,找到region的middlekey,之后一分为二成为两个region,当然这是一个完整事务,之后会随着balance入不同的regionserver进行负载方面的均衡。</description>
                    </property>
                    <property>
                        <name>hbase.hstore.compactionThreshold</name>
                        <value>5</value>
                        <description>设置执行Compaction(Major或Minor)操作的阈值,默认是3。对于HBase负载较重的系统,为降低过频繁的合并操作,这里设置成5。</description>
                    </property>    
                </configuration>
            3、regionservers
                lf5
                lf6
                lf7
        配置HBASE_HOME到环境变量
            vim /etc/profile    
            export HBASE_HOME=/home/lefuBigDataDev/clouds/hbase
            export PATH=.:$HBASE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
            shift+ZZ
        刷新环境变量使HBASE_HOME立即生效
            source /etc/profile
        复制配置好的hbase到其他节点
            复制到lf3节点:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf3:/home/lefuBigDataDev/clouds/  ##添加HBASE_HOME到/etc/profile,然后执行source /etc/profile立即生效
            复制到lf5节点:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf5:/home/lefuBigDataDev/clouds/  ##添加HBASE_HOME到/etc/profile,然后执行source /etc/profile立即生效
            复制到lf6节点:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/  ##添加HBASE_HOME到/etc/profile,然后执行source /etc/profile立即生效
            复制到lf7节点:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/  ##添加HBASE_HOME到/etc/profile,然后执行source /etc/profile立即生效
        开始准备启动hbase集群,严格按照如下步骤执行
            1、验证各个节点的时间误差,HBase不允许最大时间差超过30秒
                for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i date; done
            2、如果各个节点的时间误差超过30秒则执行如下命令
                for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i date -s 月/日/年; done
                for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i date -s 时/分/秒; done
            3、检查lf5、lf6、lf7节点上的ZooKeeper集群是否启动(HBase集群需要依赖ZooKeeper集群)
                在lf5节点上执行命令:
                    zkServer.sh status  ##如果没有QuorumPeerMain进程则执行zkServer.sh start启动
                在lf6节点上执行命令:
                    zkServer.sh status  ##如果没有QuorumPeerMain进程则执行zkServer.sh start启动
                在lf7节点上执行命令:
                    zkServer.sh status  ##如果没有QuorumPeerMain进程则执行zkServer.sh start启动
            4、在lf1节点上启动hbase HA Active进程
                    cd /home/lefuBigDataDev/clouds/hbase/bin
                    start-hbase.sh
            5、在lf3节点上启动hbase HA Backup进程
                    hbase-daemon.sh start master
            6、验证hbase集群是否运行成功
                1、使用shell验证:
                    输入命令:for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i `which jps`; done    ##如下进程表示hbase集群启动成功
                        lf1
                        11850 NameNode
                        15778 Jps
                        12167 DFSZKFailoverController
                        12407 HMaster
                        lf3
                        8861 ResourceManager
                        11192 Jps
                        9083 JobHistoryServer
                        9301 HMaster
                        lf5
                        17944 QuorumPeerMain
                        18029 DataNode
                        18250 NodeManager
                        21167 Jps
                        18136 JournalNode
                        18441 HRegionServer
                        lf6
                        15900 Jps
                        12687 NodeManager
                        5492 RunJar
                        12383 QuorumPeerMain
                        12466 DataNode
                        12878 HRegionServer
                        12573 JournalNode
                        lf7
                        14187 NodeManager
                        16753 Jps
                        13956 DataNode
                        13881 QuorumPeerMain
                        14073 JournalNode
                        14378 HRegionServer
                2、使用浏览器方式验证:
                    输入lf1:60010验证HBase集群信息
                    输入lf3:60010验证HBase备用节点信息
            7、以上两种方式验证通过则表示HBase集群正确部署并启动成功
                    

    五、安装Sqoop(在lf5节点上),前提条件是已有Hadoop集群
        cd /home/lefuBigDataDev/clouds/
        安装Sqoop
            tar -zxvf sqoop-1.4.5.bin.tar.gz
            mv sqoop-1.4.5.bin sqoop
        添加SQOOP_HOME到环境变量
            export SQOOP_HOME=/home/lefuBigDataDev/clouds/sqoop
            shift+ZZ
        刷新环境变量使SQOOP_HOME立即生效
            source /etc/profile
        验证sqoop是否安装成功
            sqoop version


    六、安装Hive(在lf6节点上),前提条件是已有Hadoop集群
        cd /home/lefuBigDataDev/clouds/
        安装Sqoop
            tar -zxvf apache-hive-0.14.0-bin.tar.gz
            mv apache-hive-0.14.0-bin hive
        添加SQOOP_HOME到环境变量
            export HIVE_HOME=/home/lefuBigDataDev/clouds/hive
            shift+ZZ
        刷新环境变量使HIVE_HOME立即生效
            source /etc/profile
        修改hive配置文件(hive-env.sh、hive-site.xml)
            1、hive-env.sh
                export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
                export HADOOP_HOME=/home/lefuBigDataDev/clouds/hadoop
                export HIVE_HOME=/home/lefuBigDataDev/clouds/hive
            2、hive-site.xml
                <configuration>
                  <property>
                    <name>javax.jdo.option.ConnectionURL</name>
                    <value>jdbc:mysql://lf5:3306/lefu?createDatabaseIfNotExist=true</value>  ##如果写成远程访问提示过期需要修改mysql库的表
                    <description>指定hive的元数据存储的数据库为mysql,使用JDBC的方式连接mysql,如果mysql中不存在hive数据库则创建</description>
                  </property>
                  <property>
                    <name>javax.jdo.option.ConnectionDriverName</name>
                    <value>com.mysql.jdbc.Driver</value>
                    <description>指定hive元数据存储的数据库的JDBC连接驱动类</description>
                  </property>
                  <property>
                    <name>javax.jdo.option.ConnectionUserName</name>
                    <value>root</value>
                    <description>使用指定用户登录hive的元数据存储数据库</description>
                  </property>
                  <property>
                    <name>javax.jdo.option.ConnectionPassword</name>
                    <value>******</value>
                    <description>使用指定密码登录hive的元数据存储数据库</description>
                  </property>
                  <property>
                    <name>hive.querylog.location</name>
                    <value>/home/lefuBigDataDev/clouds/hive/tmp</value>
                    <description>默认取值为${system:java.io.tmpdir}/${system:user.name},这个目录是不存在的</description>
                  </property>
                  <property>
                    <name>hive.exec.local.scratchdir</name>
                    <value>/home/lefuBigDataDev/clouds/hive/tmp</value>
                    <description>默认取值为${system:java.io.tmpdir}/${system:user.name},这个目录是不存在的</description>
                  </property>
                  <property>
                    <name>hive.downloaded.resources.dir</name>
                    <value>/home/lefuBigDataDev/clouds/hive/tmp</value>
                    <description>默认取值为${system:java.io.tmpdir}/${hive.session.id}_resources,这个目录是不存在的</description>
                  </property>
                </configuration>
            3、验证hive安装
                1、使用shell验证
                    hive
                2、登陆mysql,mysql中有个lefu的数据库表示hive配置成功


























  • 相关阅读:
    jquery的全选,全不选,反选
    jquery中的on方法绑定动态元素
    IIS服务器不能下载.apk文件的解决方略
    14:堆和堆排序
    虚拟内存
    leetcode28:实现strStr()
    leetcode387:字符串中的第一个唯一字符
    leetcode344:反转字符串
    leetcode198:打家劫舍
    leetcode64:最小路径和
  • 原文地址:https://www.cnblogs.com/mengyao/p/4486870.html
Copyright © 2011-2022 走看看