Mapr 安装hadoop的组件(四)——安装hive

来源:互联网 发布:怎样做淘宝客服 编辑:程序博客网 时间:2024/05/02 04:35

Apache的配置单元是使用类似于SQL的语言,称为蜂房查询语言(HQL)查询存储在一个分布式文件系统的结构化数据的数据仓库系统的Hadoop。有关配置单元的详细信息,请参阅Apache的配置单元的项目页面。

本页内容:

  • 安装配置单元,HiveServer2,和Hive Metastore
  • 入门蜂巢
    • 启动蜂巢
    • 管理蜂巢Metastore
    • 管理Hiveserver2
    • 默认配置单元目录
    • 蜂巢暂存目录
    • 蜂巢仓库目录
  • 设置蜂房与一个MySQL Metastore
    • 先决条件
    • 蜂巢配置为MySQL
  • 蜂房,HBase的整合
    • 安装和配置蜂房和HBase的
    • 入门蜂房HBase的整合
    • 入门蜂房MAPR表整合
    • 动物园管理员连接

安装配置单元,HiveServer2,和Hive Metastore

以下过程使用的操作系统软件包管理器,从MAPR存储库下载并安装蜂巢。如果你想从包文件手动安装此组件,请参阅包和依赖关系为MAPR软件。 

由于MAPR版本3.0.2和生态系统释放1310(MAPR - 蜂巢 - * -1310),蜂巢分布为三个包:

  • MAPR -蜂巢 -包含以下组件:
    • 核心蜂房包。
    • HiveServer2 - 允许多个并发连接到蜂巢服务器在网络上。
    • 蜂巢Metastore - 存储元数据配置单元表和分区在关系数据库中。
  • MAPR-hiveserver2 -允许HiveServer2由监狱长进行管理,让您使用maprcli或MAPR控制系统的启动和停止HiveServer2。该MAPR-蜂巢包是一个依赖,如果你安装将安装MAPR-hiveserver2。在安装时,Hiveserver2会自动启动。

  • MAPR-hivemetastore -允许蜂巢Metastore由监狱长进行管理,让您使用maprcli或MAPR控制系统的启动和停止蜂巢Metastore。该  MAPR-蜂巢  包是一个依赖,如果你安装将安装  MAPR-hivemetastore。在安装时,蜂房Metastore会自动启动。

此过程是将一个MAPR集群上执行(参见安装指南)或客户端(请参阅设置客户)。

确保环境变量JAVA_HOME是否设置正确。例如:

#出口JAVA_HOME = / usr/lib/jvm/java- -太阳

确保环境变量HIVE_HOME是否设置正确。例如:

#出口HIVE_HOME = / opt/mapr/hive/hive- <VERSION>

安装蜂巢后,可执行文件位于:/ opt/mapr/hive/hive- <VERSION> /斌/蜂巢

要在Ubuntu的群集上安装蜂巢:

  1. 执行以下命令以或使用sudo的
  2. 更新可用软件包列表:

    apt-get的更新
  3. 在每个计划的蜂巢节点上,安装配置单元。

    • 只安装蜂巢:
      apt-get的安装MAPR-蜂巢 
    • 要安装蜂巢和HiveServer2:

      apt-get的安装MAPR-hiveserver2  
    • 安装配置单元和Hive Metastore:
      apt-get的安装MAPR-hivemetastore 
    • 要安装蜂巢,蜂巢Metastore和HiveServer2:

      apt-get的安装MAPR-hivemetastore MAPR-hiveserver2 

 

图标

此过程安装蜂巢0.11.0。要安装的早期版本,在包名中指定它。请确保安装所有软件包的版本相同。例如:

apt-get的安装MAPR -蜂巢- 0.9 1310

您可以确定与现有版本的apt-缓存麦迪逊MAPR-蜂巢命令。看到蜂巢0.10.0 发行说明的修复和自蜂巢0.9.0的版本中添加的新功能列表。

到Red Hat或CentOS的群集上安装蜂巢:

  1. 执行以下命令以或使用sudo的
  2. 在每个计划的蜂巢节点上,安装配置单元。

    • 只安装蜂巢:
      yum的安装MAPR-蜂巢
       
    • 要安装蜂巢和HiveServer2:

      yum的安装MAPR-hiveserver2  
    • 安装配置单元和Hive Metastore:
      yum的安装MAPR-hivemetastore 
    • 要安装蜂巢,蜂巢Metastore和HiveServer2:

      yum的安装MAPR-hivemetastore MAPR-hiveserver2 



