Hadoop基本生态平台搭建

Posted 猩吧嗑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop基本生态平台搭建相关的知识,希望对你有一定的参考价值。

目录

  • Hadoop 集群环境安装手册

    • 8.1 Hbase下载

    • 8.2 安装配置

    • 8.3 启动与关闭

    • 7.1 Spark下载

    • 7.2安装配置

    • 7.3启动并验证

    • 6.1 Scala下载

    • 6.2配置

    • 5.1下载准备

    • 5.2安装配置

    • 5.3启动和停止Azkaban

    • 4.1mysql安装

    • 4.2Hive下载准备

    • 4.3Hive配置

    • 4.4启动hive客户端

    • 3.1 Hadoop下载准备

    • 3.2Hadoop集群规划

    • 3.2系统配置

    • 3.3Hadoop配置

    • 3.4启动Hadoop集群

    • 2.1 Zookeeper下载准备

    • 2.2 Zookeeper安装配置

    • 1.1 JDK1.8下载

    • 一、JDK安装

    • 二、Zookeeper安装

    • 三、Hadoop安装

    • 四、Hive安装

    • 5.Azkaban安装

    • 6.Scala安装

    • 7. Spark安装

    • 8. Hbase 安装

      Hadoop 集群环境安装手册

      一、JDK安装

      1.1 JDK1.8下载

      到oracle官网下载jdk-8u101-linux-x64.tar.gz

      先查找并卸载自带openJDK

      rpm -qa |grep openjdk
      yum -y remove *openjdk*

      解压jdk-8u101-linux-x64.tar.gz到安装目录,如果没有特别说明,全文中安装目录都是指/data0/soft/

      remove jdk-8u101-linux-x64.tar.gz /data0/soft/
      cd /data0/soft
      tar zxvf jdk-8u101-linux-x64.tar.gz
      mv jdk-8u101-linux-x64.tar.gz java

      配置JAVA_HOME

      echo '## java configuration ' >> /etc/profile
      echo 'export JAVA_HOME=/data0/soft/java' >> /etc/profile
      echo 'export PATH=.:$JAVA_HOME/bin:$PATH' >> /etc/profile
      source /etc/profile

      验证是否安装成功

      java -version

      二、Zookeeper安装

      2.1 Zookeeper下载准备

      去Zookeeper官网或者用wget下载安装包zookeeper-3.4.9.tar.gz

      2.2 Zookeeper安装配置

      把zookeeper-3.4.9.tar.gz移动到安装目录并解压

      mv zookeeper-3.4.9.tar.gz /data0/soft/
      cd /data0/soft
      tar zxvf zookeeper-3.4.9.tar.gz 
      mv zookeeper-3.4.9 zookeeper

      编辑并保存zoo.cfg,配置文件如下

      vi /data0/soft/zookeeper/conf/zoo.cfg#重新写入以下配置tickTime=2000
      initLimit=10
      syncLimit=5
      dataDir=/data0/soft/zookeeper
      clientPort=2181
      server.1=dmp1:2888:3999
      server.2=dmp2:2888:3999
      server.3=dmp3:2888:3999

      编辑hosts文件,对应server.*的主机名

      vi /etc/hosts#写入集群主机名映射关系10.20.26.30    dmp1
      10.20.26.31    dmp2
      10.20.26.32    dmp3

      在dataDir下新增文件myid,填写值为server.*对应的编号

      echo '1'>/data0/soft/zookeeper/myid

      添加Zookeeper环境变量

      echo '## zk configuration ' >> /etc/profile
      echo 'export ZOOKEEPER_HOME=/data0/soft/zookeeper' >> /etc/profile
      echo 'export PATH=$ZOOKEEPER_HOME/bin:$PATH' >> /etc/profile
      source /etc/profile

      启动Zookeeper并查看状态,可以看到节点是leader还是follower

      zkServer.sh start
      zkServer.sh status

      三、Hadoop安装

      3.1 Hadoop下载准备

      这里用下载的hadoop-2.6.0-cdh5.5.0.tar.gz(!注:其中的配置文件是已经配置过的,只需要改成对应集群的名称及目录路径即可)

      如果只有一块磁盘,该文档中的data0、data1都指data目录

      3.2Hadoop集群规划

      hostname ip 安装组件
      dmp1
      Namenode/ResourceManager/journalNode/zkfc/jobhistoryServer /timeLineServer/proxyServer/metastore/hiveSerer2
      dmp2
      namenode/ResourceManager/journalNode/zkfc
      dmp3
      DataNode/NodeManager/journalNode
      dmp4
      DataNode/NodeManager
      dmp5
      DataNode/NodeManager
      dmp6
      DataNode/NodeManager
      ...
      DataNode/NodeManager

      3.2系统配置

      #### 3.2.1修改hosts文件####dmp1xx.xx.xx.xx
      dmp2xx.xx.xx.xx
      ...

      修改所有节点的hosts文件,添加ip和集群列表中对应hostname

      3.2.2修改hostname

      修改所有节点的/etc/sysconfig/network文件,修改对应的hostname,重启生效

      3.2.3关闭防火墙

      service iptables off
      //如果局域网内端口不设防火墙则不需要关闭

      3.2.4修改linux参数

      修改所有节点文件:/etc/selinux/config,修改SELINUX=disabled

      修改所有节点文件打开数量:/etc/security/limits.conf,增加一行内容 : * - nofile 1024000

      修改所有节点最大进程数:/etc/security/limits.d/90-nproc.conf,增加一行:* - nproc 262144

      修改所有节点内存配置:/etc/sysctl.conf,改为:

      vm.overcommit_memory=1
      vm.swappiness=0#*# 1net.core.somaxconn=32768

      关闭THP:

      #*# 2echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
      echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

      #### 3.2.5新增用户 ####

      新增用户hadoop,并将hadoop添加到hadoop组

      useradd hadoop
      useradd hadoop
      usermod -a -G hadoop hadoop
      passwd hadoop Paic1234

      将每个节点的数据磁盘路径权限设为775,这里假设每个磁盘挂载目录为data0,data1..data*

      chmod -R 775 /data0
      chmod -R 775 /data1

      3.2.6添加节点间hadoop用户免密登陆

      在dmp1上用hadoop用户执行

      ssh-keygen -t rsa
      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      //在每一个从节点执行 ssh-copy-id -i dmp1,将公钥发送到主节点
      //将公钥文件发送到各节点
      for i in {2..6};do scp ~/.ssh/authorized_keys hadoop@dmp$i:~/.ssh/;done;
      //配置known_hosts验证关闭
       vi /etc/ssh/ssh_config
       StrictHostKeyChecking no


      3.2.7解压安装hadoop

      将安装包hadoop-2.6.0-cdh5.5.0.tar.gz解压到/data0/soft,注意,如果安装包根目录native目录为空则需要去下载编译native文件。

      设置环境变量到~/.bashrc

      export HADOOP_HOME=/data0/soft/hadoop
      export HIVE_HOME=/data0/soft/hive
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

      3.2.8创建工作目录

      为每个节点创建用户工作目录:/data0/hadoop/

      创建hdfs工作目录:/data0/hadoop/dfs、/data0/hadoop/dfs/logs、/data0/hadoop/dfs/pid

      创建hive工作目录:/data0/hadoop/hive、/data0/hadoop/hive/logs

      3.3Hadoop配置

      3.3.1修改core-site.xml

      name value 描述
      fs.defaultFS hdfs://dmp 这里的值指的是默认的HDFS路径。
      hadoop.tmp.dir /data0/hadoop/tmp 这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录
      ha.zookeeper.quorum dmp1:2181,dmp2:2181,dmp3:2181 这里是ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点
      fs.trash.interval 2880 设置回收站保存时间
      hadoop.proxyuser.dmp.hosts * 指定有访问权限的地址
      hadoop.proxyuser.dmp.group * 指定有访问权限的用户组

      3.3.2修改hdfs-site.xml

      name value 描述
      dfs.replication 3 指定DataNode存储block的副本数量
      dfs.namenode.name.dir file:///data0/hdfs/name 指定namenode元数据信息存储位置
      dfs.datanode.data.dir file:///data0/hdfs/data,file:///data1/hdfs/data,file:///data2/hdfs/data,.. 指定datanode元数据信息存储位置, 设置成所有的磁盘; 测试环境中如果是只有一个盘就只写一个盘
      dfs.nameservices dmp Hdfs的集群名称,自己定
      dfs.ha.namenodes.dmp dmp1,dmp2 指定NameService是dmp时的namenode有哪些,这里的值也是逻辑名称,名字随便起,相互不重复即可
      dfs.namenode.rpc-address.dmp.dmp1 dmp1:9000 指定rm1的RPC地址
      dfs.namenode.http-address 0.0.0.0:50070 指定http地址
      dfs.namenode.rpc-address.dmp.dmp2 dmp2:9000 指定rm2的RPC地址
      dfs.journalnode.http-address 0.0.0.0:8480 指定journalnode http
      dfs.namenode.shared.edits.dir qjournal://dmp1;dmp2;dmp3/dmp 指定dmp的两个NameNode共享edits文件目录时,使用的JournalNode集群信息
      dfs.ha.automatic-failover.enabled true 即当NameNode出故障时,是否自动切换到另一台NameNode
      dfs.client.failover.proxy.provider.dmp org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider 指定NameNode出故障时,哪个实现类负责执行故障切换
      dfs.journalnode.edits.dir /data0/hdfs/journal 指定JournalNode集群在对NameNode的目录进行共享时,自己存储数据的磁盘路径
      dfs.ha.fencing.methods sshfence (说明:如果节点的22端口改了,请标明改成什么端口, hadoop2是用户名, 36102是节点端口
      dfs.ha.fencing.ssh.private-key-files /home/hadoop/.ssh/id_rsa 如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置
      dfs.permissions false 是否开启hdfs访问权限验证

      3.3.3修改文件yarn-site.xml

      key value desc
      yarn.resourcemanager.ha.enabled true 打开resourcemanager ha模式
      yarn.resourcemanager.cluster-id yarn-ha-cluster 设置resourcemanager ha的集群名称,进程启动后这个名称可以在zookeeper中查看
      yarn.resourcemanager.ha.rm-ids rm1,rm2 设置resourcemanager的id,可以与主机同名, 本例子与主机同名
      yarn.resourcemanager.hostname.rm1 dmp1 指定rm1对应哪一台主机
      yarn.resourcemanager.hostname.rm2 dmp2 指定rm2对应哪一台主机
      yarn.resourcemanager.zk-address dmp1:2181,dmp2:2181,dmp3:2181 设置zkurl
      yarn.nodemanager.aux-services mapreduce_shuffle 用什么方式进行数据传递
      yarn.log-aggregation-enable true
      yarn.log.server.url http://dmp1:19888/jobhistory/logs/ 设置jobhistory的地址。 在这个地址有
      yarn.resourcemanager.scheduler.class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler 设置调 度器,不设就用默认。默认也可以
      yarn.resourcemanager.scheduler.monitor.enable true 支持资源抢占
      yarn.nodemanager.local-dirs file:///data0/dfs/nm-local-dir,file:///data1/dfs/nm-local-dir,..
      yarn.nodemanager.resource.memory-mb 20480 nodeManager可分配的内存大小,设置成比总内存略小。120g的机器设置成110g
      yarn.nodemanager.resource.cpu-vcores 32 设置nodemanager节点内存大小,CPU个数
      yarn.timeline-service.enabled true 打开timeline服务
      yarn.log-aggregation.retain-seconds 86400 日志保留时间,默认不删除


      3.3.4修改mapred-site.xml

      key value desc
      mapreduce.framework.name yarn 打开resourcemanager ha模式
      mapreduce.jobhistory.address dmp1:10020 设置jobhistory地址
      mapreduce.jobhistory.webapp.address dmp1:19888 设置ui jobhistory地址
      mapreduce.reduce.input.buffer.percent 0.8 mr buffer占最大内存比率

      3.3.5修改slaves文件

      将datanode的hostname按行写入slaves文件

      3.3.6修改yarn-env.sh文件

      YARN_LOG_DIR=/data0/hadoop/dfs/logs

      YARN_PID_DIR=/data0/hadoop/dfs/pid

      export JAVA_HOME=/data0/soft/java/jdk1.8.0_101

      3.3.7修改hadoop-env.sh 文件

      export HADOOP_LOG_DIR=/data0/hadoop/dfs/log

      export HADOOP_PID_DIR=/data0/hadoop/dfs/pid

      export JAVA_HOME=/data0/soft/java/jdk1.8.0_101

      3.3.8修改mapred-env.sh

      export HADOOP_LOG_DIR=/data0/hadoop/dfs/log

      export HADOOP_PID_DIR=/data0/hadoop/dfs/pid

      export JAVA_HOME=/data0/soft/java/jdk1.8.0_101

      3.3.9hadoop安装目录分发

      将配置好的hadoop目录用scp分发到所有节点上

      每个节点配置相同

      3.4启动Hadoop集群

      3.4.1启动journalNode

      在dmp1、dmp2上执行:hadoop-daemon.sh start journalnode

      3.4.2格式化zk

      在dmp1上执行:hdfs zkfc -formatZK

      3.4.3格式化namenode

      在dmp1上执行

      hdfs namenode -format
      hadoop-daemon.sh start namenode

      在dmp2上执行

      hdfs namenode -bootstrapStandby
      hadoop-daemon.sh start namenode

      3.4.4启动hdfs

      在dmp1上执行:start-dfs.sh

      在dmp1上执行:start-yarn.sh

      3.4.5启动其他服务

      在dmp1上执行:

      mr-jobhistory-daemon.sh start historyserver
      yarn-daemon.sh start proxyserver
      yarn-daemon.sh start timelineserver

      3.4.6Hadoop启动与停止

      初始化完以后的常规启动和停止

      启动,在dmp1上执行:

      start-dfs.sh
      start-yarn.sh

      停止,在dmp1上执行:

      stop-dfs.sh
      stop-yarn.sh

      访问

      http://dmp1:50070
      http://dmp2:50070

      可以查看hadoop集群状态,其中一个为active,一个为standby

      四、Hive安装

      4.1Mysql安装

      这里hive使用mysql作元数据存储,mysql安装过程略。

      安装完以后创建hive元数据的schema

      create database hive default charset latin1;

      4.2Hive下载准备

      这里使用hive2.1.1版本进行安装。(!注:其中的配置文件是已经配置过的,已包含mysql驱动包,只需要改成对应集群的名称及目录路径即可)

      4.3Hive配置

      4.3.1解压Hive

      将hive2.1.1.tar.gz解压到/data0/soft

      4.3.2修改环境变量

      在hadoop安装过程中已配置

      4.3.3修改hive-size.xml

      cp hive-default.xml.template hive-site.xml

      修改javax.jdo.option.ConnectionURL的值为mysql连接url

      修改javax.jdo.option.ConnectionDriverName为mysql用户名

      修改javax.jdo.option.ConnectionPassword的值为mysql密码

      修改hive.metastore.schema.verification的值为false

      4.3.4修改日志文件

      cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

      cp hive-log4j2.properties.template hive-log4j2.properties

      4.3.5初始化元数据

      登陆mysql,执行:

      create database hive default charset latin1;//database名称与url一致

      在hive的bin下面执行:./schematool -initSchema -dbType mysql

      4.3.6添加metastore启动脚本

      vi start-metastore.sh

      #/bin/shif [ -z "${HIVE_HOME}" ]; then
        export HIVE_HOME="$(cd "`dirname "$0"`"/..; pwd)"
      fi
      echo $HIVE_HOME
      nohup $HIVE_HOME/bin/hive --service metastore  > $HIVE_HOME/logs/metastore.log 2>&1  &
      echo $$

      chmod u+x start-metastore.sh

      ./start-metastore.sh

      4.3.7添加hiveserver2启动脚本

      vi start-hiveserver2.sh

      #/bin/sh
       if [ -z "${HIVE_HOME}" ]; then
        export HIVE_HOME="$(cd "`dirname "$0"`"/..; pwd)"
      fi
      echo $HIVE_HOME
      nohup $HIVE_HOME/bin/hive --service hiveserver2  > $HIVE_HOME/logs/hiveserver2.log 2>&1  &
      echo $$

      chmod u+x start-hiveserver2.sh

      ./start-hiveserver2.sh

      4.4启动hive客户端

      执行命令:hive

      即可以操作hive sql

      5.Azkaban安装

      5.1下载准备

      下载并编译Azkaban3.10.0,这里直接使用已编译和配置的安装包Azkaban3.10.0.tar.gz

      5.2安装配置

      将Azkaban3.10.0.tar.gz解压到/data0/soft目录下

      进入/data0/soft/azkaban/plugins/jobtypes/hive/

      将plugin.properties和private.properties中hive.aux.jars.path修改为hive lib目录

      hive.aux.jars.path=/data0/soft/hive2.1.1/lib

      进入/data0/soft/azkaban/plugins/jobtypes/spark/

      将private.properties中jobtype.classpath注释掉

      进入/data0/soft/azkaban/plugins/jobtypes,将common.properties中相关应用的根目录修改为实际安装目录

      hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0hive.home=/data0/soft/hive2.1.1pig.home=/dpata0/soft/azkaban/plugins/jobtype/pig//spark.home=不存在的组件不用配置azkaban.home=/data0/soft/azkaban

      修改private.properties,参照上面修改应用对应目录

      hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0hive.home=/data0/soft/hive2.1.1jobtype.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*:${hive.home}/conf:${hive.home}/lib/*

      修改commonprivate.properties,按上面修改应用对应根目录,然后修改类路径

      hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0hive.home=/data0/soft/hive2.1.1pig.home=/dpata0/soft/azkaban/plugins/jobtype/pig
      //spark.home=不存在的组件不用配置
      azkaban.home=/data0/soft/azkaban
      jobtype.global.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*:${hive.home}/conf:${hive.home}/lib/*
      hadoop.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*

      修改/data0/soft/azkaban/conf/azkaban.properties

      default.timezone.id=Asia/Shanghai
      database.type=mysql
      mysql.port=3306mysql.host=10.1.2.xxx
      mysql.database=azkaban
      mysql.user=user
      mysql.password=pass
      mysql.numconnections=50azkaban.webserver.url=http://10.1.2.xxx:8081azkaban.name=DMP
      azkaban.label=DMP Scheduling Center

      修改/data0/soft/azkaban/bin/azkaban-solo-start.sh,加入java环境变量

      export PATH=/usr/java/jdk1.8.0_101/bin:$PATH

      拷贝commons-configuration-1.6.jar和hadoop-common-2.6.0-cdh5.5.0.jar两个jar包到/data0/soft/azkaban/lib目录下(这里已经打包在里边了)

      5.3启动和停止Azkaban

      5.3.1启动Azkaban

      首先在mysql中创建azkaban库

      create database azkaban;

      在根目录下启动Azkaban(必须),bin/azkaban-solo-start.sh

      5.3.2停止Azkaban

      在根目录下关闭Azkaban,bin/azkaban-solo-shutdown.sh

      6.Scala安装

      6.1 Scala下载

      到scala官网下载spark所需版本的安装包,scala-2.11.8.tgz。

      6.2配置

      将scala解压到/user

      在hadoop用户下添加Scala环境变量

      export SCALA_HOME=/usr/scalaexport HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0export HIVE_HOME=/data0/soft/hive2.1.1export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
      PATH=$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

      配置生效后,输入scala,可以显示scala的版本信息,则表示配置成功。

      7. Spark安装

      7.1 Spark下载

      对应scala2.11.8的版本,下载spark-2.1.0-bin-hadoop2.6.tgz

      7.2安装配置

      将安装包解压到/data0/soft/下。

      hadoop用户配置环境变量到bashrc

      export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6export SCALA_HOME=/usr/scalaexport HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0export HIVE_HOME=/data0/soft/hive2.1.1export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
      PATH=$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

      修改根目录conf下spark-env.sh 添加

      export SPARK_MASTER_IP=dmp1export SPARK_WORKER_MEMORY=10gexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

      修改slaves文件,添加节点名称

      dmp2dmp3
      dmp4
      dmp5
      dmp6

      将hive conf下面的hive-site.xml文件拷贝到spark conf下面(完成sparksql和hive元数据共享)

      7.3启动并验证

      进入spark sbin目录(防止与hadoop命令冲突),启动start-all.sh

      ./start-all.sh

      然后使用spark-shell进入scala操作界面来做spark操作。

      8. Hbase 安装

      8.1 Hbase下载

      到官网下载Hbase1.2.6版本

      8.2 安装配置

      将Hbase1.2.6安装包解压到/data0/soft目录下

      配置环境变量

      export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6export SCALA_HOME=/usr/scalaexport HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0export HIVE_HOME=/data0/soft/hive2.1.1export HBASE_HOME=/data0/soft/hbase-1.2.6export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
      PATH=$HBASE_HOME:$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

      修改所有hbase根目录下conf/hbase-site.xml

      <configuration>
              <property>
                      <name>hbase.rootdir</name>
                      <value>hdfs://dmp/hbase</value>
              </property>
              <property>
                      <name>hbase.cluster.distributed</name>
                      <value>true</value>
              </property>
              <property>
                      <name>hbase.zookeeper.quorum</name>
                      <value>dmp4:2182,dmp5:2182,dmp6:2182</value>
              </property>
              <property>
                      <name>hbase.tmp.dir</name>
                      <value>/data0/dfs/hbase/tmp/</value>
              </property>
              <property>
                      <name>hbase.local.dir</name>
                      <value>/data0/dfs/hbase/local/</value>
              </property>
              <property>
                      <name>hbase.master</name>
                      <value>30.16.94.72:60000/</value>
              </property>
              <property>
                      <name>hbase.zookeeper.property.clientPort</name>
                      <value>2182</value>
              </property>
       
              <property>
                      <name>dfs.replication</name>
                      <value>3</value>
              </property>
              <property>
                      <name>dfs.client.socket-timeout</name>
                      <value>300000</value>
              </property>
       
              <!--zookeeper存储数据位置-->
              <property>
                      <name>hbase.zookeeper.property.dataDir</name>
                      <value>/data0/dfs/zookeeper</value>
                      </property>
              <property>
                      <name>hbase.zookeeper.property.tickTime</name>
                      <value>6000</value>
              </property>
              <property>
                      <name>hbase.client.write.buffer</name>
                      <value>8388608</value>
              </property>
              <property>
                      <name>hbase.thrift.support.proxyuser</name>
                      <value>true</value>
              </property>
              <property>
                      <name>hbase.regionserver.thrift.http</name>
                      <value>true</value>
              </property>
              <property>
                      <name>hbase.regionserver.thrift.framed</name>
                      <value>true</value>
              </property>
              <property>
                      <name>hbase.regionserver.thrift.type</name>
                      <value>TThreadPoolServer</value>
              </property>
              <!--这里设置Master并发最大线程数-->
              <property>
                      <name>hbase.regionserver.handler.count</name>
                      <value>300</value>
              </property>
              <property>
                      <name>hbase.table.sanity.checks</name>
                      <value>false</value>
              </property>
              <!--ZooKeeper 会话超时.HBase把这个值传递改zk集群,向他推荐一个会话的最大超时时间-->
              <property>
                      <!--every 30s,the master will check regionser is working -->
                      <name>zookeeper.session.timeout</name>
                      <value>1200000</value>
              </property>
              <property>
              <name>hbase.hregion.max.filesize</name>
                      <value>32212254720</value>
              </property>
              <property>
                      <name>hbase.hstore.blockingStoreFiles</name>
                      <value>50</value>
              </property></configuration>

      修改master hbase-evn.sh

      export JAVA_HOME=/data0/soft/javaexport HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoopexport HBASE_HEAPSIZE=4096export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data0/dfs/hbase/logs/hbase-gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60"export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/dfs/hbase/logs/server-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=512M"export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"export HBASE_MASTER_OPTS="-Xmx3g $HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"export HBASE_REGIONSERVER_OPTS="-Xmx4g -XX:+ParallelRefProcEnabled -XX:-ResizePLAB -XX:ParallelGCThreads=15 $HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"export HBASE_LOG_DIR=/data0/dfs/hbase/logsexport HBASE_MANAGES_ZK=true

      修改regionserver hbase-env.sh

      export JAVA_HOME=/data0/soft/javaexport HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoopexport HBASE_HEAPSIZE=8192export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data0/dfs/hbase/logs/hbase-gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60"export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/dfs/hbase/logs/server-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=512M"export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"export HBASE_REGIONSERVER_OPTS="-Xmx32g -Xms32g -Xmn1g -Xss256k -XX:SurvivorRatio=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:MaxTenuringThreshold=15  -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 $HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"export HBASE_LOG_DIR=/data0/dfs/hbase/logsexport HBASE_MANAGES_ZK=true

      在conf下面添加backup-masters文件

      master2

      在conf下面添加regionservers文件

      dmp3dmp4
      dmp5
      dmp6

      8.3 启动与关闭

      访问master1:16010可以看到hbase集群状态

      #启动和停止hbase相关主要服务start-hbase.sh
      stop-hbase.sh#启动thrift服务hbase-daemon.sh start thrift -p 9090#启动rest服务hbase-daemon.sh start rest -p 8180


      以上是关于Hadoop基本生态平台搭建的主要内容,如果未能解决你的问题,请参考以下文章

      基于Hadoop生态SparkStreaming的大数据实时流处理平台的搭建

      Hadoop平台的基本组成与生态系统

      如何搭建基于Hadoop的大数据平台

      基于原生态Hadoop2.6 HA集群环境的搭建

      云计算平台Hadoop单机模式环境搭建

      zookeeper和hbase集群搭建