1 安装
下载,解压
配置
hbase-env.sh
java_home, HBASE_MANAGES_ZK:true
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
export HBASE_MANAGES_ZK=true
hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,h1,h2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper-3.4.3</value>
</property>
</configuration>
注意:<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
分布式设置
其他参数
hbase.master.port 端口
hbase.cluster.distributed 是不是分布式
hbase.tmp.dir 临时文件地址
hbase.master.info.port web 状态监控绑定地址,默认0.0.0.0
hbase.master.info.bindAddress web状态监控端口 默认60010 (master:60010/status查看hbase状况)
hbase.client.write.buffer 默认2MB.写的缓存大小
regionservers
server列表
2启动与关闭
./start-hbase.sh
./stop-hbase.sh
http://master:60010/status查看状态
3 hbase介绍
面向列族的数据库
Hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。
它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。
与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family)
Row Key | column-family1 | column-family2 | column-family3 |
| |
column1 | column1 | column1 | column2 | column3 | column1 |
key1 | t1:abc | t4:dfads | |||
key2 | t3:abc | t4:dfads | t2:dfdsfa | ||
key3 | t2:dfadfasd |
4 物理存储
Table 在行的方向上分割为多个Hregion。
每个server上面一个HregionServer 多个regions.每个表刚刚开始一个region,随着表的不断增加,region分裂成多个 然后负载到其他server一个region只能在一个server上,不会迁移到别的server
表的存储结构:
-ROOT-(储存regions的信息,同hadoop namenode 的images)
.META.
宽表1
结构
内容
region1:
-region infor (store)
-columnfamily1 (store)
-StoreFile
-columnfamily2 (store)
-columnfamily3... (store)
region2:....
region3:....
宽表2...
宽表3...
region:
store
MEMstore
StoreFile
block
负载均衡:
客户端寻址,通过_ROOT_,.META. 找到region地址,然后访问信息.
regions自动分裂和手动合并:
---------------------------我是分割线----------------------------------------------------未完待补充----------------------------------------
5 写数据
6操作
7api
java
mr inputfomat
avro
rest hbase-daemen.sh start rest hbase-daemen.sh stop rest 8080
thrift hbase-daemen.sh start thrift 9090
8读写连接与hadoop参数调整
集群的ulimit值http://wiki.apache.org/hadoop/Hbase/FAQ
dfs.datanode.max.xcievers 256个值
9模式
行键设计
二级索引
lucene集成
宽表
10批量加载http://hbase.apache.org/docs/current/bulk-loads.html