图标

此过程安装蜂巢0.11.0。要安装的早期版本,在包名中指定它。请确保安装所有软件包的版本相同。例如:

yum的安装'MAPR-蜂房-0.9.0-*'

。看到蜂巢0.10.0 发行说明的修复和自蜂巢0.9.0的版本中添加的新功能列表。


入门蜂巢

在本教程中,您将创建一个配置单元表,从一个制表符分隔的文本文件加载数据,并运行情侣对表的基本查询。

图标

如果您使用的是HiveServer2,您将使用比莱恩CLI而不是蜂巢外壳,如下图所示。有关设置HiveServer2和启动比莱恩的详细信息,请参阅使用HiveServer2。

首先,确保你已经下载了示例表:在页面的MAPR虚拟机的巡回赛,选择工具>附件和上单击鼠标右键样品table.txt,选择链接另存为...从弹出菜单,选择一个目录来保存,然后单击确定。如果你正在使用的MAPR虚拟机,我们将在MAPR虚拟机的本地文件系统(而不是群集存储层)加载该文件,所以保存在MAPR主目录的文件(例如,/家/ MAPR)。

看一看在源数据

首先,来看看使用终端的文件的内容:

  1. 请确保你是在保存的主目录样本table.txt(型CD〜如果你不能确定)。
  2. 键入猫样本table.txt显示以下输出。
MAPR @ MAPR 桌面:〜$猫采样table.txt
1320352532 1001 的http:/ / www.mapr.com / DOC http://www.mapr.com 192.168.10.1
1320352533 1002 的http:/ / www.mapr.com http://www.example.com的 192.168.10.10
1320352546 1001 的http:/ / www.mapr.com http://www.mapr.com/doc 192.168.10.1

请注意,该文件只包含三行,每一个都包含一排由制表符分隔的数据字段。该文件中的数据代表一个网络日志。

在配置单元创建一个表,并加载源数据:

  1. 通过编辑设置蜂房暂存目录的位置/ opt/mapr/hive/hive- <VERSION> / conf /中蜂房的site.xml文件中添加以下块,更换的/ tmp / mydir的与路径中的目录用户数量:
    的<p​​roperty>
       <NAME> hive.exec.scratchdir </名称>
       值<value>的/ tmp / mydir的</值>
       <DESCRIPTION>暂存空间 蜂房工作</说明>
     </财产>
    或者,使用-hiveconf hive.exec.scratchdir = 暂存目录选项下面的步骤来指定暂存目录的位置,或使用设置蜂巢exec.scratchdir = 暂存目录在命令行中。
  2. 键入以下命令启动配置单元外壳,使用Tab键完成扩大<VERSION>
    / opt/mapr/hive/hive- 0.9 /斌/蜂巢
  3. 蜂房>提示符下,键入以下命令来创建表:
    CREATE TABLE web_log(viewTime INT,BIGINT用户ID,URL字符串,引用字符串,IP串)TERMINATED BY行格式分隔的字段'\ T' ;
  4. 键入以下命令从数据加载采样table.txt到表:
    LOAD DATA LOCAL INPATH '的/ home / MAPR /采样table.txt' INTO TABLE web_log;

对表运行基本查询:

  • 尝试最简单的查询,一个显示在表中的所有数据:
    选择web_log * FROM web_log。;
    这个查询是不明智的一个大表,但与小样本表很迅速恢复。
  • 尝试一个简单的SELECT来提取所需的字符串匹配唯一的数据:
    选择web_log * FROM web_log WHERE web_log.url等。'%DOC' ;
    这个查询会启动一个MapReduce作业来筛选数据。

启动蜂巢

您可以使用启动配置单元外壳蜂巢命令。当蜂巢外壳启动时,它会读取称为初始化文件。hiverc其位于HIVE_HOME /斌/$ HOME /目录。您可以编辑这个文件来设置初始化蜂房命令行环境,每行一个命令自定义参数或命令。

当您运行配置单元外壳,可以指定使用一个MySQL初始化脚本文件-I选项。例如:

