hbase集群部署1.0.3

 

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

使用Zookeeper管理集群,使用HDFS作为底层存储

 

 

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

SecondaryNameNode 节点恢复节点

前提:Ssh免密码登录、防火墙已关、selinux已关

 

 

1.1、jdk1.7部署

 

vim /etc/profile

export 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.gz

cd /home/wxl/hadoop-2.7.2/etc/hadoop

 

 

1.2、修改配置hadoop-env.sh文件

 

vim hadoop-env.sh

export 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 slavas

192.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

前提:防火墙已关、selinux关闭

 

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.cfg

tickTime=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/data

echo "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 2

mkdir -p /home/wxl/zookeeper-3.4.6/data

echo "2" >> /home/wxl/zookeeper-3.4.6/data/myid

 

 

3、从节点192.168.174.180

 

#注意改下myid 3

mkdir -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.gz

cd /home/wxl/hbase-1.0.3/conf

 

3.2、修改配置hbase-env.sh文件

 

vim hbase-env.sh

 

export 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 regionservers

 

192.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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值