下载吧 其他软件

分类分类

Apache HBase(分布式数据库)

Apache HBase(分布式数据库)

v2.4.1 官方版

大小:35.1 MB 更新:2024/12/25

类别:其他软件系统:WinAll

立即下载

  Apache HBase是一个功能强大、专业实用的Hadoop数据库软件,是一个分布式、可扩展的大数据存储管理工具,实用这款软件用户可以随时随地进行专业高效的数据库读写和仿写,使用这款软件用户可以在商品硬件群集上托管非常大的数据表,通过这款数据库管理软件用户可以对数十亿行X数百万列的庞大数据进行管理和处理;Apache HBase是一种开放源分布式的非关系型数据库管理软件,使用该软件用户可以对存储数据进行分化管理,方便用户对各项数据进行查找和使用,该软件拥有其他数据库软件的基本操作功能,非常简单易用。

Apache HBase(分布式数据库)

软件功能

  RegionServer之间的自动故障转移支持

  方便的基类,用于通过Apache HBase表备份Hadoop MapReduce作业

  块缓存和布隆过滤器用于实时查询。

  通过服务器端过滤器查询谓词下推

  Thrift网关和REST-ful Web服务,支持XML,Protobuf和二进制数据编码选项

  可扩展的基于Jruby的(JIRB)Shell

  支持通过Hadoop指标子系统将指标导出到文件或Ganglia

软件特色

  1、Apache HBase绿色安全、免费开源

  2、功能强大、简单易用

  3、线性和模块化可扩展性

  4、拥有严格专业的读写

  5、支持表的自动和可配置分片

  6、易于使用的Java API用于客户端访问

官方教程

  过程:以独立模式下载,配置和启动HBase

  从此Apache下载镜像列表中选择一个下载站点。单击建议的顶部链接。这将带您了解HBase版本。单击名为稳定的文件夹,然后将以.tar.gz结尾的二进制文件下载到本地文件系统。现在不要下载以src.tar.gz结尾的文件。

  解压缩下载的文件,然后转到新创建的目录。

Apache HBase(分布式数据库)

  您必须JAVA_HOME在启动HBase之前设置环境变量。为了使此操作更容易,HBase允许您在conf / hbase-env.sh文件中进行设置。您必须找到Java在计算机上的安装位置,一种查找方法是使用whereis java命令。找到位置后,编辑conf / hbase-env.sh文件,并取消注释以#export JAVA_HOME =开头的行,然后将其设置为Java安装路径。

  从实施例提取物hbase-env.sh其中JAVA_HOME是集

Apache HBase(分布式数据库)

  提供bin / start-hbase.sh脚本是启动HBase的便捷方法。发出命令,如果一切顺利,则会在标准输出中记录一条消息,表明HBase已成功启动。您可以使用该jps命令来验证是否有一个名为的正在运行的进程HMaster。在独立模式下,HBase在此单个JVM中运行所有守护程序,即HMaster,单个HRegionServer和ZooKeeper守护程序。转到http:// localhost:16010查看HBase Web UI。

  过程:首次使用HBase

  连接到HBase。

  使用hbase shell位于HBase安装目录bin /目录中的命令连接到正在运行的HBase实例。在此示例中,省略了启动HBase Shell时打印的一些用法和版本信息。HBase Shell提示符以一个>字符结尾。

Apache HBase(分布式数据库)

  显示HBase Shell帮助文本。

  键入help并按Enter键,以显示HBase Shell的一些基本用法信息以及一些示例命令。注意,表名,行,列都必须用引号引起来。

  创建一个表。

  使用create命令创建一个新表。您必须指定表名称和ColumnFamily名称。

Apache HBase(分布式数据库)

  列出有关表的信息

  使用list命令确认您的表存在

Apache HBase(分布式数据库)

  现在使用describe命令查看详细信息,包括配置默认值

Apache HBase(分布式数据库)

  将数据放入表中。

  要将数据放入表中,请使用put命令。

