搭建企业Hbase

原创 2016年08月29日 00:41:51

**注意:本文步骤完全参考阳光奶爸的博文,有些部分根据我自己的理解进行了修改和补充。
http://blog.csdn.net/carl810224/article/details/52174412
自己搭建成功,记录下来作为作业笔记。
**

一. 准备工作:
1.搭建Hbase HA之前需要搭建好Hadoop HA集群
2.下载所需要的软件包:
hbase-1.2.0-cdh5.7.1.tar.gz
http://archive.cloudera.com/cdh5/cdh/5/
二.企业级系统参数配置
//查看linux系统最大进程数和最大文件打开数
ulimit -a
这里写图片描述
//设置linux系统最大进程数和最大文件打开数(设置完重新登录shell)
gedit /etc/security/limits.conf

root    soft   nproc   50000
root    hard   nproc   50000
root    soft   nofile  25535
root    hard   nofile  25535
hadoop    soft   nproc   50000
hadoop    hard   nproc   50000
hadoop    soft   nofile  25535
hadoop    hard   nofile  25535

这里写图片描述
//调整linux内核参数
gedit /etc/sysctl.conf

net.ipv4.ip_forward= 0
net.ipv4.conf.default.rp_filter= 1
net.ipv4.conf.default.accept_source_route= 0
kernel.core_users_pid= 1
net.ipv4.tcp_syncookies= 1
net.bridge.bridge-nf-call-ip6tables= 0
net.bridge.bridge-nf-call-iptables= 0
net.bridge.bridge-nf-call-arptables= 0
kernel.mggmnb= 65536
kernel.mggmax= 65536
kernel.shmmax= 68719476736
kernel.shmall= 268435456
net.ipv4.tcp_max_syn_backlog= 65000
net.core.netdev_max_backlog= 32768
net.core.somaxconn= 32768
fs.file-max= 65000
net.core.wmem_default= 8388608
net.core.rmem_default= 8388608
net.core.rmem_max= 16777216
net.core.wmem_max= 16777216
net.ipv4.tcp_timestamps= 1
net.ipv4.tcp_synack_retries= 2
net.ipv4.tcp_syn_retries= 2
net.ipv4.tcp_mem= 94500000 915000000 927000000
net.ipv4.tcp_max_orphans= 3276800
net.ipv4.tcp_tw_reuse= 1
net.ipv4.tcp_tw_recycle= 1
net.ipv4.tcp_keepalive_time= 1200
net.ipv4.tcp_syncookies= 1
net.ipv4.tcp_fin_timeout= 10
net.ipv4.tcp_keepalive_intvl= 15
net.ipv4.tcp_keepalive_probes= 3
net.ipv4.ip_local_port_range= 1024 65535
net.ipv4.conf.eml.send_redirects= 0
net.ipv4.conf.lo.send_redirects= 0
net.ipv4.conf.default.send_redirects= 0
net.ipv4.conf.all.send_redirects= 0
net.ipv4.icmp_echo_ignore_broadcasts= 1
net.ipv4.conf.eml.accept_source_route= 0
net.ipv4.conf.lo.accept_source_route= 0
net.ipv4.conf.default.accept_source_route= 0
net.ipv4.conf.all.accept_source_route= 0
net.ipv4.icmp_ignore_bogus_error_responses= 1
kernel.core_pattern= /tmp/core
vm.overcommit_memory= 1

这里写图片描述
//
systcl –p
三.HBase HA配置
//进入hbase的conf目录
cd /home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/conf/
修改hbase-env.sh
gedit hbase-env.sh

# 配置JDK安装路径
exportJAVA_HOME=/home/qichenglin/hadoop/app/jdk1.7.0_79
# 配置Hadoop安装路径
exportHADOOP_HOME=/home/qichenglin/hadoop/app/cdh/hadoop-2.6.0-cdh5.7.1
# 设置HBase的日志目录
exportHBASE_LOG_DIR=${HBASE_HOME}/logs
# 设置HBase的pid目录
exportHBASE_PID_DIR=${HBASE_HOME}/pids
# 使用独立的ZooKeeper集群
exportHBASE_MANAGES_ZK=false
# 优化配置项
# 设置HBase内存堆的大小
exportHBASE_HEAPSIZE=1024
# 设置HMaster最大可用内存
exportHBASE_MASTER_OPTS="-Xmx512m"
# 设置HRegionServer最大可用内存
exportHBASE_REGIONSERVER_OPTS="-Xmx1024m"

//配置hbase-site.xml
gedit hbase-site.xml

