HBase 参考文书档案翻译之 Getting Started

  本篇是对HBase官方参考文档的大致翻译,介于自个儿英文水准实际上点儿,难免有纰漏之处。本篇不只是对合法文书档案的翻译,还到场了1些本身对HBase的明白。在翻译进度中,1些一向不营养的废话,笔者就忽略了未曾翻译。本篇依照201陆年 5、6 月 最新版的 http://hbase.apache.org/book.html
举行翻译,此时:

  web service
是三个平台独立的、低耦合的、自包罗的、基于编制程序的web的应用程序,可选拔支付的XML(标准通用标记语言下的叁个字表)标准来讲述、宣布、发现、协调和安排那一个应用程序,用于开发分布式的互操作的应用程序。

  澳门美高梅手机网站 1

  web
service技术能使得运维在分裂机器上的分歧采用无须借助附加的、专门的第1方软件或硬件就可互相交流数据或合并。依照webservice规范实施应用之间,无论他们所运用的语言,平台或内部协议是怎么,都得以互相交换数据。webservice是自描述、自包罗的可用网络模块、可进行实际工作职能。webservice也易于安顿,因为她们基于壹些常规的家底标准以及已有个别某些技艺,诸如标准通用标记语言下的子集XML/HTTP.webservice减少了动用接口的开支,webservice为1切集团甚至多个团体之间的业务流程集成提供了贰个通用机制。

  而 stable 文件夹中的内容:

 

澳门美高梅手机网站 2

一.创办二个webservice并调用


(一)打开vs20一3,新建空项目webappservice,注意选取.NET Framework
的版本,那里选取.NET Framework4.五.

Getting Started(准备上马)
1、简介
  文书档案将带你搭建和运维二个单节点、单实例的HBase,随后是二个伪分布式的单机实例,最终是二个一心分布式的集群。
二、飞速开始–单机方式HBase
  本指南描述的是在地头文件系统中搭建单机形式下的HBase。对于贰个HBase生产环境下的实例来说,那是不适当的布局,可是,在本土测试意况下运转是允许的。本章节即将像您来得使用HBase
shell 命令制造三个表,插入数据,对表进行put和scan操作,enable 可能disable
表,并且运维和平息HBase。除去下载HBase,整个进度应该不超过10分钟。
  在本半夏件系统下使用HBase不保证耐久性。假使文件未平常关闭,本地HDFS文件系统落成将遗失编辑的始末。当您试用新软件时这是很有希望爆发的,平日起步和甘休守护进度日常是并不干净的。你须求保障在HDFS运维HBase所有的写入是早已保存了的。针对地点文件系统的周转能够让您神速熟谙怎么着生产系统任务,获取第三阶段的评介。关于地点文件系统上的题材更详细的讲述,请访问
HBASE-36九六 。
  在HBase 0.9肆.X 版本在此以前,HBase期望的IP地址是
12七.0.0.一。Ubuntu及片段其余分支暗中认可是 1贰七.0.0.一,那将给您带来劳动。
  *** Example 1. 对于Ubuntu,HBase
0.玖四.x及最初版本正确的陈设如下。假诺你陷入困境,请使用如下配置。

澳门美高梅手机网站 3

127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu

 

二.壹、JDK版本须要
  *** HBase 0.玖8.5 及
更新版本,必须在集群的每3个节点设置JAVA_HOME。hbase-env.sh提供了三个造福的机制。

(贰)右击项目webappservice,选用“添加新项 -> web -> web
服务”,命名“mywebservice.asmx”.

澳门美高梅手机网站 4

澳门美高梅手机网站 5

二.二、早先接纳HBase
  步骤:下载,配置,启动。
  (一)、从 Apache Download Mirrors
列表中精选3个下载站。它为您提供HBase发布版的镜像。点击名称为“stable”的文件夹,然后下载以“.tar.gz”结尾的二进制文件到地面文件系统。在HBase
一.X版本此前,一定要挑选你大概用到的Hadoop的更迟版本对应的HBase版本(超越2/四景观下,你应有选拔hadoop
二.X版本的,类似hbase-0.九八.一叁-hadoop贰-bin.tar.gz)。暂且不下载以
“src.tar.gz”结尾的文本。
  (2)、解压下载文件,并开拓目录。

 

$ tar xzvf hbase-<?eval ${project.version}?>-bin.tar.gz 
$ cd hbase-<?eval ${project.version}?>/

澳门美高梅手机网站 6

  (三)、对于HBase 0.九八.伍及将来版本,在开发银行HBase前,你须要设置JAVA_HOME环境变量。在HBase
0.玖捌.伍事先,假诺未有安装环境变量,HBase尝试检查测试Java的职位。你能够经过操作系统的形似机制来设置环境变量,但HBase提供3在那之中枢机制
conf/hbase-env.sh 。编辑该文件,撤废 JAVA_HOME
前的注释符,并安装你本机适当的岗位。
  ***
这一个命令即使集群的各样节点都施用同样的配备。假使不平等,你须要单独设置每种节点。
  (4)、编辑 conf/hbase-site.xml
这些HBase主配置文件。那时候,你仅须要钦定地方文件系统中HBase和Zookeeper写多少的目录即可。暗中同意是在/tmp目录下新建三个目录。许多机器在重启后是会去除/tmp目录内容的,所以您需求仓库储存数据到别处。上边包车型客车计划将积存HBase的多寡在testuser用户主目录下的hbase目录。在标签<configuration>下粘贴<property>标签,在叁个新装置的HBase中那应当是个空的。你不用创设HBase数据目录。HBase会为你这么做。如果您创建了目录,HBase会迁移,而那不是你想要的。
  *** Example 2. HBase的单例形式的 hbase-site.xml 配置:

 

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///home/testuser/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/testuser/zookeeper</value>
    </property>
</configuration>

(三)在mywebservice壹 类中暗许会添加二个 Hello World 方法,作者加一个办法。

  (5)、bin/start-hbase.sh
此脚本为运营HBase提供了方便的不二诀窍。执行命令,在规范输出的日志里能够看到HBase运维成功的音信。你能够应用
jps 命令来确认你有一个正在运作的拓展 HMaster。在 HBase
的单例格局中,全数的劳务都运转在同壹JVM中,如 HMaster,单例的
HRegionServer 和 ZooKeeper 的看护进度。
  步骤:使用HBase
  1)、连接HBase。
在HBase安装目录下bin/ 目录下利用 hbase shell
命令连接正在运维的HBase实例。在底下那几个例子中,当您运营HBase Shell
并忽略打字与印刷的壹对用法和版本音信后,HBase Shell 是以字符‘>’结尾。

 /// <summary>
        /// 姓名+年龄
        /// </summary>
        /// <param name="name"></param>
        /// <param name="age"></param>
        /// <returns></returns>
        [WebMethod]
        public string people(string name, string age)
        {
            return "姓名:" + name + "年龄:" + age;
        }
$ ./bin/hbase shell
hbase(main):001:0>

(四)直接在浏览器中浏览MyWebService一.asmx

澳门美高梅手机网站,  贰)、预览 HBase Shell 的帮带文本。
  输入 help 并点击回车,能够看看一些主导的HBase Shell
用法消息,以及部分示范命令。
  三)、创立1个表。
  使用 create 命令创制1个表,你不能够不履行多少个表名和列族名。

(伍)单机那么些方法people,如下图

hbase(main):001:0> create 'test', 'cf' 
0 row(s) in 0.4170 seconds 
=> Hbase::Table - test

澳门美高梅手机网站 7

  四)、关于你的表的列表新闻。
  使用 list 命令:

 

hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds
=> ["test"]

澳门美高梅手机网站 8

  五)、插入数据到表中。
  使用 put 命令插入数据。

(陆)直接调用,效果如图。

hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1' 
0 row(s) in 0.0850 seconds 
hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2' 
0 row(s) in 0.0110 seconds 
hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3' 
0 row(s) in 0.0100 seconds

澳门美高梅手机网站 9

        在这边,大家往 test
表中各种插入了三条数据。首先插入了一条rowkey为row1、列为 cf:a、值为
value一 的数码。HBase中的列是包罗列族前缀的,在那么些例子中,冒号前的为列族
cf ,冒号后的为列限定符 a 。

重临是三个XML文件,在品种花费中,大家壹般不这么的调用,而是通过添加web引用的不二等秘书籍。

  陆)、扫描表的满贯数目。

故而,在供给引用webservice的时候,要求将此服务运作起来。右击,“在浏览器中查阅”,当然那web服务就在IIS
Express里面了。

  从HBase获取数据的门路之1就是 scan 。使用 scan
命令扫描表数据。你能够对扫描做限定,可是未来,获取全体的多寡。

 

hbase(main):006:0> scan 'test' 
ROW       COLUMN+CELL 
row1     column=cf:a, timestamp=1421762485768, value=value1 
row2     column=cf:b, timestamp=1421762491785, value=value2 
row3     column=cf:c, timestamp=1421762496210, value=value3 
3 row(s) in 0.0230 seconds

(柒)右击项目webapp瑟维斯,采取“添加->新建项->web窗体”,命名WebForm1.aspx,并在其间添加内容:

  7)、获取一条数据。

       <div>
            <table>
                <tr>
                    <td>姓名</td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
                </tr>
                <tr>
                    <td>年龄</td>
                    <td>
                        <asp:TextBox ID="txtAge" runat="server"></asp:TextBox></td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <asp:Button ID="btnAction" runat="server" Text="执行" />
                    </td>
                </tr>
                <tr>
                     <td>结果</td>
                   <td> <asp:TextBox ID="txtResult" runat="server"></asp:TextBox></td>

                </tr>
            </table>
        </div>
    </form>

  使用 get 命令3遍拿走一条数据。

(八)在类型右击”添加服务引用”,点击“发现”

hbase(main):007:0> get 'test', 'row1'
COLUMN                    CELL
cf:a                      timestamp=1421762485768, value=value1
1 row(s) in 0.0350 seconds  

澳门美高梅手机网站 10

  捌)、禁止使用二个表。

 

  如若您想删除3个表或然转移表的设置,以及部分任何的风貌,首先你供给运用
disable 命令禁止使用表。你能够动用 enable 命令“反禁止使用”即启用表。

理所当然,借使大家把web服务配置到IIS上,也得以一贯在地点栏中输入web服务地点,然后单击“转到”按钮。

hbase(main):008:0> disable 'test' 
0 row(s) in 1.1820 seconds 
hbase(main):009:0> enable 'test' 
0 row(s) in 0.1770 seconds

(玖)webForm一后台代码:

  9)、删除表。

 /// <summary>
       /// 执行
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
        protected void btnAction_Click(object sender, EventArgs e)
        {
            ServiceReference1.MyWebService1SoapClient _client = new ServiceReference1.MyWebService1SoapClient();
            txtResult.Text = _client.people(txtName.Text.Trim(), txtAge.Text.Trim());
        }

  使用 drop 命令删除二个表。 

(拾)右击webForm壹.aspx,在;浏览器中查阅,运转结果如图,(注:不要关闭在浏览器中打开的http://localhost:50785/MyWebService1.asmx)

hbase(main):011:0> drop 'test' 
0 row(s) in 0.1370 seconds

澳门美高梅手机网站 11

  10)、退出。

为了有利于,那里一向在档次中运作MyWebService1.asmx此服务。一般在类型中,我们会把全体的web服务单独置于多少个web站点,然后发表到服务器IIS上面。

  使用 quit 命令退出命令行并从集群断开连接。HBase 依然在后台运转。

 

  步骤:停止HBase。

  1)、bin/start-hbase.sh 那一个本子提供了有益的起步全体 HBase
服务,同样地,bin/stop-hbase.sh 脚本用来终止全体HBase服务。

$ ./bin/stop-hbase.sh
stopping hbase....................

  二)、在利用那些命令后,它恐怕须要过几分钟才能停掉服务进度。使用
jps 命令来认同 HMaster 和 HRegionServer 进度是不是关闭。

二.3 中级 —–
本地伪分布式安装

  在您读书过后边内容后,你要重新配置 HBase
来运作伪分布式形式。伪分布式情势的意趣是 HBase
依然在一台机械上完全的运作,但是,每种HBase
服务(HMaster,HRegionServer,Zookeeper)是在单身的三个历程中运作。暗中认可的,假若你像上边描述的相同未有配置
hbase.rootdir ,你的多寡照旧存款和储蓄在 /tmp
目录下。在本文的稍后有的中,要是你有可用的HDFS,我们存款和储蓄数据在HDFS。你能够略过HDFS配置后续存款和储蓄你的数码在当三步跳件系统。

  (一)、假诺正在运维,请先停掉HBase。

  要是您完了了单例方式的HBase并且正在运作,请停掉它。这些手续将完全的创立一个储存HBase数据的新目录,所以在此以前您创设的数据库将遗失。

  (2)、配置HBase。

  编辑 hbase-site.xml 进行布署。首先,添加 property,使 HBase
以分布式方式运作,并且1个 JVM 实例化多少个守护进度。

<property> 
    <name>hbase.cluster.distributed</name> 
    <value>true</value> 
</property>

  接下去,把 hbase.rootdir
的布置从本半夏件系统改为您的HDFS实例的地方,并选用 hdfs:// 早先的 UMuranoL
语法。下边那几个事例中,HDFS是运作在地面端口 8020。

<property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:8020/hbase</value>
</property>

  你不要求在HDFS中创立 /hbase
目录,HBase会自动创设。可是,借使你成立了 /hbase
目录,HBase会尝试移动,而那不是您想要的。

  (3)、启动HBase。

  使用 bin/start-hbase.sh 命令运转HBase。假如您安顿妥贴,使用 jps
命令能够查阅到 HMaster 和 HRegionServer 进度正在运营。

  (4)、检查 HDFS 中 HBase 目录。

  假若一切不荒谬,HBase 会在 HDFS 创设目录。在布置文件中,是储存在HDFS的
/hbase 目录。你能够应用 hadoop fs 命令查看那几个目录。

$ hadoop fs -ls /hbase
Found 7 items
drwxr-xr-x   - hbase users          0 2014-06-25 18:58 /hbase/.tmp
drwxr-xr-x   - hbase users          0 2014-06-25 21:49 /hbase/WALs
drwxr-xr-x   - hbase users          0 2014-06-25 18:48 /hbase/corrupt
drwxr-xr-x   - hbase users          0 2014-06-25 18:58 /hbase/data
-rw-r--r--   3 hbase users         42 2014-06-25 18:41 /hbase/hbase.id
-rw-r--r--   3 hbase users          7 2014-06-25 18:41 /hbase/hbase.version
drwxr-xr-x   - hbase users          0 2014-06-25 21:49 /hbase/oldWALs

  (5)、创立八个表,并插入数据。

  你能够选取 HBase Shell 创制二个表,插入数据,并 scanget
数据,使用方法和方面1样。

  (六)、运行和截止2个 HMaster 备份服务器。

  对于生产条件而言在同一个机械上运转多少个 HMaster
实例是不曾意义的,同样的,在生育条件上运转伪分布式情势也是从未有过意义的。

  HMaster 服务器用来治本HBase集群。你能够弄十二个 HMaster,在那之中七个做备份
