设为首页 加入收藏

TOP

hbase HA模式安装
2019-02-12 13:42:58 】 浏览:67
Tags:hbase 模式 安装
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haoxiaoyan/article/details/53584310

1.解压软件

tarzxvfhbase-1.1.5-bin.tar.gz

---chown-Rhadoop:hadoophbase-1.1.5

2.配置Hbase

① 修改hbase-env.sh

viconf/hbase-env.sh,出掉JAVA_HOME的注释,并修改为本地的

exportJAVA_HOME=/usr/java/jdk1.7.0_79

exportHBASE_LOG_DIR=/opt/hadoop/hbase-1.1.5/logs

exportHBASE_MANAGES_ZK=false

exportHBASE_PID_DIR=/opt/hadoop/hadoop-2.7.2/pids

exportHBASE_CLASSPATH=/opt/hadoop/hbase-1.1.5/conf

修改HBASE_MANAGES_ZK为false,默认为true,表示HBase托管zookeeper实例,如果是HBase独占的zookeeper,可以设定为true。

这里需要注意的是,在搭建HBase集群的时候需要保证Hadoop平台运行正常,各个节点的时间差不能相差太大,最后时间能够同步。否则会导致HBase的启动失败。另外,如果在启动HBase集群时,提示不能解析HDFS路径,这里将Hadoop的core-site.xml和hdfs-site.xml文件复制到HBase的conf文件目录下即可。

② cp/opt/hadoop/hadoop-2.7.2/etc/hadoop/hdfs-site.xml.

cp/opt/hadoop/hadoop-2.7.2/etc/hadoop/core-site.xml.

③ 创建临时目录

[hadoop@masternode1conf]$mkdir/opt/hadoop/hbase-1.1.5/tmp

[hadoop@masternode1conf]$mkdir/opt/hadoop/hbase-1.1.5/logs

[hadoop@masternode1conf]$chmod756/opt/hadoop/hbase-1.1.5/logs

[hadoop@masternode1conf]$chmod756/opt/hadoop/hbase-1.1.5/tmp/

④ 配置hbase-site.xml文件

vihbase-site.xml

<configuration>

<!--hbase存储在HADOOPHDFS上文件根目录路径-->

<property>

<name>hbase.rootdir</name>

<value>hdfs://cluster-ha/hbase</value>

</property>

<!--采用分布式模式-->

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<!--zookeeper地址,端口不指定的话就默认为2181-->

<property>

<name>hbase.zookeeper.quorum</name>

<value>slavenode1,slavenode2,slavenode3,slavenode4,slavenode5,slavenode6,slavenode7</value>

</property>

<!--指定ZooKeeper集群端口-->

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<!--hbase临时文件存储目录,比如一些数据表的预分区信息等等-->

<property>

<name>hbase.tmp.dir</name>

<value>/opt/hadoop/hbase-1.1.5/tmp</value>

</property>

<property>

<name>hbase.master</name>

<value>hdfs://cluster-ha:16000</value>

</property>

<property>

<name>hbase.master.info.port</name>

<value>16010</value>

</property>

<!--zookeeper存储数据位置-->

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/opt/hadoop/zookeeper/data</value>

</property>

<property>

<name>hbase.client.write.buffer</name>

<value>5242880</value>

</property>

<property>

<name>hbase.regionserver.handler.count</name>

<value>300</value>

<description>CountofRPCListenerinstancesspunupon

RegionServers.SamepropertyisusedbytheMasterforcountofmaster

handlers.</description>

</property>

<property>

<name>hbase.table.sanity.checks</name>

<value>false</value>

</property>

<property>

<name>zookeeper.session.timeout</name>

<value>30000</value>

</property>

<property>

<name>hbase.hregion.max.filesize</name>

<value>32212254720</value>

</property>

</configuration>

hbase.rootdir:RegionServers共享的HBase持久化数据的存储地址。需要使用包含文件系统scheme的完全限定地址。

hbase.cluster.distributed:指定Hbase集群是否以分布式方式运行。

hbase.master.port:Master绑定的端口,包括backup-master.

hbase.zookeeper.property.dataDir:这个是ZooKeeper配置文件zoo.cfg中的dataDir。zookeeper存储数据库快照的位置。

hbase.zookeeper.quorum:ZooKeeper的所有成员服务器列表,服务器名之间用逗号分隔。

hbase.zookeeper.property.clientPort:这个是ZooKeeper配置文件zoo.cfg中的clientPort。ZooKeeper提供给客户端连接的端口,默认是2181。

⑤ 配置[hadoop@masternode1conf]#vilog4j.properties

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

⑥ 修改regionservers,将RegionServers写入。

vimconf/regionservers

slavenode1

slavenode2

slavenode3

slavenode4

⑦ 添加环境变量方便调用HBase

vim/etc/profile

