Hhase 集群部署
使用的软件
hadoop-2.7.4
hbase-1.2.6
jdk-8u144
zookeeper-3.4.10
Hbase 自带的有zookeeper,在这里使用自己部署的zookeeper
zookeeper 集群部署
安装jdk
下载zookeeper 程序
修改zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataLogDir=/zookeeper/logs
dataDir=/zookeeper/data
clientPort=2181
server.1= 10.39.6.178:2888:3888
server.2= 10.39.6.179:2888:3888
server.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.10
export 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 安装
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
fs.defaultFS
hdfs://hbase01:9000
The name of the default file system
hadoop.tmp.dir
/zookeeper/hadoopdata/tmp
A base for other temporary directories
hadoop.native.lib
true
Should native hadoop libraries, if present, be used.
vi /application/hadoop-2.7.4/etc/hadoop/hdfs-site.xml
dfs.replication
3
dfs.namenode.name.dir
/zookeeper/hadoopdata/dfs/name
dfs.datanode.data.dir
/zookeeper/hadoopdata/dfs/data
vi /application/hadoop-2.7.4/etc/hadoop/mapred-site.xml
mapreduce.framework.name
yarn
vi /application/hadoop-2.7.4/etc/hadoop/yarn-site.xml
yarn.resourcemanager.hostname
hbase01
yarn.nodemanager.aux-services
mapreduce_shuffle
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
hbase.cluster.distributed
true
hbase.rootdir
hdfs://hbase01:9000/hbase
hbase.zookeeper.quorum
hbase01,hbase02,hbase03
hbase.zookeeper.property.dataDir
/zookeeper/data
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' for list of supported commands.
Type "exit" 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