MRS二次开发(5/27): Hive的HCatalog接口调用样例

举报
晋红轻 发表于 2020/11/28 09:58:29 2020/11/28
【摘要】 Hive是一个开源的,建立在Hadoop上的数据仓库框架,提供类似SQL的HQL语言操作结构化数据,其基本原理是将HQL语言自动转换成Mapreduce任务或Spark任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。本文介绍Hive的HCatalog接口调用样例。

MRS二次开发(5/27): HiveHCatalog接口调用样例

一、Hive简介

Hive简介

Hive是一个开源的,建立在Hadoop上的数据仓库框架,提供类似SQL的HQL语言操作结构化数据,其基本原理是将HQL语言自动转换成Mapreduce任务或Spark任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。

Hive主要特点如下:

  • 通过HQL语言非常容易的完成数据提取、转换和加载(ETL)。
  • 通过HQL完成海量结构化数据分析。
  • 灵活的数据存储格式,支持JSON、CSV、TEXTFILE、RCFILE、ORCFILE、SEQUENCEFILE等存储格式,并支持自定义扩展。
  • 多种客户端连接方式,支持JDBC接口。

Hive的主要应用于海量数据的离线分析(如日志分析,集群状态分析)、大规模的数据挖掘(用户行为分析,兴趣分区,区域展示)等场景下。

为保证Hive服务的高可用性、用户数据的安全及访问服务的可控制,在开源社区的Hive-3.1.0版本基础上,Hive新增如下特性:

  • 基于Kerberos技术的安全认证机制。
  • 数据文件加密机制。
  • 完善的权限管理。

新增特性的介绍,请参见《MapReduce Service 3.0.2-ESL 产品描述》相关章节。开源社区的Hive特性,请参见https://cwiki.apache.org/confluence/display/hive/designdocs。

二、样例背景

 场景说明

 假定用户开发一个应用程序, 使用通用HCatalog接口调用Hive,代码样例中所涉及的操作主要包括:

读取配置项

启动mapreduce任务

三、Linux环境调试步骤

windows端打开样例工程并打包

安装对接集群客户端

检查linux环境时间与集群误差不超过5分钟

检查linux环境的JDK版本为1.8

检查linux环境的/etc/hosts文件中包含所有集群节点的域名IP映射信息

创建样例执行路径,例如/opt/hivehcatalogtest

上传windows环境打包后生成的hcatalog-example.jar包到/opt/hivehcatalogtest目录

使用客户端beeline打开hive客户端,并且创建两张表t1,t2

  1. t1: create table t1(col1 int);
  • t1中插入如下数据:
  • +----------+--+
     | t1.col1 |
     +----------+--+
     | 1 |
     | 1 |
     | 1 |
     | 2 |
     | 2 |
     | 3 |
  1. 创建目的表t2:create table t2(col1 int,col2 int);

配置环境变量

  • 注意事先核对一下实际环境中是否有相关jar包,如果版本号对不上,则需要根据实际情况修改上述命令
  • export HADOOP_HOME=/opt/80_135_hadoopclient2/hadoopclient/HDFS/hadoop
    export HIVE_HOME=/opt/80_135_hadoopclient2/hadoopclient/Hive/Beeline
    export HCAT_HOME=/opt/80_135_hadoopclient2/hadoopclient/Hive/HCatalog/

    export LIB_JARS=$HCAT_HOME/lib/hive-hcatalog-core-3.1.0-hw-ei-302002.jar,$HCAT_HOME/lib/hive-metastore-3.1.0-hw-ei-302002.jar,$HCAT_HOME/lib/hive-standalone-metastore-3.1.0-hw-ei-302002.jar,$HIVE_HOME/lib/hive-exec-3.1.0-hw-ei-302002.jar,$HCAT_HOME/lib/libfb303-0.9.3.jar,$HCAT_HOME/lib/slf4j-api-1.7.30.jar,$HCAT_HOME/lib/antlr-3.5.2.jar,$HCAT_HOME/lib/jdo-api-3.0.1.jar,$HCAT_HOME/lib/antlr-runtime-3.5.2.jar,$HCAT_HOME/lib/datanucleus-api-jdo-4.2.4.jar,$HCAT_HOME/lib/datanucleus-core-4.1.17.jar,$HCAT_HOME/lib/datanucleus-rdbms-fi-4.1.19-302002.jar,$HCAT_HOME/lib/log4j-api-2.10.0.jar,$HCAT_HOME/lib/log4j-core-2.10.0.jar

    export HADOOP_CLASSPATH=$HCAT_HOME/lib/hive-hcatalog-core-3.1.0-hw-ei-302002.jar:$HCAT_HOME/lib/hive-metastore-3.1.0-hw-ei-302002.jar:$HCAT_HOME/lib/hive-standalone-metastore-3.1.0-hw-ei-302002.jar:$HIVE_HOME/lib/hive-exec-3.1.0-hw-ei-302002.jar:$HCAT_HOME/lib/libfb303-0.9.3.jar:$HADOOP_HOME/etc/hadoop:$HCAT_HOME/conf:$HCAT_HOME/lib/slf4j-api-1.7.30.jar:$HCAT_HOME/lib/antlr-3.5.2.jar:$HCAT_HOME/lib/jdo-api-3.0.1.jar:$HCAT_HOME/lib/antlr-runtime-3.5.2.jar:$HCAT_HOME/lib/datanucleus-api-jdo-4.2.4.jar:$HCAT_HOME/lib/datanucleus-core-4.1.17.jar:$HCAT_HOME/lib/datanucleus-rdbms-fi-4.1.19-302002.jar:$HCAT_HOME/lib/log4j-api-2.10.0.jar:$HCAT_HOME/lib/log4j-core-2.10.0.jar

执行如下命令验证linux环境下样例代码运行

yarn --config $HADOOP_HOME/etc/hadoop jar /opt/hive_hcatalog_test/hcatalog-example.jar com.huawei.bigdata.HCatalogExample -libjars $LIB_JARS t1 t2

四、问题互动渠道

FusonInsight 论坛入口 https://bbs.huaweicloud.com/forum/forum-1103-1.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。