<configuration>
  <!-- 设置HRegionServers共享目录 -->  
  <property>  
    <name>hbase.rootdir</name>  
    <value>hdfs://mycluster/hbase</value>  
  </property>  

  <!-- 设置HMaster的rpc端口 -->  
  <property>  
    <name>hbase.master.port</name>  
    <value>16000</value>  
  </property>  

  <!-- 设置HMaster的http端口 -->  
  <property>  
    <name>hbase.master.info.port</name>  
    <value>16010</value>  
  </property>  

  <!-- 指定缓存文件存储的路径 -->  
  <property>  
    <name>hbase.tmp.dir</name>  
    <value>/home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/tmp</value>  
  </property>  

  <!-- 开启分布式模式 -->  
  <property>  
    <name>hbase.cluster.distributed</name>  
    <value>true</value>  
  </property>  

  <!-- 指定ZooKeeper集群位置 -->  
  <property>  
    <name>hbase.zookeeper.quorum</name>  
    <value>hadoop-slave1,hadoop-slave2,hadoop-slave3</value>  
  </property>  

  <!-- 指定ZooKeeper集群端口 -->  
  <property>  
    <name>hbase.zookeeper.property.clientPort</name>  
    <value>2181</value>  
  </property>  

  <!--指定Zookeeper数据目录,需要与ZooKeeper集群上配置相一致 -->  
  <property>  
    <name>hbase.zookeeper.property.dataDir</name>  
    <value>/home/qichenglin/hadoop/app/cdh/zookeeper-3.4.5-cdh5.7.1/data</value>  
  </property>  

  <!-- \\\\\\\\\\以下为优化配置项\\\\\\\\\\ -->  
  <!-- 关闭分布式日志拆分 -->  
  <property>  
    <name>hbase.master.distributed.log.splitting</name>  
    <value>false</value>  
  </property>  

  <!-- hbase客户端rpc扫描一次获取的行数 -->  
  <property>  
    <name>hbase.client.scanner.caching</name>  
    <value>2000</value>  
  </property>  

  <!-- HRegion分裂前最大的文件大小(10G) -->  
  <property>  
    <name>hbase.hregion.max.filesize</name>  
    <value>10737418240</value>  
  </property>  

  <!-- HRegionServer中最大的region数量 -->  
  <property>  
    <name>hbase.regionserver.reginoSplitLimit</name>  
    <value>2000</value>  
  </property>  

  <!-- StoreFile的个数超过这个数就开始合并 -->  
  <property>  
    <name>hbase.hstore.compactionThreshold</name>  
    <value>6</value>  
  </property>  

  <!-- 当某一个region的storefile个数达到该值则block写入,等待compact -->  
  <property>  
    <name>hbase.hstore.blockingStoreFiles</name>  
    <value>14</value>  
  </property>  

  <!-- 超过memstore大小的倍数达到该值则block所有写入请求,自我保护 -->  
  <property>  
    <name>hbase.hregion.memstore.block.multiplier</name>  
    <value>20</value>  
  </property>  

  <!-- service工作的sleep间隔 -->  
  <property>  
    <name>hbase.server.thread.wakefrequency</name>  
    <value>500</value>  
  </property>  

  <!-- ZooKeeper客户端同时访问的并发连接数 -->  
  <property>  
    <name>hbase.zookeeper.property.maxClientCnxns</name>  
    <value>2000</value>  
  </property>  

  <!-- 根据业务情况进行配置 -->  
  <property>  
    <name>hbase.regionserver.global.memstore.lowerLimit</name>  
    <value>0.3</value>  
  </property>  
  <property>  
    <name>hbase.regionserver.global.memstore.upperLimit</name>  
    <value>0.39</value>  
  </property>  
  <property>  
    <name>hbase.block.cache.size</name>  
    <value>0.4</value>  
  </property>  

  <!-- RegionServer的请求处理IO线程数 -->  
  <property>  
    <name>hbase.reginoserver.handler.count</name>  
    <value>300</value>  
  </property>  

  <!-- 客户端最大重试次数 -->  
  <property>  
    <name>hbase.client.retries.number</name>  
    <value>5</value>  
  </property>  

  <!-- 客户端重试的休眠时间 -->  
  <property>  
    <name>hbase.client.pause</name>  
    <value>100</value>  
  </property>
</configuration>

//配置regionservers
gedit regionservers

hadoop-slave1
hadoop-slave2
hadoop-slave3

//新建backup-masters文件并配置
gedit backup-masters
//创建hbase的缓存文件目录
cd /home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/
mkdir tmp
//创建hbase的日志文件目录
mkdir logs
//创建hbase的pid文件目录
mkdir pids
//将hbase工作目录同步到集群其它节点
scp -r /home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/ hadoop-master2:/home/qichenglin/hadoop/app/cdh/
scp -r /home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/ hadoop-slave1:/home/qichenglin/hadoop/app/cdh/
scp -r /home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/ hadoop-slave2:/home/qichenglin/hadoop/app/cdh/
scp -r /home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/ hadoop-slave3:/home/qichenglin/hadoop/app/cdh/
//每个复制了路径的节点
chmod -R 777 /home/qichenglin/hadoop/app/cdh/hadoop-2.6.0-cdh5.7.1/
//在集群各节点上修改用户环境变量
gedit ~/.bashrc

export HBASE_HOME=/home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1
export PATH=$PATH:$HBASE_HOME/bin

source ~/.bashrc

//删除hbase的slf4j-log4j12-1.7.5.jar,解决hbase和hadoop的LSF4J包冲突
cd /home/qichenglin/hadoop/app/cdh/hbase-1.2.0-cdh5.7.1/lib
mv slf4j-log4j12-1.7.5.jar slf4j-log4j12-1.7.5.jar.bk