蜂房,我<FILENAME>

管理蜂巢Metastore

由于MAPR版本3.0.2,蜂房Metastore会自动由监狱长在安装时,如果启动  MAPR-hivemetastore 安装包。它有时需要启动或停止服务(例如,更改配置后),  您可以启动和停止蜂巢Metastore在两个方面:

  • 使用maprcli节点服务的命令-使用此命令,你可以在同一时间启动蜂巢Metastore在多个节点上。
  • 使用MAPR控制系统

 

若要使用maprcli启动蜂巢Metastore:

  1. 使在其上配置单元Metastore配置的节点的列表。
  2. 发行maprcli节点服务的命令,指明其蜂巢Metastore配置,以空格分隔的节点。例如:

    maprcli节点服务名称hivemetastore行动启动节点node001的node002 node003

要使用maprcli停止蜂巢Metastore:

  1. 使在其上配置单元Metastore配置的节点的列表。
  2. 发行maprcli节点服务的命令,指明其蜂巢Metastore配置,以空格分隔的节点。例如:

    maprcli节点服务名称hivemetastore行动停止节点node001的node002 node003

要启动或使用MAPR控制系统停止蜂巢Metastore:

  1. 在导航窗格中,展开群集视图窗格,然后单击  控制面板
  2. 在服务窗格中,单击  配置单元Metastore 打开节点显示屏幕上所有的蜂巢Metastore配置的节点。
  3. 在节点屏幕上,单击每个节点的主机名来显示其节点属性的屏幕。
  4. 在每个节点属性屏幕上,使用  停止/启动  下管理服务的蜂房Metastore排按钮,开始配置单元Metastore。

管理Hiveserver2

由于MAPR版本3.0.2,Hiveserver2会自动在安装时如果开始由监狱长MAPR-hiveserver2安装包。它有时需要启动或停止服务(例如,更改配置后),  您可以启动和停止Hiveserver2在两个方面:

  • 使用maprcli节点服务的命令-使用此命令,你可以在同一时间在多个节点上启动Hiveserver2。
  • 使用MAPR控制系统

 

若要使用maprcli开始Hiveserver2:

  1. 使在其上Hiveserver2配置的节点的列表。
  2. 发行maprcli节点服务的命令,指明其Hiveserver2配置,以空格分隔的节点。例如:

    maprcli节点服务名称hiveserver2行动启动节点node001的node002 node003

要使用maprcli停止Hiveserver2:

  1. 使在其上Hiveserver2配置的节点的列表。
  2. 发行maprcli节点服务的命令,指明其Hiveserver2配置,以空格分隔的节点。例如:

    maprcli节点服务名称hiveserver2行动停止节点node001的node002 node003

要启动或使用MAPR控制系统停止Hiveserver2:

  1. 在导航窗格中,展开群集视图窗格,然后单击  控制面板
  2. 在服务窗格中,单击Hiveserver2 打开节点显示屏幕上所有的Hiveserver2配置的节点。
  3. 在节点屏幕上,单击每个节点的主机名来显示其节点属性的屏幕。
  4. 在每个节点属性屏幕上,使用停止/启动  下管理服务的Hiveserver2排按钮开始Hiveserver2。

采用蜂巢与MAPR卷

在你运行一个作业,设置在蜂房暂存目录和Hive仓库目录相同的地方所在的蜂房作业的数据量。这是最有效的方式来设置的目录结构。如果蜂房暂存目录和蜂巢仓库目录是在不同的卷,蜂房需要移动数据通过量,比相同体积内的移动速度较慢。

在早期MAPR版本(2.1之前的版本),设置在不同的MAPR卷的划痕和仓库的目录可能会导致错误。

以下部分提供了额外的细节准备卷和目录与蜂巢的使用。

默认配置单元目录

这是没有必要创建和文件模式蜂房的/ tmp/用户/蜂巢/仓库目录中MAPR集群。默认情况下,MAPR创建,当你创建你的第一个蜂房表配置这些目录为您服务。

这些默认目录中定义的$ HIVE_HOME / conf /中蜂房-default.xml中的文件:

