您的位置:首页 > 其它

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
使用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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: