Bigdata

HBase 线程数和文件描述符设置

Submitted by Lizhe on Thu, 04/27/2017 - 17:25

HBase和Mapreduce使用HDFS的方式不同, Mapreduce在工作时会先打开文件,运行结束后会关闭这个文件流

但HBase在启动时就会打开所有需要使用到的表文件,并且这些文件会在运行期间一直处在打开状态

如果表中的列特别多,可能会超出系统的文件描述符设置

一个100个区域,每个区域10个列簇,每个列簇2个flush file的情况会使用到 100*10*2=2000个文件描述符

而在linux系统中一个进程默认只能打开1024个文件描述符

超出1024会导致"Too many open files" 错误发生,可以通过下面的方式修改最大限制

vi /etc/security/limits.conf

Hbase Mapreduce 从Hbase读写

Submitted by Lizhe on Thu, 04/27/2017 - 02:02

下面这个例子中我使用TableMapper从HBase中读入一个表的所有数据

然后使用TableReducer将这些数据做一些修改,最后存入到另一个表中

用于演示如何通过Mapreduce存取HBase中的数据内容

package hbase.count;

import java.io.IOException;
import java.util.List;

hbase 分布式 helloworld

Submitted by Lizhe on Mon, 04/24/2017 - 21:24

 

缺少的部分请参考

http://lizhe.name/node/57 (单机安装)

解压之后还是先配置

conf/hbase-env.sh

export JAVA_HOME=/opt/app/jdk/jdk1.8.0_74  (jdk工作目录)
export HBASE_MANAGES_ZK=true (使用自带的zookeeper)

然后修改

修改hbase-site.xml

 

Hbase 单机 helloworld

Submitted by Lizhe on Mon, 04/24/2017 - 17:32

单机安装Hbase简直是简单到爆炸

你只需要

下载一个自己看着顺眼的版本(不过还是最好参考一下你的hadoop版本)

这里我用的是目前的stable版本 https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.2.5/hbase-1.2.5-bin.tar.gz

然后就是解压,配置一下jdk和工作目录

conf/hbase-env.sh

export JAVA_HOME=/opt/app/jdk/jdk1.8.0_74  (jdk工作目录)
export HBASE_MANAGES_ZK=true (使用自带的zookeeper)

然后是

conf/hbase-site.xml

改一下工作目录(不改的话默认使用/tmp,有些linux上每次重启tmp目录会被清空)

Mapreduce 排序

Submitted by Lizhe on Sat, 04/22/2017 - 20:17

 

一般情况下, Mapreduce会根据数据的key来进行一个排序,所以这里我们连reduce都省了,只需要对文件中的数据进行一个简单的map

这里例子很简单,我们使用两个文件内容分别是