MRS二次开发(5/27): Hive的HCatalog接口调用样例
MRS二次开发(5/27): Hive的HCatalog接口调用样例
一、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
- t1: create table t1(col1 int);
- 向t1中插入如下数据:
- +----------+--+
| t1.col1 |
+----------+--+
| 1 |
| 1 |
| 1 |
| 2 |
| 2 |
| 3 |
- 创建目的表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
- 点赞
- 收藏
- 关注作者
评论(0)