的<configuration>
  ...
  的<p​​roperty>
    <NAME> hive.exec.scratchdir </名称>
    值<value> / tmp/hive- $ \ {user.name} </值>
    <DESCRIPTION>暂存空间 蜂房工作</说明>
  </财产>
 
  的<p​​roperty>
    <NAME> hive.metastore.warehouse.dir </名称>
    值<value> /用户/蜂巢/仓库</值>
    的<DESCRIPTION>位置默认 数据库 仓库</说明>
  </财产>
  ...
</配置>

如果您需要修改其中的一个目录或两者的默认名称,创建一个$ HIVE_HOME / conf /中蜂房-site.xml中为此文件,如果它不存在。

复制hive.exec.scratchdir和/或hive.metastore.warehouse.dir从属性的元素蜂房-default.xml中的文件,并将其粘贴到一个XML配置元素蜂房的site.xml文件。修改这些目录中的价值元素在蜂房的site.xml为所需的文件,然后保存并关闭该蜂房的site.xml文件并关闭蜂房-default.xml中的文件。

蜂巢暂存目录

运行在从MAPR量数据,设置导入作业时hive.exec.scratchdir到一个目录中的同一地方居住作业的数据量。该目录应该是下卷的挂载点(如在观察成交量属性) -例如,/ tmp目录

您可以从蜂巢shell中设置此参数。例如:

蜂巢>设置hive.exec.scratchdir = / myvolume / tmp目录

如何蜂巢把手划伤目录上MAPR

当一个查询需要  ,需要配置单元来查询现有的表和数据创建新表,蜂房使用以下工作流程:

  1. 创建查询暂存目录  hive_ 的<timestamp> _ <randomnumber>  下  /用户/ <USERNAME>的/ tmp /蜂巢。你可以用配置此目录的位置  hive.exec.scratchdir  参数  蜂房的site.xml

  2. 创建以下目录作为临时目录的子目录:

    1. 最终的查询输出目录。此目录的名称的形式为  -EXT- <number>个

    2. 输出目录为每个MapReduce作业。这些目录名的形式为  -MR- <number>个

  3. 蜂巢执行任务,包括MapReduce作业,并加载数据到查询输出目录。

  4. 加载配置单元从输出目录中的数据插入表中。默认情况下,该表的目录是在  /用户/蜂巢/仓库  目录。您可以配置此位置,  hive.metastore.warehouse.dir 参数在  蜂房-site.xml中,除非该表的DDL指定自定义位置。蜂巢重命名输出目录表中的目录,以便将输出数据装载到表..

MAPR使用  ,这是个逻辑单元,让您将策略应用到一组文件,目录和分卷。当输出目录和表目录位于不同的卷,此工作流程涉及多个卷移动数据。这招比体积内移动数据速度较慢。为了避免跨边界卷移动数据,  设置蜂巢暂存目录是在相同的体积为查询表数据。

为了使这个临时目录自动设置,在设置以下属性  蜂房的site.xml

的<p​​roperty>
  <NAME> hive.optimize.insert.dest.volume </名称>
  值<value>真</值>
  <DESCRIPTION>对于CREATE TABLE AS和INSERT查询创建目标目录下的临时目录。这就避免了整个卷上的数据移动并提高性能。</说明>
</财产>

查询成功完成后,这些划痕目录被自动删除。

蜂巢仓库目录

当编写移动表之间的数据查询,确保这些表都在同一个卷。默认情况下,所有卷的路径“/用户/蜂巢/仓库”根卷下下创建的。由属性指定此值hive.metastore.warehouse.dir,您可以从蜂巢shell中设置。例如:

蜂巢>设置hive.metastore.warehouse.dir = / myvolume /用户目录

设置蜂房与一个MySQL Metastore

对蜂房表和分区的元数据存储在蜂房Metastore(有关详细信息,请参阅配置单元项目文档)。默认情况下,在MAPR-FS的嵌入式Apache Derby数据库的蜂房Metastore存储所有配置单元的元数据。德比只允许一次一个连接,如果你想多个并发蜂巢会话,可以使用MySQL的蜂房Metastore。您可以在任何机器,是从蜂房访问上运行蜂巢Metastore。