Apache HBase(分布式数据库)

  在这里,我们插入三个值,一次插入一个。第一个插入在的row1列cf:a,值为value1。cf在本例中,HBase中的列由列族前缀组成,后跟冒号,然后是列限定符后缀a。

  一次扫描表中的所有数据。

  从HBase获取数据的一种方法是扫描。使用scan命令扫描表中的数据。您可以限制扫描,但是目前,所有数据都已获取。

Apache HBase(分布式数据库)

  获取单行数据。

  要一次获取一行数据,请使用get命令。

Apache HBase(分布式数据库)

  禁用表格。

  如果要删除表或更改其设置,以及在某些其他情况下,则需要先使用disable命令禁用该表。您可以使用enable命令重新启用它。

Apache HBase(分布式数据库)

  放下桌子。

  要删除(删除)表,请使用drop命令。

Apache HBase(分布式数据库)

  退出HBase Shell。

  要退出HBase Shell并从群集断开连接,请使用以下quit命令。HBase仍在后台运行。

  过程:停止HBase

  与提供bin / start-hbase.sh脚本以方便启动所有HBase守护程序相同,bin / stop-hbase.sh 脚本将停止它们。

Apache HBase(分布式数据库)

  发出命令后,进程可能需要几分钟才能关闭。使用jps确保HMaster和HRegionServer进程已关闭。

  上面显示了如何启动和停止HBase的独立实例。在接下来的部分中,我们将简要概述hbase部署的其他模式。

  2.3。伪分布式用于本地测试

  在快速入门独立模式下工作之后,您可以将HBase重新配置为以伪分布式模式运行。伪分布式模式意味着HBase仍完全在单个主机上运行,但是每个HBase守护程序(HMaster,HRegionServer和ZooKeeper)作为单独的进程运行:在独立模式下,所有守护程序都在一个jvm进程/实例中运行。默认情况下,除非您hbase.rootdir按照快速入门中的说明配置属性 ,否则数据仍存储在/ tmp /中。在本演练中,假设您有可用的HDFS,我们将您的数据存储在HDFS中。您可以跳过HDFS配置,以继续将数据存储在本地文件系统中。

  Hadoop配置

  此过程假定您已在本地系统和/或远程系统上配置了Hadoop和HDFS,并且它们正在运行并且可用。它还假定您正在使用 Hadoop2。Hadoop文档中有关设置单节点群集的指南 是一个很好的起点。

  如果HBase正在运行,请停止它。

  如果您刚刚完成快速入门而HBase仍在运行,请停止它。此过程将创建一个全新的目录,HBase将在该目录中存储其数据,因此您之前创建的所有数据库都将丢失。

  配置HBase。

  编辑hbase-site.xml配置。首先,添加以下属性,该属性指示HBase在分布式模式下运行,每个守护程序一个JVM实例。

Apache HBase(分布式数据库)

  接下来,hbase.rootdir使用hdfs:////URI语法添加的配置,指向您的HDFS实例的地址。在此示例中,HDFS在本地主机上的端口8020上运行。

Apache HBase(分布式数据库)

  您无需在HDFS中创建目录。HBase将为您完成此任务。如果创建目录,则HBase将尝试进行迁移,这不是您想要的。

  最后,删除现有的配置hbase.tmp.dir和hbase.unsafe.stream.capability.enforce,

  启动HBase。

  使用bin / start-hbase.sh命令启动HBase。如果系统配置正确,该jps命令应显示正在运行的HMaster和HRegionServer进程。

  检查HDFS中的HBase目录。

  如果一切正常,则HBase将在HDFS中创建其目录。在上面的配置中,它存储在HDFS上的/ hbase /中。您可以使用hadoop fsHadoop的bin /目录中的命令列出该目录。

