1.hbase安装
1.1 环境要求
jdk1.7以上、hadoop2.4以上、zookeeper
1.2 进入http://www.apache.org/dyn/closer.cgi/hbase/下载对应hbase版本,并解压。
1.3 进入解压后目录/conf 目录,修改以下配置文件
1.修改regionservers配置,该文件描叙的是regionserver的运行机器,如例子中运行在host2、host3、host4 3台服务器上。
host2
host3
host42.修改backup-masters配置,该文件内容为slave HMaster 运行机器host
host2
3.修改hbase-site.xml,主要修改以下配置信息
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://host1:8020/hbase</value> <description>hbase数据hdfs目录</description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>hbase是否为分布式</description> </property> <property> <name>hbase.master</name> <value>host1</value> <description>hbase master 运行机器host</description> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>host1,host2,host3</value> <description>zookeeper运行机器host</description> </property> <property> <name>zookeeper.session.timeout</name> <value>60000</value> <description>hbase 连接zookeeper 心跳时间,默认为180000ms,不建议设置过大,防止regionserver已经停止服务了,不能及时发现。也不能过少,防止因为jvm GC导致不能在timeout时间内响应zk心跳,而将服务判断为已停止。</description> </property> <property> <name>hbase.regionserver.handler.count</name> <value>120</value> <description>hbase 请求处理线程,当单个get、put请求数据量比较小,可以将该值设的比较大,反之可调小该值,防止OOM.</description> </property> <!--<property> <name>hbase.hregion.memstore.flush.size</name> <value>128M</value> </property>--> <property> <name>hbase.hregion.majorcompaction</name> <value>0</value> <description>关闭自动majorcompaction</description> </property> <property> <name>hbase.hregion.max.filesize</name> <value>53687091200</value> <description>hfile文件最大限制,可以设置比较大,防止hbase自动split</description> </property> <property> <name>hbase.hstore.compaction.min</name> <value>5</value> <description>region下发生minorcompaction的条件,当hfile文件数达到5个时</description> </property> <property> <name>hbase.hstore.blockingStoreFiles</name> <value>15</value> <description>region下最大hfile文件数量,当达到最大数量,写入失败.可将该值调大</description> </property> <property> <name>hbase.regionserver.hlog.splitlog.writer.threads</name> <value>5</value> <description>WAL hlog 写入线程数</description> </property> <property> <name>hbase.regionserver.thread.compaction.small</name> <value>5</value> <description>minorcompaction 线程数</description> </property>
修改hbase-env.sh,调整hbase 最大内存限制、java环境
export JAVA_HOME=/opt/jdk1.7.0_80
export HBASE_HEAPSIZE=8G- 修改/etc/profile,将hbase命令加入到环境变量中。
export HBASE_HOME=/opt/hbase-1.1.3
export PATH=.:${HBASE_HOME}
/bin:$PATH
2.hbase使用
- 1.执行start-hbase.sh 启动hbase服务。
- 执行hbase shell 进行hbase 操作命令行。执行status ‘simple’ 命令正常返回,且各个regionserver状态正常,则hbase已经安装成功。
3.snappy压缩算法安装
由于hadoop官网下载native包是在32未机器下编译的,如果hbase服务器为64为服务器,需要下载源码进行编译native包。下面将介绍64位服务器natvie包编译过程。
1.安装snappy算法
1.通过http://download.csdn.net/detail/zychun1991/9563375下载snappy-1.1.0.tar.gz包,进入压缩目录。
2.执行编译
./configure
make
make install
3.拷贝到/usr/lib64目录下
cp /usr/local/lib/libsnappy.so.1.1.4 /usr/lib64/.
ln -s /usr/lib64/libsnappy.so.1.1.4 /usr/lib64/libsnappy.so
ln -s /usr/lib64/libsnappy.so.1.1.4 /usr/lib64/libsnappy.so.12.编译hadoop源码
1.下载hadoop对应版本源码
2.安装依赖lib包protoc 2.5版本,可以参考http://cn.soulmachine.me/blog/20140214/
3.执行mvn package -Pdist,native -Dtar -Dmaven.javadoc.skip=true -DskipTests -Drequire.snappy=true(如果是64为linux机器,可以直接下载我打包好的native.zip包直接使用。下载地址是http://download.csdn.net/detail/zychun1991/9563377/)3.配置hadoop支持snappy压缩
1.修改hadoop-env.sh,在里面添加export HADOOP_OPTS=” HADOOPOPTS−Djava.library.path= HADOOP_HOME/lib/native”
2.用打包好的native包的替换${HADOOP_HOME}/lib/native
3.使用hadoop checknative -a 看能够支持的压缩算法。4.配置hbase支持snappy压缩
1.在${HBASE_HOME}/lib下新建native/Linux-amd64-64目录,并将附件中native-2.5.tar.gz(libc 2.5版本)或者native.zip(libc 2.12版本)包下内容拷贝到新建的目录下
2.使用hbase org.apache.hadoop.hbase.util.CompressionTest [hdfs目录] [压缩算法]看能否执行成功
4.hbase +snappy算法使用
通过上面几步,hbase与snappy都已经安装成功.用户可以通过以下方式配置hbase表snappy的压缩方式:
建表时指定
create ‘test’,{NAME => ‘cf’, COMPRESSION => ‘SNAPPY’},{NUMREGIONS => 15, SPLITALGO => ‘HexStringSplit’}
alter 更新时指定
alter ‘test’,{NAME => ‘cf’, COMPRESSION => ‘SNAPPY’}