先决条件

  • 确保MySQL的安装在你要运行的Metastore,并确保您能够从蜂巢机器连接到MySQL服务器的机器上。你可以用下面的命令来测试这一点:

    mysql的-H <HOSTNAME>-U <USER>
  • 数据库管理员必须创建为蜂房metastore数据的数据库,并在指定的用户名javax.jdo.ConnectionUser必须有权限来访问它。可使用被指定的数据库的ConnectionURL参数。该表和模式是在第一次启动metastore自动创建。
  • 下载并安装驱动程序MySQL的JDBC连接。例如:

    $卷曲 焦油XZ
    $ sudo的CP了mysql-connector-java的5.1 18 /了mysql-connector-java的- 5.1 18 -bin.jar / opt/mapr/hive/hive- <VERSION> / lib中/

蜂巢配置为MySQL

创建文件蜂房的site.xml的配置单元配置目录(/ opt/mapr/hive/hive- <VERSION> / conf目录)由下面的例子中的内容。然后设置参数如下:

  • 您可以通过添加命令设置勤俭节约URI的特定端口的出口METASTORE_PORT = <PORT>到文 ​​件蜂房-env.sh(如果蜂房-env.sh不存在,在蜂巢配置目录中创建它)。例如:

    出口METASTORE_PORT = 9083
  • 要连接到现有的MySQL metastore,确保的ConnectionURL参数和勤俭节约的URI中的参数蜂房的site.xml点到metastore的主机和端口。
  • 一旦你的配置设置,使用以下命令(使用tab自动完成,填补了启动蜂房Metastore服务<VERSION>):

    / opt/mapr/hive/hive- <VERSION> /斌/蜂巢 - 服务metastore

    您可以使用nohup的蜂房-服务metastore在后台运行metastore。

例如蜂房的site.xml

的<configuration>
 
 的<p​​roperty>
    <NAME> hive.metastore.local </名称>
    值<value> </值>
    <DESCRIPTION>控制是否连接到删除metastore服务器或打开一个 的蜂房客户端JVM </说明> metastore服务器
 </财产>
 
 的<p​​roperty>
    <NAME> javax.jdo.option.ConnectionURL </名称>
    值<value>的jdbc:mysql的:/ /本地主机:3306/hive createDatabaseIfNotExist =真</值>
    <DESCRIPTION> JDBC连接字符串 一个JDBC metastore </说明>
</财产>
 
 的<p​​roperty>
    <NAME> javax.jdo.option.ConnectionDriverName </名称>
    值<value> com.mysql.jdbc.Driver </值>
    <DESCRIPTION>驱动程序  一个JDBC metastore </说明>
 </财产>
 
 的<p​​roperty>
    <NAME> javax.jdo.option.ConnectionUserName </名称>
    值<value>根</值>
    <DESCRIPTION>的用户名来对付metastore数据库</说明>
 </财产>
 
 的<p​​roperty>
    <NAME> javax.jdo.option.ConnectionPassword </名称>
    值<value> <fill与强密码</值>
    <DESCRIPTION>密码来对付metastore数据库</说明>
 </财产>
 
 的<p​​roperty>
    <NAME> hive.metastore.uris </名称>
    值<value>节俭:/ /本地主机:9083 </值>
 </财产>
 
</配置>

蜂房,HBase的整合

您可以创建从蜂房HBase的表,可以通过这两个配置单元和HBase的访问。这使您可以运行蜂巢疑问HBase的表。您也可以将现有的HBase表到蜂房HBase的表和运行蜂巢查询这些表以及。

在本节中:

  • 安装和配置蜂房和HBase的
  • 入门蜂房HBase的整合
  • 入门蜂房MAPR表整合

安装和配置蜂房和HBase的

1,安装和配置蜂巢如果它尚未安装。

2,安装和配置HBase的,如果它尚未安装。

3。执行太平绅士的命令,并确保所有相关的Hadoop,HBase的和动物园管理员进程正在运行。

例如:

$太平绅士
21985 HRegionServer
1549 jenkins.war
15051 QuorumPeerMain
30935 JPS
15551 CommandServer
15698 HMASTER
15293 JobTracker的
15328 TaskTracker必须
15131 WardenMain

配置蜂房-site.xml的文件

1。打开蜂房的site.xml用你喜欢的编辑器文件,或创建一个蜂房的site.xml,如果它不存在的文件:

$ CD $ HIVE_HOME
$六conf /中蜂房的site.xml

2。复制下面的XML代码并将其粘贴到蜂房的site.xml文件。