HMaster 服务器。使用 local-master-backup.sh 运营备份HMaster
。对于每一个你想要运转的 master,能够加上2个参数代表那个 master
的端口。每种HMaster使用多个端口,暗中同意是16010,16020,16030
。端口偏移量添加到那一个端口,所以偏移量为2,备份HMaster会使用16012/16022/1603贰 的端口。以下命令使用
16012/16022/1603二, 16013/16023/1603三, 和16015/16025/16035 作为端口号。

$ ./bin/local-master-backup.sh 2 3 5

  从任何集群中移除某三个备份 master
,你须求找到进度ID(PID)。PID存储在称呼类似于
/tmp/hbase-USE中华V-X-master.pid 的公文中。你能够运用 kill -九命令来杀死那几个PID。上面包车型大巴指令将从正值运行的集群中移除三个端口偏移量为一的
master。

$ cat /tmp/hbase-testuser-1-master.pid |xargs kill -9

  (柒)、运营和甘休附加的 RegionServer 。

  HRegionServer 在 HMaster 的教导下管理 storefile
中的数据。壹般的,贰个 HRegionServer
在集群的各种节点上运行。伪分布式情势下在二个种类中运转三个HRegionServer
对于测试是实用的。local-regionservers.sh 命令允许你运转多少个RegionServer。它的行事规律类似于 local-master-backup.sh
命令,你提供的参数代表实例端口偏移量。各样 RegionServer
必要三个端口,暗许的是16020和16030 。无论如何,附属类小部件的 RegionServer
的基本端口不可能选拔暗中同意的,因为默许端口被HMaster 端口占用,那也是 HBase
一.0.0 版本 RegionServer
的三个用到。基本端口用16200和16300代表。在同1台机械上,你能够运作玖拾陆个附加的RegionServer,不是HMaster或然备份HMaster。上边那些命令运维6个附件的
RegionServer ,运维在从 16202/1630二 起始接连的端口(16200/16300
端口每趟加二)。

$ .bin/local-regionservers.sh start 2 3 4 5

  使用 local-regionservers.sh 命令加上 stop
参数及服务器端口偏移量手动地平息二个RegionServer 

$ .bin/local-regionservers.sh stop 3

2.四 高级 —–  完全分布式

  实际上,你须要二个通通分布式配置并且利用真实风貌去完全的测试HBase。在贰个分布式配置中,贰个集群包涵多少个节点,每种节点运转3个还是五个HBase 守护进度。他们带有主 HMaster 和备份 HMaster 实例,七个 Zookeeper
节点,和多个 RegionServer 节点。

  添加大于四个的节点到你的集群,实例如下:

  表壹. 分布式集群样例模板

澳门美高梅手机网站 12

  这些示例选用各样节点是在同一网段的虚拟机。分布式形式的搭建是基于在此以前的伪分布式的搭建,假诺从前的安顿步骤是在以往的
node-a 节点。截止掉 HBase 后再持续。

  !请保管各样节点的防火墙关闭。

  步骤:配置SSH互信

  (略过,请自行 谷歌 可能某度!)

  手续:准备节点 node-a

  node-a 节点用来运行主 master 和 Zookeeper 进程,不过没有RegeionServer 。

  (一)、编辑 cong/regionservers ,并且移除 lcoalhost 行。然后添加
node-b 和 node-c 的主机名或然IP地址。

  即便你想要在节点 node-a 节点运转 RegionServer
,你应该保险各主机间能够互相通信。那使你能够配备分发到别的主机争持的节点。保存文件。

  (二)、配置 HBase 使 node-b 节点作为备份 master。

  创立2个新的文件 conf/backup-masters
,并添加新的一行主机名–node-b。在本例中,主机名是 node-b.example.com。

  (3)、配置 Zookeeper。

  实际上,你要求小心的考虑 Zookeeper 的布置。关于