Apache HBase(分布式数据库)

  创建一个表并用数据填充它。

  您可以使用HBase Shell创建一个表,使用数据填充该表,扫描并从中获取值,方法与Shell练习中相同。

  启动和停止备用HBase主服务器(HMaster)服务器。

  在生产环境中,在同一硬件上运行多个HMaster实例没有任何意义,就像在生产环境中运行伪分布式集群一样。此步骤仅用于测试和学习目的。

  HMaster服务器控制HBase群集。您最多可以启动9台备用HMaster服务器,这使总数为10台HMaster主机(包括主服务器)成为可能。要启动备份HMaster,请使用local-master-backup.sh。对于要启动的每个备份主服务器,添加一个代表该主服务器的端口偏移量的参数。每个HMaster使用两个端口(默认情况下为16000和16010)。端口偏移量已添加到这些端口,因此使用偏移量2时,备份HMaster将使用端口16002和16012。以下命令使用端口16002 / 16012、16003 / 16013和16005/16015启动3个备份服务器。

Apache HBase(分布式数据库)

  要杀死备份主服务器而不杀死整个集群,您需要找到其进程ID(PID)。PID以类似/tmp/hbase-USER-X-master.pid的名称存储在文件中。该文件的唯一内容是PID。您可以使用kill -9命令杀死该PID。以下命令将杀死端口偏移为1的主服务器,但使集群保持运行状态:

Apache HBase(分布式数据库)

  启动和停止其他RegionServer

  HRegionServer按照HMaster的指示管理其StoreFiles中的数据。通常,群集中的每个节点都运行一个HRegionServer。在同一系统上运行多个HRegionServer对于在伪分布式模式下进行测试非常有用。该local-regionservers.sh命令允许您运行多个RegionServer。它的工作方式与local-master-backup.sh命令相似,因为您提供的每个参数都代表实例的端口偏移量。每个RegionServer需要两个端口,默认端口为16020和16030。由于HBase版本1.1.0,HMaster不使用区域服务器端口,因此剩下10个端口(16020到16029和16030到16039)用于RegionServer。为了支持其他RegionServer,请在运行脚本之前将环境变量HBASE_RS_BASE_PORT和HBASE_RS_INFO_BASE_PORT设置为适当的值。local-regionservers.sh。例如,对于基本端口,值为16200和16300,可以在服务器上支持99个其他RegionServer。以下命令启动四个附加的RegionServer,它们在从16022/16032开始的顺序端口(基本端口16020/16030加2)上运行。

Apache HBase(分布式数据库)

  要手动停止RegionServer,请使用local-regionservers.sh带有stop参数和服务器偏移量的命令来停止。

Apache HBase(分布式数据库)

  停止HBase。

  您可以使用bin / stop-hbase.sh命令以与快速入门过程中相同的方式停止HBase 。

  2.4。完全分配生产

  实际上,您需要一个完全分布式的配置来全面测试HBase并在实际场景中使用它。在分布式配置中,群集包含多个节点,每个节点运行一个或多个HBase守护程序。其中包括主实例和备份Master实例,多个ZooKeeper节点和多个RegionServer节点。

  此高级快速入门为集群添加了两个以上的节点。架构如下:

Apache HBase(分布式数据库)

  本快速入门假定每个节点都是虚拟机,并且它们都在同一网络上。假设您在该过程中配置的系统现在为,则它以先前的快速入门(用于本地测试的伪分布式)为基础node-a。node-a在继续操作之前,先停止HBase 。

  确保所有节点都具有完全的通信访问权限,并且没有适当的防火墙规则可能阻止它们相互通信。如果看到类似的错误no route to host,请检查防火墙。

  过程:配置无密码的SSH访问

  node-a需要能够登录node-b和node-c(以及本身)才能启动守护程序。完成此操作的最简单方法是在所有主机上使用相同的用户名,并配置其他用户之间的无密码SSH登录node-a。

  在上node-a,生成密钥对。

  以将要运行HBase的用户身份登录后,使用以下命令生成SSH密钥对:

Apache HBase(分布式数据库)

  如果命令成功执行,则将密钥对的位置打印到标准输出。公钥的默认名称是id_rsa.pub。

  创建将在其他节点上保存共享密钥的目录。

  在node-b和上node-c,以HBase用户身份登录,并在用户的主目录中创建一个.ssh /目录(如果尚不存在)。如果已经存在,请注意它可能已经包含其他密钥。

  将公钥复制到其他节点。

  node-a通过使用scp或其他安全方式,将公钥安全地复制到每个节点。在其他每个节点上,创建一个名为.ssh / authorized_keys 的新文件(如果尚不存在),并将id_rsa.pub文件的内容附加到文件末尾。请注意,您还需要自己执行此操作node-a。

Apache HBase(分布式数据库)

  测试无密码登录。

  如果正确执行了该过程,则node-a使用相同的用户名从SSH SSH到其他任何一个节点时,都不会提示您输入密码。

  由于node-b将运行备份主服务器,因此重复上述步骤,替换为node-b您看到的所有位置node-a。确保不要覆盖现有的.ssh / authorized_keys文件,而是使用>>运算符而不是>运算符将新密钥连接到现有文件上。

  程序:准备 node-a

  node-a将运行您的主要master和ZooKeeper进程,但不运行RegionServer。停止RegionServer从启动node-a。

  编辑conf / regionservers并删除包含的行localhost。加入与主机名或IP地址线node-b和node-c。

  即使您确实想在上运行RegionServer node-a,也应使用其他服务器用来与其通信的主机名来引用它。在这种情况下,该值为node-a.example.com。这使您可以将任何主机名冲突将配置分发到群集的每个节点。保存文件。

  配置HBasenode-b用作备份主机。

  在conf /中创建一个名为backup-masters的新文件,并在其中添加新行,其主机名为node-b。在此演示中,主机名是node-b.example.com。

  配置ZooKeeper

  实际上,您应该仔细考虑您的ZooKeeper配置。您可以在zookeeper部分中找到有关配置ZooKeeper的更多信息。此配置将指导HBase在群集的每个节点上启动和管理ZooKeeper实例。

  在上node-a,编辑conf / hbase-site.xml并添加以下属性。

Apache HBase(分布式数据库)

  无处不在的配置,您已经提到node-a的localhost,在参考点切换到主机,其他节点将用来指代node-a。在这些示例中,主机名是node-a.example.com。

  程序:准备node-b并node-c

  node-b 将运行一个备份主服务器和一个ZooKeeper实例。

  下载并解压缩HBase。

  将HBase下载并解压缩到中node-b,就像对独立和伪分布式快速入门所做的那样。

  将配置文件从复制node-a到node-b.and node-c。

  群集的每个节点都需要具有相同的配置信息。将内容复制的conf /目录下的的conf /目录下node-b和node-c。

  过程:启动和测试集群

  确保HBase不在任何节点上运行。

  如果您忘记从先前的测试中停止HBase,则将出现错误。使用jps命令检查HBase是否在您的任何节点上运行。寻找的过程HMaster,HRegionServer和HQuorumPeer。如果它们存在,杀死它们。

  启动集群。

  在上node-a,发出start-hbase.sh命令。您的输出将类似于以下内容。

Apache HBase(分布式数据库)

  ZooKeeper首先启动,然后是主机,然后是RegionServers,最后是备份主机。

  验证进程正在运行。

  在群集的每个节点上,运行jps命令并验证每个服务器上是否正在运行正确的进程。如果将其他Java进程用于其他目的,则可能还会看到它们在服务器上运行。

  node-a jps 输出量

Apache HBase(分布式数据库)

  node-b jps 输出量

Apache HBase(分布式数据库)

  node-c jps 输出量