注意:如果您已经有一个现有的蜂房的site.xml与文件的配置元素块,刚才复制的属性如下元素块代码,并将其粘贴在里面配置中的元素块蜂房的site.xml文件。

配置示例:

的<configuration>
 
的<p​​roperty>
  <NAME> hive.aux.jars.path </名称>
  <value>file:///opt/mapr/hive/hive-0.10.0/lib/hive-hbase-handler-0.10.0-mapr.jar,file:///opt/mapr/hbase/hbase-0.94.5/hbase-0.94.5-mapr.jar,file:///opt/mapr/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.jar</value>
  所需的jar文件的<DESCRIPTION>以逗号分隔的列表(无空格) 蜂房HBase的整合</说明>
</财产>
 
的<p​​roperty>
  <NAME> hbase.zookeeper.quorum </名称>
  值<value> xx.xx.x.xxx,xx.xx.x.xxx,xx.xx.x.xxx </值>
  <DESCRIPTION>集群中的所有服务器动物园管理员的IP地址以逗号分隔的列表(无空格)。</说明>
</财产>
 
的<p​​roperty>
  <NAME> hbase.zookeeper.property.clientPort </名称>
  值<value> 5181 </值>
  <DESCRIPTION>动 ​​物园管理员客户端端口。该MAPR 默认 CLIENTPORT是5181 。</说明>
</财产>
 
</配置>


3。保存并关闭蜂房的site.xml文件。

如果您已成功完成本安装和配置蜂房和HBase的部分中的所有步骤,您就可以开始在下一节中的入门蜂房HBase的整合教程。

入门蜂房HBase的整合

在本教程中,您将:

  • 创建一个配置单元表
  • 填充蜂巢表从文本文件中的数据
  • 查询蜂房表
  • 创建一个蜂房HBase的表
  • 从HBase的内省蜂房HBase的表
  • 填充蜂巢,HBase的表从蜂巢表中的数据
  • 从蜂房查询蜂房HBase的表
  • 现有的HBase的表格转换成蜂房HBase的表

请确保您已成功完成了安装和配置蜂房和HBase的所有的步骤开始之前,这个入门教程。

本入门教程紧密平行的蜂房,HBase的集成了Apache蜂巢维基的部分,并感谢塞缪尔国和其他捐助者的努力。如果你熟悉他们的方法蜂房HBase的整合,您应立即用这种材料舒适。

但是,请注意,在这个入门款的一些显著的差异,特别是有关配置和命令参数或缺乏。请按照本入门教程,以信这样你就可以有一个愉快和成功经验的说明。

有两列创建一个配置单元表:

改变你的蜂巢安装目录,如果你不是已经存在,并开始蜂巢:

$ CD $ HIVE_HOME
$斌/蜂巢


执行CREATE TABLE命令创建的蜂巢  表:

蜂巢> CREATE TABLE捅(foo的诠释,酒吧STRING);


看是否  表已创建成功,执行 SHOW TABLES 命令:

蜂巢> SHOW TABLES;
所需时间:0.74 

表出现在表列表中。填充蜂巢表数据

执行LOAD DATA LOCAL INPATH命令填充蜂巢表从数据kv1.txt文件。

kv1.txt文件中所提供的$ HIVE_HOME /实例目录。

蜂巢> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' 覆写INTO TABLE戳;


出现一条消息,确认表已成功创建,以及蜂巢提示再次出现:

从文件中复制数据:
...
耗时:0.278 
蜂巢>


执行上的蜂房一个SELECT查询  表:

蜂巢> SELECT * FROM捅其中foo = 98 ;


SELECT语句执行时,运行MapReduce作业,并打印作业输出:

98       val_98
98       val_98
所需时间:18.059 

SELECT命令的输出显示两个相同的行,因为有在蜂房两个相同的行表98的关键。注:这是一个蜂房表可以有多个相同的密钥概念的一个很好的例证。正如我们很快就会看到,HBase的表不能有多个相同的密钥,只有唯一键。要创建一个蜂房HBase的表,在蜂巢提示符下输入以下四行代码:



蜂巢> CREATE TABLE hbase_table_1(键整型,字符串值)
    > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler“
    >与SERDEPROPERTIES(“hbase.columns.mapping” “:关键,CF1:VAL” 
    > TBLPROPERTIES(“hbase.table.name” “XYZ” );

经过短暂的延迟,会出现一条消息,确认表已成功创建:

耗时:5.195 


注意:不是必需的TBLPROPERTIES命令,但这些新的配置单元,HBase的整合可能会发现它更容易理解这是怎么回事,如果蜂房和HBase的使用不同的名称相同的表。

在此示例中,配置单元将识别该表中的“hbase_table_1”和HBase的将识别此表为“xyz”。启动HBase的壳:

保持蜂巢终端会话打开,启动一个新的终端会话的HBase,然后启动HBase的外壳:

$ CD $ HBASE_HOME
$斌/ HBase的壳
HBase的外壳;进入“帮助<RETURN>”  支持的命令列表。
键入“退出<RETURN>” 离开HBase的壳
版本0.90 ,rUnknown,星期三十一月  17 35 00 PST 2011
 
HBase的(主要):001 >


执行 列表 命令查看HBase的表的列表:

HBase的(主要):001 >列表
XYZ
行(S)0.8260 

HBase的识别蜂房HBase的表名为xyz的。这是已知的蜂房一样的表hbase_table_1

显示的描述 XYZ 中的HBase的壳表:

HBase的(主要):004 >形容为“xyz”
说明enabled
 {NAME => 'XYZ' ,族=> [{NAME => 'CF1' ,BLOOMFILTER => '无' ,REPLICATI 
 ON_SCOPE => '0' ,压缩=> '无' ,VERSIONS => '3' ,TTL => '2147483647' ,BL
 OCKSIZE => '65536' ,IN_MEMORY => '假' ,BLOCKCACHE => '真' }]}
行(S)0.0190 


从蜂巢提示,从蜂巢表中插入数据  到蜂房HBase的表 hbase_table_1

蜂巢> INSERT覆写表hbase_table_1 SELECT * FROM捅其中foo = 98 ;
...
行加载到hbase_table_1
所需时间:13.384 


查询 hbase_table_1 看到我们插入了蜂房,HBase的表中的数据:

蜂巢> SELECT * FROM hbase_table_1;
98       val_98
所需时间:0.56 


虽然我们装两排从蜂巢表中有98相同的密钥,只有一行实际上插入hbase_table_1。这是因为hbase_table_1是HBASE表,虽然蜂巢表支持重复键,HBase的表只支持唯一键。HBase的任意表只保留一个键,并且将自动丢弃所有重复键关联的数据。预先存在的HBase的表转换为配置单元,HBase的表

要转换一个预先存在的HBase的表到一个蜂房HBase的表中,输入下列四个命令在蜂房提示。

请注意,在这个例子中,现有的HBase表是my_hbase_table

蜂巢> CREATE EXTERNAL TABLE hbase_table_2(键整型,字符串值)
    > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler“
    >与SERDEPROPERTIES(“hbase.columns.mapping” “CF1:VAL” 
    > TBLPROPERTIES(“hbase.table.name” “my_hbase_table” );


现在我们可以运行一个配置单元查询对预先存在的HBase表my_hbase_table的蜂巢看见作为hbase_table_2

蜂巢> SELECT * FROM hbase_table_2其中key> 400 和密钥< 410 ;
总MapReduce作业= 1
启动工作1
为减少任务数量设置为,因为没有减少操作者
...
401      val_401
402      val_402
403      val_403
404      val_404
406      val_406
407      val_407
409      val_409
耗时:9.452 

入门蜂房MAPR表整合

MAPR表,在MAPR分布的Hadoop的3.0版本中引入,使用原生的MAPR-FS存储层。与MAPR表蜂巢一体的完整教程可在整合蜂巢和MAPR表。

动物园管理员连接

如果你看到下面的错误消息,请确保hbase.zookeeper.quorumhbase.zookeeper.property.clientPort都在正确定义$ HIVE_HOME / conf /中蜂房的site.xml文件。

失败,异常IOException将给:org.apache.hadoop.hbase.ZooKeeperConnectionException:
HBase的是能够连接到ZooKeeper的但连接立即关闭。这可能是一个
签署服务器有太多的连接(30 默认的)。考虑你的检查
ZK服务器日志对于 该错误,然后确保你正在使用HBaseConfiguration尽可能多
你可以。见HTable的javadoc中 更多信息。
0 0