HDFS | HBase |
---|---|
HDFS是适于存储大容量文件的分布式文件系统。 | HBase是建立在HDFS之上的数据库。 |
HDFS不支持快速单独记录查找。 | HBase提供在较大的表快速查找 |
它提供了高延迟批量处理;没有批处理概念。 | 它提供了数十亿条记录低延迟访问单个行记录(随机存取)。 |
它提供的数据只能顺序访问。 | HBase内部使用哈希表和提供随机接入,并且其存储索引,可将在HDFS文件中的数据进行快速查找。 |
HBase是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列。后续列的值连续地存储在磁盘上。表中的每个单元格值都具有时间戳。总之,在一个HBase:
# 下载安装包
wget http://archive.apache.org/dist/hbase/1.2.6/hbase-1.2.6-bin.tar.gz
# 解压安装包
tar xf hbase-1.2.6-bin.tar.gz
mv hbase-1.2.6 /usr/local/hbase
# 创建目录
mkdir -p /home/hbase/{log,pid,tmp}
编辑文件/etc/profile.d/hbase.sh
。
# HBASE ENV
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
使HADOOP环境变量生效
source /etc/profile.d/hbase.sh
编辑文件/usr/local/hbase/conf/hbase-env.sh
,修改如下信息。
export JAVA_HOME=/usr/java/default
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
export HBASE_LOG_DIR=/home/hbase/log
export HBASE_PID_DIR=/home/hbase/pid
export HBASE_MANAGES_ZK=false
编辑文件/usr/local/hbase/conf/regionservers
,修改为如下。
datanode01
datanode02
datanode03
编辑文件/usr/local/hbase/conf/hbase-site.xml
,修改为如下。
<configuration>
<!--region服务器的共享目录,用来持久存储HBase的数据 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode01:9000/hbase</value>
</property>
<!--本地文件系统的临时文件夹,可以修改为一个更为持久的目录-->
<property>
<name>hbase.tmp.dir</name>
<value>/home/hbase/tmp</value>
</property>
<!--HBase集群的运行模式,false表示单机模式,true表示集群模式-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--HBase Master应该绑定的端口-->
<property>
<name>hbase.master.port</name>
<value>60000</value>
</property>
<!--HBase Master的Web UI服务端口-->
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<!--HBase RegionServer绑定的端口-->
<property>
<name>hbase.regionserver.port</name>
<value>60020</value>
</property>
<!--HBase RegionServer的Web UI服务端口-->
<property>
<name>hbase.regionserver.info.port</name>
<value>60030</value>
</property>
<!--ZooKeeper的zoo.cfg配置文件中的属性,ZooKeeper面向客户端服务的端口-->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!--ZooKeeper会话超期时间-->
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
<!--ZooKeeper Quorum中的服务器列表,使用逗号分隔-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>zk01:2181,zk02:2181,zk03:2181</value>
</property>
<!--ZooKeeper的zoo.cfg配置文件中的属性,ZooKeeper集群中单个节点接收的单个客户端请求的并发数-->
<property>
<name>hbase.zookeeper.property.maxClientCnxns</name>
<value>300</value>
</property>
</configuration>
cd /usr/local/hbase/conf
scp * datanode01:/usr/local/hbase/conf
scp * datanode02:/usr/local/hbase/conf
scp * datanode03:/usr/local/hbase/conf
start-hbase.sh
[root@namenode01 conf]# jps
14512 NameNode
14786 ResourceManager
15204 HMaster
15405 Jps
[root@datanode01 ~]# jps
3509 DataNode
3621 NodeManager
3238 HRegionServer
1097 QuorumPeerMain
3839 Jps
[root@datanode02 ~]# jps
3668 Jps
3048 HRegionServer
3322 DataNode
3434 NodeManager
1101 QuorumPeerMain
[root@datanode03 ~]# jps
3922 DataNode
4034 NodeManager
4235 Jps
1102 QuorumPeerMain
3614 HRegionServer
访问 http://192.168.1.200:60010/master-status
访问 http://192.168.1.201:60030/rs-status
[root@namenode01 ~]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/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.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017
hbase(main):001:0> list
TABLE
0 row(s) in 0.2210 seconds
=> []
hbase(main):002:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。