Apache的配置单元是使用类似于SQL的语言,称为蜂房查询语言(HQL)查询存储在一个分布式文件系统的结构化数据的数据仓库系统的Hadoop。有关配置单元的详细信息,请参阅Apache的配置单元的项目页面。
本页内容:
以下过程使用的操作系统软件包管理器,从MAPR存储库下载并安装蜂巢。如果你想从包文件手动安装此组件,请参阅包和依赖关系为MAPR软件。
由于MAPR版本3.0.2和生态系统释放1310(MAPR - 蜂巢 - * -1310),蜂巢分布为三个包:
MAPR -蜂巢
-包含以下组件:
MAPR-hiveserver2
-允许HiveServer2由监狱长进行管理,让您使用maprcli或MAPR控制系统的启动和停止HiveServer2。该MAPR-蜂巢
包是一个依赖,如果你安装将安装MAPR-hiveserver2
。在安装时,Hiveserver2会自动启动。
MAPR-hivemetastore
-允许蜂巢Metastore由监狱长进行管理,让您使用maprcli或MAPR控制系统的启动和停止蜂巢Metastore。该 MAPR-蜂巢
包是一个依赖,如果你安装将安装 MAPR-hivemetastore
。在安装时,蜂房Metastore会自动启动。
此过程是将一个MAPR集群上执行(参见安装指南)或客户端(请参阅设置客户)。
确保环境变量JAVA_HOME
是否设置正确。例如:
确保环境变量HIVE_HOME
是否设置正确。例如:
安装蜂巢后,可执行文件位于:/ opt/mapr/hive/hive-
根
或使用sudo的
。更新可用软件包列表:
在每个计划的蜂巢节点上,安装配置单元。
apt-get的安装MAPR-蜂巢
要安装蜂巢和HiveServer2:
apt-get的安装MAPR-hiveserver2
apt-get的安装MAPR-hivemetastore
要安装蜂巢,蜂巢Metastore和HiveServer2:
apt-get的安装MAPR-hivemetastore MAPR-hiveserver2
根
或使用sudo的
。在每个计划的蜂巢节点上,安装配置单元。
yum的安装MAPR-蜂巢
要安装蜂巢和HiveServer2:
yum的安装MAPR-hiveserver2
yum的安装MAPR-hivemetastore
要安装蜂巢,蜂巢Metastore和HiveServer2:
yum的安装MAPR-hivemetastore MAPR-hiveserver2
在本教程中,您将创建一个配置单元表,从一个制表符分隔的文本文件加载数据,并运行情侣对表的基本查询。
首先,确保你已经下载了示例表:在页面的MAPR虚拟机的巡回赛,选择工具>附件和上单击鼠标右键样品table.txt
,选择链接另存为...
从弹出菜单,选择一个目录来保存,然后单击确定。如果你正在使用的MAPR虚拟机,我们将在MAPR虚拟机的本地文件系统(而不是群集存储层)加载该文件,所以保存在MAPR主目录的文件(例如,/家/ MAPR
)。
首先,来看看使用终端的文件的内容:
样本table.txt
(型CD〜
如果你不能确定)。猫样本table.txt
显示以下输出。请注意,该文件只包含三行,每一个都包含一排由制表符分隔的数据字段。该文件中的数据代表一个网络日志。
/ opt/mapr/hive/hive- / conf /中蜂房的site.xml
文件中添加以下块,更换的/ tmp / mydir的
与路径中的目录用户数量:
-hiveconf hive.exec.scratchdir = 暂存目录
选项下面的步骤来指定暂存目录的位置,或使用设置蜂巢exec.scratchdir = 暂存目录
在命令行中。
:
蜂房>
提示符下,键入以下命令来创建表:
采样table.txt
到表:
您可以使用启动配置单元外壳蜂巢
命令。当蜂巢外壳启动时,它会读取称为初始化文件。hiverc
其位于HIVE_HOME /斌/
或$ HOME /
目录。您可以编辑这个文件来设置初始化蜂房命令行环境,每行一个命令自定义参数或命令。
当您运行配置单元外壳,可以指定使用一个MySQL初始化脚本文件-I
选项。例如:
由于MAPR版本3.0.2,蜂房Metastore会自动由监狱长在安装时,如果启动 MAPR-hivemetastore
安装包。它有时需要启动或停止服务(例如,更改配置后), 您可以启动和停止蜂巢Metastore在两个方面:
maprcli节点服务
的命令-使用此命令,你可以在同一时间启动蜂巢Metastore在多个节点上。
发行maprcli节点服务的命令,指明其蜂巢Metastore配置,以空格分隔的节点。例如:
发行maprcli节点服务的命令,指明其蜂巢Metastore配置,以空格分隔的节点。例如:
由于MAPR版本3.0.2,Hiveserver2会自动在安装时如果开始由监狱长MAPR-hiveserver2
安装包。它有时需要启动或停止服务(例如,更改配置后), 您可以启动和停止Hiveserver2在两个方面:
maprcli节点服务
的命令-使用此命令,你可以在同一时间在多个节点上启动Hiveserver2。
发行maprcli节点服务的命令,指明其Hiveserver2配置,以空格分隔的节点。例如:
发行maprcli节点服务的命令,指明其Hiveserver2配置,以空格分隔的节点。例如:
采用蜂巢与MAPR卷
在你运行一个作业,设置在蜂房暂存目录和Hive仓库目录相同的地方所在的蜂房作业的数据量。这是最有效的方式来设置的目录结构。如果蜂房暂存目录和蜂巢仓库目录是在不同的卷,蜂房需要移动数据通过量,比相同体积内的移动速度较慢。
在早期MAPR版本(2.1之前的版本),设置在不同的MAPR卷的划痕和仓库的目录可能会导致错误。
以下部分提供了额外的细节准备卷和目录与蜂巢的使用。
这是没有必要创建和文件模式
蜂房的/ tmp
和/用户/蜂巢/仓库
目录中MAPR集群。默认情况下,MAPR创建,当你创建你的第一个蜂房表配置这些目录为您服务。
这些默认目录中定义的$ HIVE_HOME / conf /中蜂房-default.xml中
的文件:
如果您需要修改其中的一个目录或两者的默认名称,创建一个$ 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_ 的
下 /用户/
。你可以用配置此目录的位置 hive.exec.scratchdir
参数 蜂房的site.xml
。
创建以下目录作为临时目录的子目录:
最终的查询输出目录。此目录的名称的形式为 -EXT-
。
输出目录为每个MapReduce作业。这些目录名的形式为 -MR-
。
蜂巢执行任务,包括MapReduce作业,并加载数据到查询输出目录。
加载配置单元从输出目录中的数据插入表中。默认情况下,该表的目录是在 /用户/蜂巢/仓库
目录。您可以配置此位置, hive.metastore.warehouse.dir
参数在 蜂房-site.xml中
,除非该表的DDL指定自定义位置。蜂巢重命名输出目录表中的目录,以便将输出数据装载到表..
MAPR使用 量,这是个逻辑单元,让您将策略应用到一组文件,目录和分卷。当输出目录和表目录位于不同的卷,此工作流程涉及多个卷移动数据。这招比体积内移动数据速度较慢。为了避免跨边界卷移动数据, 设置蜂巢暂存目录是在相同的体积为查询表数据。
为了使这个临时目录自动设置,在设置以下属性 蜂房的site.xml
:
查询成功完成后,这些划痕目录被自动删除。
当编写移动表之间的数据查询,确保这些表都在同一个卷。默认情况下,所有卷的路径“/用户/蜂巢/仓库”根卷下下创建的。由属性指定此值hive.metastore.warehouse.dir
,您可以从蜂巢shell中设置。例如:
对蜂房表和分区的元数据存储在蜂房Metastore(有关详细信息,请参阅配置单元项目文档)。默认情况下,在MAPR-FS的嵌入式Apache Derby数据库的蜂房Metastore存储所有配置单元的元数据。德比只允许一次一个连接,如果你想多个并发蜂巢会话,可以使用MySQL的蜂房Metastore。您可以在任何机器,是从蜂房访问上运行蜂巢Metastore。
确保MySQL的安装在你要运行的Metastore,并确保您能够从蜂巢机器连接到MySQL服务器的机器上。你可以用下面的命令来测试这一点:
javax.jdo.ConnectionUser
必须有权限来访问它。可使用被指定的数据库的ConnectionURL
参数。该表和模式是在第一次启动metastore自动创建。下载并安装驱动程序MySQL的JDBC连接。例如:
创建文件蜂房的site.xml
的配置单元配置目录(/ opt/mapr/hive/hive-
)由下面的例子中的内容。然后设置参数如下:
您可以通过添加命令设置勤俭节约URI的特定端口的出口METASTORE_PORT =
到文 件蜂房-env.sh
(如果蜂房-env.sh
不存在,在蜂巢配置目录中创建它)。例如:
的ConnectionURL
参数和勤俭节约的URI
中的参数蜂房的site.xml
点到metastore的主机和端口。一旦你的配置设置,使用以下命令(使用tab自动完成,填补了启动蜂房Metastore服务
):
您可以使用nohup的蜂房-服务metastore
在后台运行metastore。
您可以创建从蜂房HBase的表,可以通过这两个配置单元和HBase的访问。这使您可以运行蜂巢疑问HBase的表。您也可以将现有的HBase表到蜂房HBase的表和运行蜂巢查询这些表以及。
在本节中:
1,安装和配置蜂巢如果它尚未安装。
2,安装和配置HBase的,如果它尚未安装。
3。执行太平绅士
的命令,并确保所有相关的Hadoop,HBase的和动物园管理员进程正在运行。
例如:
蜂房-site.xml的
文件1。打开蜂房的site.xml
用你喜欢的编辑器文件,或创建一个蜂房的site.xml
,如果它不存在的文件:
2。复制下面的XML代码并将其粘贴到蜂房的site.xml
文件。
注意:如果您已经有一个现有的蜂房的site.xml
与文件的配置
元素块,刚才复制的属性
如下元素块代码,并将其粘贴在里面配置
中的元素块蜂房的site.xml
文件。
配置示例:
3。保存并关闭蜂房的site.xml
文件。
如果您已成功完成本安装和配置蜂房和HBase的部分中的所有步骤,您就可以开始在下一节中的入门蜂房HBase的整合教程。
在本教程中,您将:
请确保您已成功完成了安装和配置蜂房和HBase的所有的步骤开始之前,这个入门教程。
本入门教程紧密平行的蜂房,HBase的集成了Apache蜂巢维基的部分,并感谢塞缪尔国和其他捐助者的努力。如果你熟悉他们的方法蜂房HBase的整合,您应立即用这种材料舒适。
但是,请注意,在这个入门款的一些显著的差异,特别是有关配置和命令参数或缺乏。请按照本入门教程,以信这样你就可以有一个愉快和成功经验的说明。
有两列创建一个配置单元表:
改变你的蜂巢安装目录,如果你不是已经存在,并开始蜂巢:
执行CREATE TABLE命令创建的蜂巢 捅
表:
看是否 捅
表已创建成功,执行 SHOW TABLES
命令:
该戳
表出现在表列表中。填充蜂巢捅
表数据
执行LOAD DATA LOCAL INPATH命令填充蜂巢捅
表从数据kv1.txt
文件。
该kv1.txt
文件中所提供的$ HIVE_HOME /实例
目录。
出现一条消息,确认表已成功创建,以及蜂巢提示再次出现:
执行上的蜂房一个SELECT查询 捅
表:
SELECT语句执行时,运行MapReduce作业,并打印作业输出:
SELECT命令的输出显示两个相同的行,因为有在蜂房两个相同的行戳
表98的关键。注:这是一个蜂房表可以有多个相同的密钥概念的一个很好的例证。正如我们很快就会看到,HBase的表不能有多个相同的密钥,只有唯一键。要创建一个蜂房HBase的表,在蜂巢提示符下输入以下四行代码:
经过短暂的延迟,会出现一条消息,确认表已成功创建:
注意:不是必需的TBLPROPERTIES命令,但这些新的配置单元,HBase的整合可能会发现它更容易理解这是怎么回事,如果蜂房和HBase的使用不同的名称相同的表。
在此示例中,配置单元将识别该表中的“hbase_table_1”和HBase的将识别此表为“xyz”。启动HBase的壳:
保持蜂巢终端会话打开,启动一个新的终端会话的HBase,然后启动HBase的外壳:
执行 列表
命令查看HBase的表的列表:
HBase的识别蜂房HBase的表名为xyz的
。这是已知的蜂房一样的表hbase_table_1
。
显示的描述 XYZ
中的HBase的壳表:
从蜂巢提示,从蜂巢表中插入数据 捅
到蜂房HBase的表 hbase_table_1
:
查询 hbase_table_1
看到我们插入了蜂房,HBase的表中的数据:
虽然我们装两排从蜂巢捅
表中有98相同的密钥,只有一行实际上插入hbase_table_1
。这是因为hbase_table_1
是HBASE表,虽然蜂巢表支持重复键,HBase的表只支持唯一键。HBase的任意表只保留一个键,并且将自动丢弃所有重复键关联的数据。预先存在的HBase的表转换为配置单元,HBase的表
要转换一个预先存在的HBase的表到一个蜂房HBase的表中,输入下列四个命令在蜂房提示。
请注意,在这个例子中,现有的HBase表是my_hbase_table
。
现在我们可以运行一个配置单元查询对预先存在的HBase表my_hbase_table
的蜂巢看见作为hbase_table_2
:
MAPR表,在MAPR分布的Hadoop的3.0版本中引入,使用原生的MAPR-FS存储层。与MAPR表蜂巢一体的完整教程可在整合蜂巢和MAPR表。
如果你看到下面的错误消息,请确保hbase.zookeeper.quorum
和hbase.zookeeper.property.clientPort
都在正确定义$ HIVE_HOME / conf /中蜂房的site.xml
文件。