exportHBASE_HOME=/opt/hadoop/hbase-1.1.5

exportPATH=$PATH:$HBASE_HOME/bin

⑧ 创建两个目录.zookeeper单独配置就不用这步骤

[hadoop@masternode1hbase-1.1.5]#mkdirlogs

[hadoop@masternode1hbase-1.1.5]#mkdirdata

[hadoop@masternode1data]#echo‘1’>myid

[hadoop@masternode1data]#echo‘2’>myid

[hadoop@slavenode2data]#echo‘3’>myid

[hadoop@slavenode3data]#echo‘4’>myid

⑨ 将修改好的安装目录分发到所有节点,一并修改环境变量。

[hadoop@masternode1hadoop]$foriin{31,32,33,34,35,36,37,38,39};doscp-rhbase-1.1.5hadoop@192.168.237.2$i:/opt/hadoop/;done

[hadoop@masternode1hadoop]$foriin{31,32,33,34,35,36,37,38,39};doscp~/.bash_profilehadoop@192.168.237.2$i:~/.bash_profile;done

把/etc/profile~/.bash_profile分发各级节点

防止内存溢出(主从节点都要配置)

[hadoop@masternode1~]#vi/etc/security/limits.d/90-nproc.conf

#Defaultlimitfornumberofuser'sprocessestoprevent

#accidentalforkbombs.

#Seerhbz#432903forreasoning.

*softnproc1024

rootsoftnprocunlimited

hadoopsoftnproc10240(更改后的值)

⑩ 启动HBase

这步要现看下hbase下的包是否全才执行,若全就不用执行此部find/opt/hadoop/hadoop-2.7.2/share/hadoop-name"hadoop*.jar"|xargs-icp{}/opt/hadoop/hbase-1.1.5/lib/

[hadoop@masternode1bin]$#pwd

/opt/hadoop/hbase-1.1.5/bin

[hadoop@masternode1bin]$shstart-hbase.sh

在masternode2上调用hbase-daemon.shstartmaster

即可。

11 通过jps查看进程。

Masternode1上有HMaster,Masternode2上有HMaster和HRegionServer,slavenode1和slavenode3上是HRegionServer。

http://192.168.237.230:16010/master-status

http://192.168.237.231:16010/master-status

12 验证完毕

[hadoop@masternode1bin]#./hbaseshell

SLF4J:ClasspathcontainsmultipleSLF4Jbindings.

SLF4J:Foundbindingin[jar:file:/opt/hadoop/hbase-1.1.5/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J:Foundbindingin[jar:file:/opt/hadoop/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J:Seehttp://www.slf4j.org/codes.html#multiple_bindingsforanexplanation.

SLF4J:Actualbindingisoftype[org.slf4j.impl.Log4jLoggerFactory]

2016-09-0803:45:45,878WARN[main]util.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicable上面第三步配置是为了解决该报错的

HBaseShell;enter'help<RETURN>'forlistofsupportedcommands.

Type"exit<RETURN>"toleavetheHBaseShell

Version1.1.5,r239b80456118175b340b2e562a5568b5c744252e,SunMay820:29:26PDT2016

hbase(main):001:0>create'test','cf'

ERROR:Can'tgetmasteraddressfromZooKeeper;znodedata==null
现在是hbase和zookeeper链接不上,请核查原有

原因是四台机器的zookeeper必须要全部启动完毕之后才可以启动hbase。

[hadoop@slavenode1bin]#hbaseshell

HBaseShell;enter'help<RETURN>'forlistofsupportedcommands.

Type"exit<RETURN>"toleavetheHBaseShell

Version1.1.5,r239b80456118175b340b2e562a5568b5c744252e,SunMay820:29:26PDT2016

hbase(main):001:0>create't1',{NAME=>'f1',VERSIONS=>2},{NAME=>'f2',VERSIONS=>2}

0row(s)in2.5320seconds

=>Hbase::Table-t1

解决slf4问题

[hadoop@masternode1bin]#hbaseclasspath|tr":""\n"|grep-islf4

/opt/hadoop/hbase-1.1.5/lib/slf4j-api-1.7.7.jar

/opt/hadoop/hbase-1.1.5/lib/slf4j-log4j12-1.7.5.jar

[hadoop@masternode1bin]#rm/opt/hadoop/hbase-1.1.5/lib/slf4j-api-1.7.7.jar

rm/opt/hadoop/hbase-1.1.5/lib/slf4j-log4j12-1.7.5.jar

到相应的目录删掉找出来的文件

总结:

1.hbase.master.port需要指定,不然启动backup-master时会报Alreadyinuse的错误。

2.HMaster(包括backup-master)需要能够passwordlessssh到其它服务器

3.ZooKeeper应该用奇数个节点。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇hbase配置与优化 下一篇hbase环境变量配置及启动

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目