博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive on spark实践
阅读量:7016 次
发布时间:2019-06-28

本文共 2037 字,大约阅读时间需要 6 分钟。

起因

搭建数据平台时,对已经存储在的结构化数据进行一些简单的查询是一个比较常见的需求,目前我使用的版本是Hive 2.3,它支持的执行引擎有、。

配置

利用Cloudera的CDH套件搭建好Hadoop 2.6,可CDH中的Hive版本不高,于是独立安装Hive 2.3,根据Hive官网上的Hive on Spark教程开始配置。

Standalone

配置了Spark Standalone模式之后,配置Hive遇到一些困难。

由于使用的是pre-build版本的Spark,遇到报错:

java.lang.NoSuchFieldError: SPARK_RPC_CLIENT_CONNECT_TIMEOUT    at org.apache.hive.spark.client.rpc.RpcConfiguration.
(RpcConfiguration.java:46)

接下来要自己编译Spark without Hive,可是一直没有解决,报错为:

[info] 'compiler-interface' not yet compiled for Scala 2.11.8. Compiling...error: scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.    at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17)    at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18)

非常曲折,最后选择尝试已经配置好的Yarn模式的Spark。

Yarn

Yarn模式的Spark集群已经就绪,在Hive中配置Spark

set hive.execution.engine=spark;set spark.master=yarn;set spark.executor.memory=512m;set spark.serializer=org.apache.spark.serializer.KryoSerializer;set spark.eventLog.enabled=true;set spark.eventLog.dir=

上传Spark应用所需的Spark依赖jar包到Hdfs中,例如放到Hdfs中的/spark-jars目录,并配置hive-site.xml

spark.yarn.jars
hdfs://xxxx:8020/spark-jars/*

注意这里需要保证使用Hive时的用户能够有权限访问Hdfs上指定的目录。

用户数据导入

源数据

当源数据是JSON并位于Hdfs的/tmp目录,如

{    "time": "1515682813526",    "uid": 1,    "ip": "1.1.1.1",    "path": "https://github.com",    "referer": "https://google.com"}

创建Hive外部表

CREATE EXTERNAL TABLE IF NOT EXISTS tmp.pageview(    time BIGINT,    uid  BIGINT,    ip   STRING,    path STRING,    referer STRING)ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'STORED AS TEXTFILELOCATION '/tmp';

导入ORC表

ORC表是Hive的一种高效表,在查询上更加快速,可以从外部表将数据导入ORC表。

CREATE TABLE IF NOT EXISTS orc.pageview(    time BIGINT,    uid  BIGINT,    ip   STRING,    path STRING,    referer STRING)STORED AS ORC;FROM tmp.pageview pvINSERT INTO TABLE orc.pageviewSELECT time, uid, ip, path, referer;

转载于:https://www.cnblogs.com/pier2/p/hive-on-spark-practice.html

你可能感兴趣的文章
H3c 配置ssh acl
查看>>
Dedecms判断当前栏目下是否有子栏目
查看>>
【PIC学习第2例】PIC16F877A LED闪烁
查看>>
SQL2005中时,Diagrams的问题
查看>>
拨云见日,任重道远 ——第六届云计算大会感悟
查看>>
CentOS VMware 下SSH配置方法详解
查看>>
PHP错误级别 error_reporting() 函数详解
查看>>
WIndows 使用VS编译 Lua5
查看>>
什么是“单播”“组播”和“多播”
查看>>
flex---->图表控件
查看>>
分析函数调用关系图(call graph)的几种方法
查看>>
11.0592M晶振与12M晶振
查看>>
A380上11万一张的机票什么享受?来看看
查看>>
ubuntu15.10下编译安装wine1.8 rc4
查看>>
jquery获取节点的时候获取包含自己在内的HTML标签
查看>>
CPU profiling
查看>>
Exchanging Partitions and Subpartitions with Tables--官方文档
查看>>
[Typescript] Typescript Enums vs Booleans when Handling State
查看>>
Java中HashMap源码分析
查看>>
(转)c#.net常用字符串函数
查看>>