Mapr 安装hadoop的组件(三)——安装hbase,hadoophbase
HBase的是Hadoop的数据库,它提供了随机,实时读/写访问非常大的数据。
- 请参阅 安装HBase的 了解有关使用HBase的与MAPR
- 请参阅 设置压缩与HBase的 信息有关压缩HFILE存储
- 请参阅 运行MapReduce作业与HBase的 了解有关使用MapReduce的与HBase的
- 见 HBase的最佳实践 为HBase的技巧和窍门
HBase的安装
哪些节点应该运行HBase的主人服务,以及哪些节点计划应运行HBase的RegionServer。至少一个节点(通常是三个节点)应该运行HBase的主,例如,在动物园管理员节点上安装HBase的主人。只有少数剩余节点或所有剩余的节点可以运行HBase的RegionServer。当你在也运行TaskTracker必须的节点上安装HBase的RegionServer,减少地图的数量,降低槽,以免超额预订机。以下过程使用的操作系统软件包管理器,从MAPR存储库下载安装。要手动安装软件包,请参阅 准备包和存储库。
使用Java 7与HBase的,设置的值JAVA_HOME属性中的/ opt / MAPR / conf /中env.sh到Java 7 JVM的位置。请注意,这一变化将导致所有其他Hadoop和MAPR Java的守护进程,并使用指定的JVM代码。
目前支持的版本的HBase
下表显示了HBase的版本和MAPR分布的Hadoop版本之间的兼容性。
| HBase的版本 | MAPR版本 |
|---|---|
| 0.90.x | 1.2.9 |
| 0.92.x | 1.2.x版本,2.x中,3.0.0 |
| 0.94.x | 1.2.x版本,2.x中,3.0.0,3.0.1 |
| 0.94.12 | 1.2.x版本,2.x中,3.x的 |
要在Ubuntu的群集上安装HBase的:
- 执行以下命令以
根或使用sudo的。 - 此过程是将一个MAPR集群上执行。如果你还没有安装MAPR,看到 高级安装主题。
-
更新可用软件包列表:
apt-get的更新 -
在每个计划HBase的主节点,安装
MAPR-HBase的主站:apt-get的安装MAPR-HBase的主 -
在每个计划的HBase RegionServer节点,安装
MAPR-HBase的,regionserver:apt-get的安装MAPR-HBase的,regionserver - 在所有HBase的节点,执行
configure.sh与CLDB节点和动物园管理员节点集群中的列表。 -
监狱长拿起新的配置,并自动启动新的服务。如果方便的话,请重新启动监狱长:
#服务MAPR-监狱长站#服务MAPR-监狱长开始
到Red Hat或CentOS的群集上安装HBase的:
- 执行以下命令以
根或使用sudo的。 -
在每个计划HBase的主节点,安装
MAPR-HBase的主站:yum的安装MAPR-HBase的主 -
在每个计划的HBase RegionServer节点,安装
MAPR-HBase的,regionserver:yum的安装MAPR-HBase的,regionserver - 在所有的HBase的节点上,运行
configure.sh与CLDB节点和节点的ZooKeeper集群中的列表脚本。 -
监狱长拿起新的配置,并自动启动新的服务。如果方便的话,请重新启动监狱长:
#服务MAPR-监狱长站#服务MAPR-监狱长开始
在客户端上安装HBase的
若要从一台机器的集群外使用HBase的shell,你可以在运行MAPR客户端的计算机上安装HBase的。对于MAPR客户端安装说明,请参阅 设置客户。
前提条件:
- 必须安装MAPR客户端
- 你必须知道的群集上的动物园管理员节点的IP地址或主机名
要在客户端计算机上安装HBase的:
- 执行以下命令以
根或使用sudo的。 - 在客户端计算机上,安装
MAPR-HBase的内部:- 的CentOS或Red Hat:
yum的安装MAPR-HBase的内部 - Ubuntu的:
apt-get的安装MAPR-HBase的内部
- 的CentOS或Red Hat:
- 在所有HBase的节点,执行
configure.sh与CLDB节点和动物园管理员节点集群中的列表。 -
编辑
的HBase-site.xml中,设置hbase.zookeeper.quorum属性包含一个逗号分隔的你将与工作在集群上的动物园管理员节点的IP地址或主机名列表。例如:的<property><NAME> hbase.zookeeper.quorum </名称>值<value>10.10,25.10,10.10,25.11,10.10,25.13</值></财产>
开始使用HBase的
在本教程中,我们将在群集上创建的HBase表,输入一些数据,查询该表,然后清理数据并退出。
HBase的表是由列组织的,而不是按行。此外,该列被安排在称为组列族。当创建一个HBase的表,则必须插入任何数据之前定义的列族。列族不应该经常改变,也不应该有太多了,所以要仔细想想列族将是有用的为您的特定数据是非常重要的。每一列的家庭,但是,可以包含一个非常大的列数。列所使用的格式命名预选赛:家庭。
不同于列在关系数据库中,其中保留为没有值的列空,HBase的列根本就不是他们有没有值的行存在。这不仅节省了空间,而且意味着不同的行不必有相同的列,你可以使用任何列你需要在每一行的基础数据。
在HBase的创建一个表:
-
启动HBase的外壳通过键入以下命令:
/ opt/mapr/hbase/hbase-0.94。12/斌/ HBase的壳 -
创建一个名为表
博客有一列家族命名的统计:创建'博客','统计' -
检查表的创建,列出一切:
表 -
测试值添加到
日常在列统计列家族的第1行:把'博客','ROW1','统计:每天','测试日用值' -
测试值添加到
每周在列统计列家族的第1行:把'博客','ROW1','统计:周','测试每周价值' -
测试值添加到
每周在列统计列家族的第2行:把'博客','ROW2','统计:周','测试每周价值' -
输入
扫描“博客”,以显示表的内容。示例输出:行列+电池ROW1列=统计:每天,时间戳=1321296699190,值=测试日用值ROW1列=统计:每周一次,时间戳记=1321296715892,值=测试每周价值在row2列=统计:每周一次,时间戳记=1321296787444,值=测试每周价值2行中(S)0.0440秒 -
类型
得到'博客','ROW1'显示第1行的内容。示例输出:列单元格统计:每天时间戳=1321296699190,值=测试日用值统计:每周时间戳=1321296715892,值=测试每周价值2行中(S)0.0330秒 - 输入
禁用'博客'禁用表。 - 键入
降'博客'来删除该表并删除所有数据。 - 键入
退出,退出HBase的外壳。
设置压缩与HBase的
使用压缩与HBase的减少通过网络传输并存储在磁盘上的字节数。这些好处往往大于压缩在每次写入数据,并在每一个读解压缩它的性能开销。
Gzip压缩
Gzip压缩包含在大多数Linux发行版,并与HBase的作品本身。使用gzip压缩,在每列族压缩标志指定它同时创造在HBase的壳表。例如:
创建'mytable的' ,{NAME
=> 'colfam:' ,压缩=> '广州' }
|
LZO压缩
基于Lempel-谢夫-Oberhumer(LZO)是一种无损数据压缩算法,包括在大多数的Linux发行版,这是专为解压速度。
设置LZO压缩与HBase的使用:
- 确保HBase的安装在您打算运行的节点上。请参阅 规划部署 和 安装MAPR软件 的更多信息。
- 在每个HBase的节点,请确保安装了本地LZO基库:
- 在Ubuntu:
apt-get的安装liblzo2-dev的liblzo2 - 在Red Hat或CentOS:
yum的安装LZO-发育LZO
- 在Ubuntu:
- 退房的原生接口库从 http://svn.codespot.com/a/apache-extras.org/hadoop-gpl-compression/
-
对于0.20.2检查出branches/branch-0.1
SVN检出的http:/ / svn.codespot.com/a/apache-extras.org/hadoop-gpl-compression/branches/branch-0.1 /
-
-
设置编译器标志,并建立本地连接库:
$出口CFLAGS =“-M64”$蚂蚁编译原生$蚂蚁罐子 -
创建的本地库(使用TAB键完成,填补了<VERSION>占位符)的目录:
MKDIR-P / opt/mapr/hbase/hbase- <VERSION> / lib中/本地/ Linux的AMD64-64/ -
构建结果复制到HBase的每个节点上适当的HBase的目录。例如:
$ CP构建/本地/ Linux的AMD64-64/ lib中/ libgplcompression。* / opt/mapr/hbase/hbase- <VERSION> / lib中/本地/ Linux的AMD64-64/ - 从下载的hadoop-LZO压缩库 https://github.com/twitter/hadoop-lzo。
- 下创建一个符号链接
/ opt/mapr/hbase/hbase- <VERSION> / lib/native/Linux-amd64-64 /指向-
在Ubuntu:
LN-S / usr/lib/x86_64-linux-gnu/liblzo2.so。2/ opt/mapr/hbase/hbase- <VERSION> / lib中/本地/ Linux的AMD64-64/ -
在Red Hat或CentOS:
LN-S / usr/lib64/liblzo2.so。2/ opt/mapr/hbase/hbase- <VERSION> / lib中/本地/ Linux的AMD64-64/ liblzo2.so。2
-
-
重启RegionServer:
maprcli节点服务,hbregionserver重新启动节点<HOSTNAME>
一旦LZO设置,你可以在每列族压缩标志指定它同时创造在HBase的壳表。例如:
创建'mytable的' ,{NAME
=> 'colfam:' ,压缩=> 'LZO' }
|
活泼的压缩
这个短小精悍的压缩算法进行了速度优化了压缩。活泼的,不包含在核心MAPR分布,而你将要兴建的清脆库使用这个压缩算法。
设置清脆的压缩与HBase的使用
-
在集群中的一个节点,下载,编译和安装从清脆 的项目页面:
#wget的HTTP:/ / snappy.googlecode.com/files/snappy-1.1.1.tar.gz#焦油xvf命令清脆-1.1。1。tar.gz的#CD清脆-1.1。1#。/配置#使#须藤使安装 - 复制文件从
在/ usr / local / lib目录/ libsnappy *到<HADOOP_HOME> / lib/native/Linux-amd64-64 /在集群中的所有节点目录。 - 在已安装的TaskTracker必须服务的所有节点,重新启动TaskTracker必须与
maprcli 节点服务 nodes>的,TaskTracker必须重启节点<list命令。
运行MapReduce作业与HBase的
要运行MapReduce作业存储在HBase的数据,设置环境变量 HADOOP_CLASSPATH 到的输出 HBase的类路径 命令(使用TAB键完成,填补了 <VERSION> 占位符):
$出口HADOOP_CLASSPATH
=`/ opt/mapr/hbase/hbase- <VERSION> /斌/ HBase的类路径`
|
注意反引号(`)。
例如:导出的表名为t1与MapReduce的
注:在上一个MAPR群集中的节点,输出目录/ hbase/export_t1将设在MAPR Hadoop的文件系统,所以要列出使用下面例子中的输出文件的从节点的命令行下的hadoop fs的命令:
#hadoop的FS-LS / hbase/export_t1
要查看输出:
#hadoop的FS-CAT / hbase/export_t1/part-m-00000
#CD
/ opt/mapr/hadoop/hadoop- 0.20 。2
#出口HADOOP_CLASSPATH
= '/
opt/mapr/hbase/hbase-0.94.12/bin/hbase类路径'
#。/
bin中/的hadoop的jar / opt/mapr/hbase/hbase- 0.94 。12 /
HBase的- 0.94 ,12 。罐出口的t1
/ hbase/export_t1
11 / 09 / 28 09 :35 :11 信息mapreduce.Export:verisons
= 1 ,STARTTIME
= 0 ,
结束时间= 9223372036854775807
11 / 09 / 28 09 :35 :11 信息fs.JobTrackerWatcher:当前运行的JobTracker的是:
嘉黎-ubuntu的/ 10.250 。1.91 :9001
11 / 09 / 28 09 :35 :12 信息mapred.JobClient:正在运行的作业:job_201109280920_0003
11 / 09 / 28 09 :35 :13 信息mapred.JobClient:地图0 %减少0 %
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:作业完成:job_201109280920_0003
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:计数器:15
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:招聘计数器
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:的总执行时间
映射器(MS)= 3259
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:所有花费的总时间减少
预留槽后等待(毫秒)= 0
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:所有地图花费的总时间
预留槽后等待(毫秒)= 0
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:推出map任务= 1
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:数据本地地图任务= 1
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:的总执行时间
减速器(毫秒)= 0
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:FileSystemCounters
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:FILE_BYTES_WRITTEN
= 61319
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:的Map-Reduce框架
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:地图输入
记录= 5
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:PHYSICAL_MEMORY_BYTES
= 107991040
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:溢出的记录= 0
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:CPU_MILLISECONDS
= 780
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:VIRTUAL_MEMORY_BYTES
= 759836672
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:地图输出记录= 5
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:SPLIT_RAW_BYTES
= 63
11 / 09 / 28 09 :35 :19 信息mapred.JobClient:GC经过的时间(毫秒)= 35
|
HBase的最佳实践
-
HBase的预写日志(WAL)写道许多微小的记录,并压缩它会导致大量的CPU负载。使用HBase的之前,请关闭MAPR压缩目录中的HBase的体积(通常安装在
/ HBase的例子:hadoop的MFS-setcompression关闭/ HBase的 -
您可以检查压缩是否被关闭在一个目录或安装的卷使用
Hadoop的MFS列出该文件的内容。例如:hadoop的MFS-LS / HBase的信
Ž在输出表示压缩被接通;信ü表示压缩是关 闭的。看到hadoop的MFS获取更多信息。 - 在计划同时运行HBase的和MapReduce,在文件服务器提供更多的内存比到RegionServer,这样的节点都可以处理高吞吐量的任何节点。例如,24 GB的物理内存的节点上,它可能是可取的RegionServer限制为4 GB,给予10 GB到MAPR-FS,给剩下的人TaskTracker必须。要更改分配给每个服务的存储,编辑
/选择/ MAPR / conf /中warden.conf文件。见 调整您的MAPR安装 的更多信息。 -
您可以启动和停止HBase的一样的MAPR其他服务。例如,使用下面的命令来关闭HBase的跨集群:
RegionServer nodes>的maprcli节点服务 - hbregionserver停止节点<listHBase的主nodes>的maprcli节点服务 - hbmaster停止节点<list