Zookeeper的更加多配备,下边有特意解释。

  在节点 node-a ,编辑 conf/hbase-site.xml ,添加以下配置。

<property>
    <name>hbase.zookeeper.quorum</name>
    <value>node-a.example.com,node-b.example.com,node-c.example.com</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/zookeeper</value>
</property>

  步骤:准备 node-c 和 node-b

  node-c 上即将运维备份 master 和 1个 Zookeeper 实例。

  (壹)、下载和平化解压 HBase

  下载和平消除压 HBase 到 node-b ,就好像在此之前单机情势和为分布式形式1样。

  (2)、从 node-a 节点复制配置文件到 node-b 和 node-c。

  集群上各种节点都应该保持1如既往的布局。复制目录 conf/ 内容到 node-b 和
node-c 目录下。

  步骤:运行和测试你的集群

  (一)、在各节点上确认HBase没有运营。

  假诺此前测试的时候你忘掉停掉 HBase,你就要报错的。使用 jps
命令检测每台机械上的 HBase 是不是运行。看下是不是留存进程HMaster、HRegionServer、HQuorumPeer,假使存在,kill 掉。

  (贰)、运营集群。

  在节点 node-a 上,执行 start-hbase.sh
命令。你将见到和下部相似的出口。

$ bin/start-hbase.sh
node-c.example.com: starting zookeeper, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-h         buser-zookeeper-node-c.example.com.out
node-a.example.com: starting zookeeper, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-h        buser-zookeeper-node-a.example.com.out
node-b.example.com: starting zookeeper, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-h        buser-zookeeper-node-b.example.com.out
starting master, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-master-node-a.exa            mple.com.out
node-c.example.com: starting regionserver, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-        hbuser-regionserver-node-c.example.com.out
node-b.example.com: starting regionserver, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-        hbuser-regionserver-node-b.example.com.out
node-b.example.com: starting master, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbus        er-master-nodeb.example.com.out

  首先运行 Zookeeper ,然后是 master ,然后是 RegionServer, 最终是
备份 master。

  (三)、检查测试进度是或不是运转。

  在每台节点上运维 jps 命令,检查测试每个机器上的呼应进度是不是运维。

  Example 3. node-a jps Output

$ jps
20355 Jps
20071 HQuorumPeer
20137 HMaster

  Example 4. node-b jps Output

$ jps
15930 HRegionServer
16194 Jps
15838 HQuorumPeer
16010 HMaster

  Example 5. node-a jps Output

$ jps
13901 Jps
13639 HQuorumPeer
13737 HRegionServer

  !Zookeeper 进程名

  HQuorumPeer 进度是用来治本和运维HBase的 Zookeeper
实例。纵然你依据那种格局利用
Zookeeper,那么他将被限定在集群每一种节点上运营一个实例,那只是适用于测试。即使Zookeeper 是运作在 HBase 外,进程名正是 QuorumPeer 。

  (4)、浏览器 WEB UI

  在 HBase 0.九八.X 更高版本,HBase Web 界面包车型地铁 HTTP 端口从 Master 的
600十 和 每一种 RegionServer 的 60030 改变为 Master 的 16010 和
RegionServer 的16030 。

  假使一切准备妥贴,你应当力所能及利用 web 浏览器连接到 Master
http://node-a.example.com:16010/ 和第二Master 的
http://node-b.example.com:16010/。如果你可以通过 localhost
连接,但不能从其它主机连接,请检查你的防火墙配置。

  (五)、测试节点依然服务器消失会发生什么。

  如上配备的八个节点的集群,并不是有弹性的。尽管如此,你照样能够测试当主
Master 或许 RegionServer消失产生哪些,杀死进度并查看日志。

3、下一站

  下1章节,将要讲述关于 HBase 相关的新闻,关于差异 HBase
的运维情势,HBase的运行时系统铺排,3个分布式 HBase 集群的临界配置区域。

发表评论

电子邮件地址不会被公开。 必填项已用*标注