hbase集群部署
2018-01-10 15:14
253 查看
hbase部署
HBase简介
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化的存储集群。HBase的目标是存储并处理大型数据,具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。设计思路:
HBase是一个分布式的数据库,使用Zookeeper管理集群,使用HDFS作为底层存储
基本架构
HBase由HMaster和HRegionServer组成,同样遵从主从服务器架构。HBase将逻辑上的表划分成多个数据块即HRegion,存储在HRegionServer中。HMaster负责管理所有的HRegionServer,它本身并不存储任何数据,而只是存储数据到HRegionServer的映射关系(元数据)。集群中的所有节点通过Zookeeper进行协调,并处理HBase运行期间可能遇到的各种问题
部署情况:
部署IP | 软件服务 |
192.168.174.178 | Jdk、hdfs、zk、hbase |
192.168.174.179 | Jdk、hdfs、zk、hbase |
192.168.174.180 | Jdk、hdfs、zk、hbase |
1、Hadoop集群部署
部署情况
部署IP | 需要软件 | 部署位置 | 主节点 | 从节点 |
192.168.174.178 | Jdk1.7、hadoop2.7 | /home/wxl | Namenode | Datanode |
192.168.174.179 | Jdk1.7、hadoop2.7 | /home/wxl | Datanode | |
192.168.174.180 | Jdk1.7、hadoop2.7 | /home/wxl | Datanode |
前提:Ssh免密码登录、防火墙已关、selinux已关
1.1、jdk1.7部署
vim /etc/profileexport JAVA_HOME=/home/wxl/jdk1.7.0_55
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
#scp 分发到多个work节点上
scp -r /home/wxl/jdk1.7.0_55 root@192.168.174.179: /home/wxl/jdk1.7.0_55
scp -r /home/wxl/jdk1.7.0_55 root@192.168.174.180: /home/wxl/jdk1.7.0_55
#分别登录work节点执行
source /etc/profile
1.1、解压hadoop包
tar -zxvf hadoop-2.7.2.tar.gzcd /home/wxl/hadoop-2.7.2/etc/hadoop
1.2、修改配置hadoop-env.sh文件
vim hadoop-env.shexport JAVA_HOME=/home/wxl/jdk1.7.0_55
1.3、修改配置core-site.xml文件
vim core-site.xml<property>
<!--NameNode的URI。格式:【hdfs://主机名/】-->
<name>fs.defaultFS</name>
<value>hdfs://192.168.174.178:9000</value>
</property>
<property>
<!--hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置> >,默认就放在这个路径中-->
<name>hadoop.tmp.dir</name>
<value>/home/wxl/hadoop-2.7.2/tmp</value>
</property>
<property>
<!--hadoop访问文件的IO操作都需要通过代码库。因此,在很多情况下,io.file.buffer.size都被用来设置SequenceFile中用到的读/写缓> 存大小。不论是对硬盘或者是网络操作来讲,较大的缓存都可以提供更高的数据传输,但这也就意味着更大的内存消耗和延迟。这个参数要设置> 为系统页面大小的倍数,以byte为单位,默认值是4KB>,一般情况下,可以设置为64KB(65536byte),这里设置128K-->
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
1.4、修改配置hdfs-site.xml文件
vim hdfs-site.xml<property>
<name>dfs.checksum.type</name>
<value>CRC32</value>
</property>
<property>
<!-- 指定SecondaryNamenode所在地址。本例设为和NN在同一个主机 -->
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.174.178:9001</value>
</property>
<property>
<!-- 指定NameNode的fsimage和edits元数据文件目录,须预先存在于NameNode节点上 -->
<name>dfs.namenode.name.dir</name>
<!-- 可以指定多个,用逗号隔开 -->
<value>/home/wxl/hadoop-2.7.2/tmp/name</value>
</property>
<property>
<!-- 指定DataNode节点中hdfs系统工作目录 --> <name>dfs.datanode.data.dir</name>
<value>/home/wxl/hadoop-2.7.2/tmp/data</value>
</property>
<property>
<!-- 文件块(副本)的备份数量 -->
<name>dfs.replication</name>
<!-- 要小于或等于附属机数量。默认3。本例只有2个slave节点 -->
<value>1</value>
</property>
<property>
<!-- 可以从网页端监控hdfs -->
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
1.5、修改配置yarn-site.xml文件
vim yarn-site.xml<property>
<!-- 指定RM所在的主机名 -->
<name>yarn.resourcemanager.hostname</name>
<value>192.168.174.178</value>
</property>
<property>
<!-- 自定义一个yarn服务 -->
<name>Yarn.nodemanager.aux-services</name>
<!-- 启动Map-Reduce的shuffle功能。有地方说是 mapreduce_shuffle ,本例未验证 -->
<value>mapreduce.shuffle</value>
</property>
1.6、slave添加
vi slavas192.168.174.179
192.168.174.180
1.7、格式化namenode
cd /home/wxl/hadoop-2.5.2/bin./hadoop namenode -format
#分别传送到各个work节点
scp -r /home/wxl/hadoop-2.7.2 root@192.168.174.179:/home/wxl/
scp -r /home/wxl/hadoop-2.7.2
root@192.168.174.180:/home/wxl/
1.8、启动hdfs节点
/home/wxl/hadoop-2.5.2/sbin/start-dfs.sh/home/wxl/hadoop-2.5.2/sbin/start-yarn.sh
hdfs url:http://192.168.174.178:50070
yarn url:http://192.168.174.178:8088
2、zk部署
部署情况
部署IP | 需要软件 | 部署位置 | zk选举 |
192.168.174.178 | Zk | /home/wxl | leader |
192.168.174.179 | Zk | /home/wxl | follower |
192.168.174.180 | Zk | /home/wxl | follower |
2.1、zk部署
#192.168.174.178部署tar -zxvf zookeeper-3.4.61.tar.gz
cd zookeeper-3.4.6/conf
1.1、主节点配置文件zoo.cfg
vim zoo.cfgtickTime=2000
dataDir=/home/wxl/zookeeper-3.4.6/data
clientPort=2181
initLimit=10
syncLimit=5
server.1=192.168.174.178:2888:3888
server.2=192.168.174.179:2888:3888
server.3=192.168.174.180:2888:3888
1.2、创建data数据目录
mkdir -p /home/wxl/zookeeper-3.4.6/dataecho "1" >> /home/wxl/zookeeper-3.4.6/data/myid
1.3、scp分别传到各个work节点
scp -r /home/wxl/zookeeper-3.4.6 root@192.168.174.179:/home/wxl/scp -r /home/wxl/zookeeper-3.4.6 root@192.168.174.180:/home/wxl/
2、从节点192.168.174.179
#注意改下myid 2mkdir -p /home/wxl/zookeeper-3.4.6/data
echo "2" >> /home/wxl/zookeeper-3.4.6/data/myid
3、从节点192.168.174.180
#注意改下myid 3mkdir -p /home/wxl/zookeeper-3.4.6/data
echo "3" >> /home/wxl/zookeeper-3.4.6/data/myid
4、主从节点分别zk启动
192.168.174.178/home/wxl/zookeeper-3.4.6/bin/zkServer.sh start
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh stop
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh status
192.168.174.179
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh start
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh stop
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh status
192.168.174.180
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh start
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh stop
/home/wxl/zookeeper-3.4.6/bin/zkServer.sh status
3、hbase部署
部署ip: | 节点 | 位置 |
192.168.174.178 | HMaster | /home/wxl/ |
192.168.174.179 | HRegionServer | /home/wxl/ |
192.168.174.180 | HRegionServer | /home/wxl/ |
3.1、解压hbase包
tar -zxvf hbase-1.0.3-bin.tar.gzcd /home/wxl/hbase-1.0.3/conf
3.2、修改配置hbase-env.sh文件
vim hbase-env.shexport HBASE_MANAGES_ZK=true
export HADOOP_HOME=/home/wxl/hadoop-2.7.2
export JAVA_HOME=/home/wxl/jdk1.7.0_55
(不使用hbase自带的zookeeper,而在habse-site.xml配置我们的zookeeper集群)
3.3、修改配置hbase-site.xml文件
vim hbase-site.xml<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.174.178:9000/hbase-v1</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
#########自己安装的zk###############
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.174.178,192.168.174.179,192.168.174.180</value>
</property>
<property>
<name> hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
########################
<property>
<name>hbase.tmp.dir</name>
<value>/home/wxl/hbase-1.0.3/tmp</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>hbase.coprocessor.user.region.classes</name>
<value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>107374182400</value><!-- 100GB -->
<description>
Maximum HStoreFile size. If any one of a column families' HStoreFiles has
grown to exceed this value, the hosting HRegion is split in two.
Default: 10G.
</description>
</property>
<property>
<name>hbase.regionserver.region.split.policy</name>
<value>org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy</value>
<description>
See http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/ for more.
</description>
</property>
<property>
<name>hfile.block.cache.size</name>
<value>0.20</value>
<description>
Percentage of maximum heap (-Xmx setting) to allocate to block cache
used by HFile/StoreFile. Default of 0.25 means allocate 25%.
Set to 0 to disable but it's not recommended.
</description>
</property>
<property>
<name>hbase.regionserver.global.memstore.upperLimit</name>
<value>0.40</value>
<description>Maximum size of all memstores in a region server before new
updates are blocked and flushes are forced. Defaults to 40% of heap
</description>
</property>
<property>
<name>hbase.regionserver.global.memstore.lowerLimit</name>
<value>0.30</value>
<description>When memstores are being forced to flush to make room in
memory, keep flushing until we hit this mark. Defaults to 35% of heap.
This value equal to hbase.regionserver.global.memstore.upperLimit causes
the minimum possible flushing to occur when updates are blocked due to
memstore limiting.
</description>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>300</value>
<description>Count of RPC Listener instances spun up on RegionServers.
Same property is used by the Master for count of master handlers.
Default is 10.
</description>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>1800000</value>
<description>Time difference of regionserver from master</description>
</property>
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>536870912</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>180000</value>
</property>
<property>
<name>hbase.hstore.blockingStoreFiles</name>
<value>2000</value>
</property>
<property>
<name>hbase.hstore.flush.thread</name>
<value>20</value>
</property>
<property>
<name>hbase.hstore.compaction.thread</name>
<value>15</value>
</property>
3.4、regionservers从节点添加
vim regionservers192.168.174.179
192.168.174.180
或主机名
3.5、分别传到region节点
scp -r /home/wxl/hbase-1.0.3 root@192.168.174.179:/home/wxl/
scp -r /home/wxl/hbase-1.0.3 root@192.168.174.180:/home/wxl/
3.6、主节点启动hbase
/home/wxl/hbase-1.0.3/bin/start-hbase.sh 启动hbase/home/wxl/hbase-1.0.3/bin/stop-hbase.sh 停止hbase
相关文章推荐
- HBase 集群部署
- 在Hadoop集群部署Hbase并开启kerberos
- Hbase 集群部署
- (13)HBase 1.2.6 集群部署
- HBase 集群部署
- Hbase 集群部署
- HBase 集群部署
- Hadoop集群配置【四、Hbase部署】
- Hbase集群部署计划---安装系列四
- hbase 在三台centos7上的分布式集群的配置部署
- HBase 集群部署
- HBase集成Zookeeper集群部署
- HBase 集群部署
- HBase 集群部署
- Hadoop+Hbase+Zookeeper集群部署
- [HBase] 从零开始部署HBase集群
- HBase 集群部署
- 一键式部署HBase集群
- nutch-2.2.1 hadoop-1.2.1 hbase-0.92.1 集群部署
- HBase 集群部署