Hbase 集群部署

来源:互联网 发布:10个点的税怎么算法 编辑:程序博客网 时间:2024/05/21 09:52

Hhase 集群部署

 使用的软件  hadoop-2.7.4 hbase-1.2.6 jdk-8u144 zookeeper-3.4.10 Hbase 自带的有zookeeper,在这里使用自己部署的zookeeper  

zookeeper 集群部署

安装jdk 下载zookeeper 程序 修改zoo.cfgtickTime=2000initLimit=10syncLimit=5dataLogDir=/zookeeper/logsdataDir=/zookeeper/dataclientPort=2181server.1= 10.39.6.178:2888:3888server.2= 10.39.6.179:2888:3888server.3= 10.39.6.180:2888:3888添加myid,这里的myid 对应的server.n 一一对应。 这里的server.1 所以node 1节点myid=1  echo "1" /zookeeper/data/myid创建所需要的目录添加环境变量vi /etc/profile export ZOOKEEPER_HOME=/application/zookeeper-3.4.10export PATH=$PATH:$ZOOKEEPER_HOME/bin  

启动

将node 1 的配置全部打包拷贝到其他节点上,启动zookeeper 就行了启动有错误可以使用zkServer.sh start-foreground 来追踪错误 

角色

zkServer.sh status 会显示zookeeper 状态Mode: leader 这里的Mode: leader 和follower 一个集群中只有leader leader 领导者,用于负责进行投票的发起决议,更新系统状态 follower 跟随者 用于接受客户端请求并想客户端返回结果,在选主过程中参与投票 

配置参数详解

tickTime 这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime 时间就会发送一个心跳。 initLimit 这个配置项是用来配置zookeeper接受客户端初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过10个心跳的时间(tickTime) 长度后zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败,总的时间长度就是10*2000=20秒 syncLimit 这个配置项标识leader 与follower 之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime 的长度,总的时间长度是5*2000=10秒dataDir 保存数据目录clientPort 端口,这个端口是客户端连接zookeeper服务器端口,zookeeper 会监听这个端口接受客户端访问请求server.n=B:C:D 的n是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader 服务器交换信息的端口,D是leader 挂掉时专门用来进行选举leader 所用的端口 

连接zookeeper集群
zkCli.sh -server 10.39.6.178:2181

Hadoop 安装

下载地址 http://apache.fayea.com/hadoop/common/stable/hadoop-2.7.4.tar.gz

hbase01 到hbase02   hbase03 需要使用ssh无密钥登录。 

hadoop 配置文件

配置文件 配置对象 主要内容 core-site.xml 集群全局参数 用户定义系统级别的参数,如HDFS URL Hadoop临时目录 hdfs-site.xml HDFS 参数 如名称节点和数据节点存放位置,文件副本的个数,文件读取权限 mapred-site.xml Mapreduce参数 包括JobHistry Server 和应用程序参数两部分,如reduce 任务的默认个数,任务所能够使用内存的默认上下限 yarn-site.xml 集群资源管理系统参数 包括ResourceManager,NodeManager 的通信端口,web 监控端口等
集群配置
vi /application/hadoop-2.7.4/etc/hadoop/hadoop-env.sh
 export  JAVA_HOME="/usr/java/jdk1.8.0_144" (rpm 安装的jdk 存储位置)
vi /application/hadoop-2.7.4/etc/hadoop/core-site.xml
  <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hbase01:9000</value>    <description>The name of the default file system</description>  </property> <property>    <name>hadoop.tmp.dir</name>    <value>/zookeeper/hadoopdata/tmp</value>    <description>A base for other temporary directories</description></property> <property>     <name>hadoop.native.lib</name>     <value>true</value>     <description>Should native hadoop libraries, if present, be used.</description></property></configuration>
vi /application/hadoop-2.7.4/etc/hadoop/hdfs-site.xml
<configuration><property>    <name>dfs.replication</name>    <value>3</value></property><property>      <name>dfs.namenode.name.dir</name>      <value>/zookeeper/hadoopdata/dfs/name</value></property><property>    <name>dfs.datanode.data.dir</name>    <value>/zookeeper/hadoopdata/dfs/data</value> </property></configuration>
vi /application/hadoop-2.7.4/etc/hadoop/mapred-site.xml
   <configuration> <property>    <name>mapreduce.framework.name</name>    <value>yarn</value> </property></configuration>     
vi /application/hadoop-2.7.4/etc/hadoop/yarn-site.xml
    <configuration>     <property>       <name>yarn.resourcemanager.hostname</name>       <value>hbase01</value>    </property>   <property>        <name>yarn.nodemanager.aux-services</name>         <value>mapreduce_shuffle</value>    </property> </configuration>
vi /application/hadoop-2.7.4/etc/hadoop/slaves
     hbase02     hbase03

将所有的配置COPY 到hbase02 hbase03

格式化HDFS存储

1. 在namenode 上执行   进入到hadoop 目录   ./bin/hadoop namenode -format   2. 在datanode    ./bin/hadoop datanode -format 

启动Hadoop

  1. 启动HDFS     ./sbin/start-dfs.sh    ./sbin/stop-dfs.sh  2. 启动Yarn   ./sbin/start-yarn.sh    ./sbin/stop-yarn.sh  3.启动MapReduce JobHistory Server   ./sbin/mr-jobhistory-daemon.sh  start historyserver     jps 查看进程  jps  12016 ResourceManager  11616 NameNode  11828 SecondaryNameNode  12317 JobHistoryServer  31453 Jps

web 访问端口

  NameNode    50070  ResourceManager 8088  MapReduce JobHistory Server 19888

Hbase 安装

 hbase 配置文件修改 vi conf/hbase-env.sh      export JAVA_HOME=/usr/java/jdk1.8.0_144    export HBASE_MANAGES_ZK=false       vi conf/hbase-site.xml    <configuration>     <property>        <name>hbase.cluster.distributed</name>        <value>true</value>    </property>    <property>        <name>hbase.rootdir</name>        <value>hdfs://hbase01:9000/hbase</value>    </property>    <property>       <name>hbase.zookeeper.quorum</name>       <value>hbase01,hbase02,hbase03</value>   </property>   <property>     <name>hbase.zookeeper.property.dataDir</name>     <value>/zookeeper/data</value>   </property></configuration> vi conf/regionservers     hbase02    hbase03 将上述配置同步到其他节点 

hbase 启动

  ./bin/start-hbase.sh   查看Hbase 的状态  jps   12016 ResourceManager  11616 NameNode  12546 HMaster  10403 QuorumPeerMain  11828 SecondaryNameNode  21225 Jps  12317 JobHistoryServer
进入hbase shell,使用命令查看hbase 状态
 ./bin/hbase shell  SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/application/hbase-1.2.6/lib/slf4j-l  HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017 hbase(main):001:0> status 1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load hbase(main):002:0> Hbase web ui 端口为16010