HBase学习笔记之HBase的安装和配置
我是为了调研和验证hbase的bulkload功能,才安装hbase,学习hbase的。为了快速的验证bulkload功能,我安装了一个节点的hadoop集群和一个节点的hbase。安装过程如下。
1、简介
2、安装环境准备
3、具体安装过程
1、简介
=========
hbase是hadoop生态系统中的一个软件,是基于hadoop的数据库软件。
2、安装环境准备
===============
hbase安装之前必须安装hadoop,所以在安装hbase之前必须先安装hadoop。
vm:vmware player 6.0.7
os:centos6.10
jdk:1.8.0_45
hadoop:apache hadoop-2.7.5.tar.gz
hbase: apache hbase-1.0.1.1-bin.tar.gz
2.0 安装环境准备
----------------------------
这里写一下centos安装之后的环境设置,主要包括:(1)修改主机名为master和hosts文件中的host-ip映射关系(ip master),(2)ssh免密登录,(3)jdk安装
这几步都很简单,就略了。
2.1 hadoop单节点安装过程
-------------------------------------
hadoop的安装过程略微复杂,这里简略的概述一下,详细过程,请参考参考资料1.
下载到的hadoop二进制包是hadoop-2.7.5.tar.gz。
(1)解压到/usr/local/bigdata下,bigdata是一个特意创建的目录,用来存放大数据相关软件的安装目录
tar -xzf hadoop-2.7.5.tar.gz -C /usr/local/bigdata/
然后配置一下环境变量/etc/profile:
#hadoop
export HADOOP_HOME=/usr/local/bigdata/hadoop/hadoop-2.7.5
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
之后source /etc/profile,让环境变量起效。
(2)修改hadoop的配置文件,配置文件位于hadoop安装目录下的etc/hadoop中,主要涉及的配置文件如
文件名称 | 格式 | 功能描述 |
hadoopenv.sh | shell脚本 | 这个脚本是hadoop启动的时候执行的,用来为hadoop的执行准备执行环境,其中主要是一些环境变量的设置 |
core-site.xml | xml文档 | 是hadoop core的配置项,其中可以设置hdfs的uri地址,hadoop的tmp目录等 |
hdfs-site.xml | xml文档 | 是hdfs的主要配置文件,其中可以配置hdfs的name node存放元数据的目录,hdfs的data node存放数据的目录,hdfs存放的数据副本个数 |
yarn-site.xml | xml文档 | yarn的主要配置文件,yarn的 ResourceManager和NodeManager的配置项 |
mapred-site.xml | xml文档 | mapreduce的主要配置文件,其中可以配置mapreduce需要用的资源调度框架 |
slaves | plain text | 其中记录了作为slave的机器的主机名或者ip地址 |
(3)格式化
hdfs namenode -format
(4)启动hadoop
start-dfs.sh && start-yarn.sh
(5)验证启动是否成功
hdfs dfs -ls /
3、hbase安装
============
(1)下载、解压
-------------------------
tar -xzf hbase-1.0.1.1-bin.tar.gz -C /usr/local/bigdata/hbase/
然后配置一下环境变量/etc/profile:
#hbase
export HBASE_HOME=/usr/local/bigdata/hbase/hbase-1.0.1.1
export PATH=$PATH:$HBASE_HOME/bin
之后source /etc/profile,让环境变量起效。
(2)配置
---------------------
hbase-env.sh文件是为hbase准备运行环境的shell脚本,在其中修改两个配置项:
export JAVA_HOME=/usr/local/jdk1.8.0_45 #这个配置项设置jdk的安装位置
export HBASE_MANAGES_ZK=true #这个配置项表示用hbase自己管理zookeeper,就是使用hbase自带的zookeeper运行hbase,因为hbase运行的时候需要zookeeper,一般hbase自己带了一个zookeeper,当然也可以独立安装一个zookeeper,这时候要把这个配置项的值设置为false
regionservers文件内容修改为安装的主机的名字:master
hbase-site.xml是hbase的主配置文件,将其内容修改为:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> <description>hbase在hdfs上存储数据的目录</description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>表示hbase是分布式的,而不是standalone模式</description> </property> <!--下面是hbase的reginonserver进程的两个端口,特意设置这两个端口是有复杂的原因的,具体可以看参考资料2-->
<property> <name>hbase.regionserver.port</name> <value>16040</value> </property> <property> <name>hbase.regionserver.info.port</name> <value>16041</value> </property> </configuration>
(3)hbase启动和验证
---------------------------------
执行start-hbase.sh启动hbase
jps查看启动进程,看到红色的三个进程表示启动成功了:
[root@master conf]# jps
5537 HMaster
5474 HQuorumPeer
4677 SecondaryNameNode
4933 NodeManager
5670 HRegionServer
4489 DataNode
4379 NameNode
9275 Jps
4830 ResourceManager
[root@master conf]#
执行hbase shell,进入hbase的shell环境:
[root@master conf]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/bigdata/hbase/hbase-1.0.1.1/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/bigdata/hadoop/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.0.1.1, re1dbf4df30d214fca14908df71d038081577ea46, Sun May 17 12:34:26 PDT 2015
hbase(main):001:0>
这样就安装完成了。
参考资料:
0、https://www.cnblogs.com/oraclestudy/articles/5665780.html,这是hbase的介绍,直接看看的不明白,看个大概,等安装完成,试用了hbase之后,再回过头来看,就能看明白了,然后再根据这篇文章的理解,做些实验。
1、《hadoop海量数据处理 技术详解与项目实战 第2版》第二章,hadoop的安装,hbase的安装都详细参考这个资料。
2、https://blog.csdn.net/h12kjgj/article/details/78669244,这篇文章说了hbase的端口冲突问题,也说了为什么端口冲突,很好的解决了hmaster和hregionserver的端口冲突问题
3、http://www.cnblogs.com/nexiyi/p/hbase_intro_94.html,这篇也是详细说明hbase的,配合0,可以详细学习hbase