Apache HBase(分布式数据库)

  ZooKeeper进程名称

  该HQuorumPeer过程是一个由HBase控制和启动的ZooKeeper实例。如果以这种方式使用ZooKeeper,则每个群集节点只能使用一个实例,并且仅适用于测试。如果ZooKeeper在HBase外部运行,则该过程称为QuorumPeer。有关ZooKeeper配置的更多信息,包括将外部ZooKeeper实例与HBase一起使用,请参见zookeeper部分。

  浏览到Web UI。

  Web UI端口更改

  在HBase高于0.98.x的版本中,HBase Web UI使用的HTTP端口从Master的60010和每个RegionServer的60030变为Master的16010和RegionServer的16030。

  如果一切设置正确,则应该可以 使用Web浏览器连接到主服务器http://node-a.example.com:16010/或辅助主服务器的UI http://node-b.example.com:16010/。如果可以通过localhost但不能从其他主机进行连接,请检查防火墙规则。您可以在其IP地址的端口16030上单击每个RegionServer的Web UI,也可以单击主服务器的Web UI中的链接。

  测试当节点或服务消失时会发生什么。

  使用已配置的三节点群集,情况将不会非常灵活。您仍然可以通过终止关联的进程并查看日志来测试主要Master或RegionServer的行为。

  2.5。下一步去哪里

  下一章configuration会提供有关不同HBase运行模式,运行HBase的系统要求以及用于设置分布式HBase群集的关键配置区域的更多信息。

  Apache HBase配置

  本章在“入门”一章的基础上进一步扩展,以进一步说明Apache HBase的配置。请仔细阅读本章,尤其是 基本先决条件,以确保您的HBase测试和部署顺利进行。还要熟悉支持和测试期望。

  3.配置文件

  Apache HBase使用与Apache Hadoop相同的配置系统。所有配置文件都位于conf /目录中,该文件需要与集群中的每个节点保持同步。

  HBase配置文件说明

  备份大师

  默认情况下不存在。一个纯文本文件,其中列出了主机应在其上启动备份主机进程的主机,每行一个主机。

  hadoop-metrics2-hbase.properties

  用于连接HBase Hadoop的Metrics2框架。有关 Metrics2的更多信息,请参见Hadoop Wiki条目。默认情况下仅包含注释掉的示例。

  hbase-env.cmd和hbase-env.sh

  用于Windows和Linux / Unix环境的脚本,用于设置HBase的工作环境,包括Java的位置,Java选项和其他环境变量。该文件包含许多注释掉的示例以提供指导。

  hbase-policy.xml

  RPC服务器用来对客户端请求做出授权决策的默认策略配置文件。仅在启用HBase安全性时使用。

  hbase-site.xml

  HBase主配置文件。该文件指定了覆盖HBase默认配置的配置选项。您可以在docs / hbase-default.xml上查看(但不能编辑)默认配置文件。您还可以在HBase Web UI的“ HBase配置”选项卡中查看集群的整个有效配置(默认值和替代值)。

  log4j.properties

  用于通过HBase记录日志的配置文件log4j。

  区域服务器

  一个纯文本文件,其中包含应在HBase群集中运行RegionServer的主机列表。默认情况下,此文件包含单个条目localhost。它应该包含一个主机名或IP地址的列表,每行一个,并且仅localhost当集群中的每个节点都将在其localhost接口上运行RegionServer时才包含 。

  检查XML有效性

  在编辑XML时,最好使用支持XML的编辑器,以确保语法正确且XML格式正确。您还可以使用该xmllint实用程序来检查XML格式是否正确。默认情况下,xmllint将XML重新流化并打印到标准输出中。要检查格式是否正确并仅在存在错误的情况下才打印输出,请使用命令xmllint -noout filename.xml。

  使配置在整个群集中保持同步

  在分布式模式下运行时,对HBase配置进行编辑后,请确保将conf /目录的内容复制到群集的所有节点。HBase不会为您这样做。使用配置管理工具来管理配置文件并将其复制到您的节点。对于大多数配置,服务器需要重新启动才能获取更改。动态配置是一个例外,下面将对此进行描述。

相关文章
  • 最新排行
  • 最热排行
  • 评分最高
其他软件排行榜

点击查看更多

点击查看更多

点击查看更多