四.集群启动
// 启动zookeeper集群(分别在slave1、slave2和slave3上执行)
zkServer.sh start
备注:此命令分别在slave1/slave2/slave3节点启动了QuorumPeerMain。
// 启动HDFS(在master1执行)
start-dfs.sh
备注:此命令分别在master1/master2节点启动了NameNode和ZKFC,分别在slave1/slave2/slave3节点启动了DataNode和JournalNode。
// 启动YARN(在master2执行)
start-yarn.sh
备注:此命令在master2节点启动了ResourceManager,分别在slave1/slave2/slave3节点启动了NodeManager。
// 启动YARN的另一个ResourceManager(在master1执行,用于容灾)
yarn-daemon.sh start resourcemanager
备注:此命令在master1节点启动了ResourceManager。
// 启动HBase(在master1执行)
start-hbase.sh
备注:此命令分别在master1/master2节点启动了HMaster,分别在slave1/slave2/slave3节点启动了HRegionServer。

五 .测试
(一)Web UI
下图为http://hadoop-master1:16010,可看到主Master状态:
这里写图片描述
下图为http://hadoop-master2:50070,可看到备份Master状态:
这里写图片描述

(二)Shell操作
连接hbase客户端
hbase shell
这里写图片描述
创建表,表名为employee,列族为info
create ‘employee’,’info’
这里写图片描述
显示hbase已创建的表,验证表employee是否创建成功
list
这里写图片描述
在表employee中插入测试数据
put ‘employee’,’rowkey01’,’info:id’,’1001’
put ‘employee’,’rowkey01’,’info:name’,’Henry’
put ‘employee’,’rowkey01’,’info:address’,’Bangalore’
put ‘employee’,’rowkey02’,’info:id’,’1002’
put ‘employee’,’rowkey02’,’info:name’,’Messi’
这里写图片描述
检索表employee中的所有记录
scan ‘employee’
这里写图片描述
检索表employee中行键为rowkey01的记录
get ‘employee’,’rowkey01’
这里写图片描述
禁用表employee并删除
disable ‘employee’
drop ‘employee’

版权声明:本文为博主原创文章,未经博主允许不得转载。

搭建企业Hbase笔记

实验环境搭建 架构: namenode1(master1) namenode2(master2) datanode(regionserver) 查看、修改Linux系统的最大文件打开数和最大进程数 ...
  • needyit
  • needyit
  • 2016年10月27日 15:54
  • 147

【HBase企业应用开发】工作中自己总结的Hbase笔记,非常全面!

目录 一、HBase原理和结构说明 二、HBase的表结构 1) Row Key 2) 列族 column family 3) 单元 Cell 4) 时间戳 timestamp 三、HB...
  • dajiangtai007
  • dajiangtai007
  • 2017年03月16日 16:48
  • 1738

HBase单机环境搭建

在搭建HBase单机环境之前,首先你要保证你已经搭建好Java环境:$ java -version java version "1.8.0_51" Java(TM) SE Runtime Enviro...
  • lisong694767315
  • lisong694767315
  • 2015年07月16日 22:08
  • 2428

hbase完全分布式环境搭建

HBase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件...
  • chabale
  • chabale
  • 2013年04月16日 15:18
  • 17038

企业级HBase搭建

企业级HBase搭建HBase介绍这部分请参考我的博文:Hadoop数据存储企业级HBase参数配置设置linux系统最大进程数和最大文件打开数使用root用户设置,完成需要重新登录。vim /etc...
  • yangzhiyouvl
  • yangzhiyouvl
  • 2016年08月15日 13:04
  • 504

怎样搭建企业VPN

应用VPN技术通过互联网构建企业虚拟专用网络,能有效解决企业总部与分支机构之间跨地区的网络互通互连和业务协同等需求问题。本文介绍了构建VPN网络的方式,详细描述构建VPN网络的设备配置方法和步骤。 ...
  • TechChan
  • TechChan
  • 2014年09月01日 10:09
  • 2246

Hadoop HBase Hive安装,配置,整合

软件环境:Hadoop2.4, HBase
  • dream_it_life
  • dream_it_life
  • 2014年06月06日 13:15
  • 4881

centos6.5 企业级vpn服务器搭建

实验场景: 通过------win8 vpn连接--------访问-------vpn服务器。 一、下载并安装VPN服务 1、下载所需安装包 Kernel_ppp_mppe1.0.2 ht...
  • github_34847158
  • github_34847158
  • 2016年05月02日 15:28
  • 6445

Hbase windows 无配置单机搭建。 JDK都不需要你装。

hadoop hbase window 单机搭建
  • m890701
  • m890701
  • 2016年12月06日 17:32
  • 1516

Hadoop Hbase完全分布式环境搭建

Hadoop分布式环境搭建 一、安装软件准备   由于资源限制,本文档的Hadoop的节点环境均部署在虚拟的linux上,使用的虚拟机和linux的版本如下: VMware-workstatio...
  • xh16319
  • xh16319
  • 2014年06月11日 15:44
  • 3326
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:搭建企业Hbase
举报原因:
原因补充:

(最多只允许输入30个字)