Hive

Spark学习笔记0——简单了解和技术架构

为君一笑 提交于 2020-04-24 21:20:26
Spark学习笔记0——简单了解和技术架构 笔记摘抄自 [美] Holden Karau 等著的《Spark快速大数据分析》 [TOC] 什么是Spark Spark 是一个用来实现快速而通用的集群计算的平台。 扩展了广泛使用的MapReduce 计算模型 能够在内存中进行计算 一个统一的框架简单而低耗地整合各种处理流程 接口非常丰富 技术架构和软件栈 Spark 的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎 Spark 项目还包含多个紧密集成的组件,这些组件关系密切并且可以相互调用 各组件间密切结合的设计原理的优点: 软件栈中所有的程序库和高级组件都可以从下层的改进中获益 只需要一套软件系统,运行整个软件栈的代价变小了 能够构建出无缝整合不同处理模型的应用(例如机器学习和数据分析同时进行) Spark Core Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块 Spark Core 中包含了对 RDD[^1] 的 API 定义 Spark SQL Spark 用来操作结构化数据的程序包 可以使用 SQL 和 Apache Hive 版本的SQL 方言(HQL)来查询数据 支持多种数据源(比如Hive 表、Parquet 以及JSON 等)

spark thriftserver

ⅰ亾dé卋堺 提交于 2020-04-24 18:09:51
spark可以作为一个分布式的查询引擎,用户通过JDBC/ODBC的形式无需写任何代码,写写sql就可以实现查询啦,那么我们就可以使用一些支持JDBC/ODBC连接的BI工具(比如tableau)来生成一些报表。 spark thriftserver的实现也是相当于hiveserver2的方式,并且在测试时候,即可以通过hive的beeline测试也可以通过spark bin/下的beeline,不管通过哪个beeline链接,都要指定spark thriftserver的主机和端口(默认是10000),比如 beeline> !connect jdbc:hive2: // host_ip:port spark thriftserver启动之后实质上就是一个Spark的应用程序,并且也可以通过4040端口来查看web ui界面,但是这个应用程序它支持JDBC/ODBC的连接,如下: 配置 接上文 编译spark支持thriftserver 编译完成的spark包,在sbin目录下可以看到有start-thriftserver.sh和stop-thriftserver.sh脚本 默认情况下,可以这样启动thriftserver,但是很少这样用 ./sbin/start-thriftserver. sh 可以像使用spark-submit一样输入一些相关的参数,比如--master

新闻网大数据实时分析可视化系统项目——18、Spark SQL快速离线数据分析

。_饼干妹妹 提交于 2020-04-24 18:06:26
1.Spark SQL概述 1)Spark SQL是Spark核心功能的一部分,是在2014年4月份Spark1.0版本时发布的。 2)Spark SQL可以直接运行SQL或者HiveQL语句 3)BI工具通过JDBC连接SparkSQL查询数据 4)Spark SQL支持Python、Scala、Java和R语言 5)Spark SQL不仅仅是SQL 6)Spark SQL远远比SQL要强大 7)Spark SQL处理数据架构 8)Spark SQL简介 Spark SQL is a Spark module for structured data processing 9)Spark SQL的愿景 a)Write less code 对不同的数据类型使用统一的接口来读写。 b)Read less data 提升大数据处理速度最有效的方法就是忽略无关的数据。 (1)使用列式存储(columnar formats),比如Parquet、ORC、RCFile (2)使用分区裁剪(partitioningpruning),比如按天分区,按小时分区等 (3)利用数据文件中附带的统计信息进行剪枝:例如每段数据都带有最大值、最小值和NULL值等统计信息,当某一数据段肯定不包含查询条件的目标数据时,可以直接跳过这段数据。(例如字段age某段最大值为20,但查询条件是>50岁的人时

趣头条基于 Flink+ClickHouse 构建实时数据分析平台

吃可爱长大的小学妹 提交于 2020-04-24 13:02:35
摘要: 本文由趣头条数据平台负责人王金海分享, 主要介绍趣头条 Flink-to-Hive 小时级场景和 Flink-to-ClickHouse 秒级场景, 内容分为以下四部分: 一、业务场景与现状分析 二、Flink-to-Hive 小时级场景 三、Flink-to-ClickHouse 秒级场景 四、未来发展与思考 一、业务场景与现状分析 趣头条查询的页面分为离线查询页面和实时查询页面。趣头条今年所实现的改造是在实时查询中接入了 ClickHouse 计算引擎。根据不同的业务场景,实时数据报表中会展现数据指标曲线图和详细的数据指标表。目前数据指标的采集和计算为每五分钟一个时间窗口,当然也存在三分钟或一分钟的特殊情况。数据指标数据全部从 Kafka 实时数据中导出,并导入 ClickHouse 进行计算。 二、Flink-to-Hive 小时级场景 1.小时级实现架构图 如下图所示,Database 中的 Binlog 导出到 Kafka,同时 Log Server 数据也会上报到 Kafka。所有数据实时落地到 Kafka 之后,通过 Flink 抽取到 HDFS。下图中 HDFS 到 Hive 之间为虚线,即 Flink 并非直接落地到 Hive,Flink 落地到 HDFS 后,再落地到 Hive 的时间可能是小时级、半小时级甚至分钟级,需要知道数据的 Event time

【翻译】Flink Table Api & SQL — Hive —— 读写 Hive 表

心不动则不痛 提交于 2020-04-24 09:15:18
本文翻译自官网:Reading & Writing Hive Tables https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/read_write_hive.html Flink Table Api & SQL 翻译目录 使用 HiveCatalog 和Flink的Hive连接器,Flink可以读取和写入Hive数据,以替代Hive的批处理引擎。 确保遵循说明 在您的应用程序中 包括正确的 依赖项 。 从 Hive 读 数据 写数据到 Hive 局限性 从 Hive 读数据 假设Hive在其 default 数据库中 包含一个表,该表 名为people,其中包含几行。 hive> show databases; OK default Time taken: 0.841 seconds, Fetched: 1 row(s) hive > show tables; OK Time taken: 0.087 seconds hive > CREATE TABLE mytable(name string, value double ); OK Time taken: 0.127 seconds hive > SELECT * FROM mytable; OK Tom 4.72 John 8

【翻译】Flink Table Api & SQL — Catalog Beta 版

半城伤御伤魂 提交于 2020-04-24 09:15:08
本文翻译自官网:Catalogs Beta https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/catalogs.html Flink Table Api & SQL 翻译目录 Catalogs 提供元数据,例如数据库,表,分区,视图以及访问存储在数据库或其他外部系统中的数据所需的功能和信息。 数据处理的最关键方面之一是管理元数据。 它可能是临时元数据,例如临时表,或者是针对表环境注册的 UDF。 或永久性元数据,例如Hive Metastore 中的元数据。Catalogs 提供了一个统一的API,用于管理元数据并使其可从 Table API 和 SQL 查询访问。 Catalogs类型 GenericInMemory Catalogs Hive Catalogs 用户定义的 Catalogs Catalogs API 注册Catalogs 更改当前 Catalogs 和数据库 列出可用 Catalogs 列出可用的数据库 列出可用表 Catalogs类型 GenericInMemory Catalog Flink会话始终具有一个名为default_catalog的内置GenericInMemoryCatalog,它具有一个名为default_database的内置默认数据库。 所有临时元数据

Hive与HBase的区别与联系

房东的猫 提交于 2020-04-24 08:24:33
Hive与HBase的区别与联系 二者区别 Hive:Hive是基于Hadoop的一个 数据仓库工具 ,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能。 Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。 hive需要用到hdfs存储文件,需要用到MapReduce计算框架。 hive可以认为是map-reduce的一个包装。hive的意义就是把好写的hive的sql转换为复杂难写的map-reduce程序。 HBase:HBase是Hadoop的 数据库 ,一个分布式、可扩展、大数据的存储。 hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作 hbase可以认为是hdfs的一个包装。他的本质是数据存储,是个NoSql数据库;hbase部署于hdfs之上,并且克服了hdfs在随机读写方面的缺点。 二者联系 Hbase和Hive在大数据架构中处在不同位置,Hbase主要解决实时数据查询问题,Hive主要解决数据处理和计算问题,一般是配合使用。 在大数据架构中,Hive和HBase是协作关系,数据流一般如下图: 通过ETL工具将数据源抽取到HDFS存储; 通过Hive清洗、处理和计算原始数据; HIve清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase

【翻译】Flink Table Api & SQL — Hive —— 在 scala shell 中使用 Hive 连接器

孤街浪徒 提交于 2020-04-24 08:20:58
本文翻译自官网:Use Hive connector in scala shell https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/scala_shell_hive.html Flink Table Api & SQL 翻译目录 Flink Scala Shell 是尝试 flink 的便捷方法。 您也可以在 scala shell 中使用 hive,而不是在pom文件中指定 hive 依赖关系,打包程序并通过flink run命令提交。 为了在scala shell中使用 hive 连接器,您需要将以下hive 连接器依赖项放在flink dist的lib文件夹下。 flink-connector-hive_ {scala_version}-{flink.version} .jar flink-hadoop-compatibility_ {scala_version}-{flink.version} .jar flink-shaded-hadoop-2-uber- {hadoop.version}-{flink-shaded.version} .jar hive-exec-2.x.jar(对于Hive 1.x,您需要复制hive-exec-1.x.jar,hive

【翻译】Flink Table Api & SQL — Hive —— Hive 函数

醉酒当歌 提交于 2020-04-24 08:20:35
本文翻译自官网:Hive Functions https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/hive_functions.html Flink Table Api & SQL 翻译目录 用户可以在Flink中使用 Hive 现有的自定义函数。 支持的UDF类型包括: UDF GenericUDF GenericUDTF UDAF GenericUDAFResolver2 根据查询的计划和执行,Hive的UDF和GenericUDF会自动转换为Flink的ScalarFunction,Hive的GenericUDTF会自动转换为Flink的TableFunction,Hive的UDAF和GenericUDAFResolver2会转换为Flink的AggregateFunction。 要使用Hive用户定义的函数,用户必须 设置由Hive Metastore支持的HiveCatalog,其中包含该函数作为会话的当前 catalog 在Flink的classpath中包含该函数的 jar 使用 Blink planner 使用Hive 自定义的函数 假设我们在Hive Metastore中注册了以下Hive函数: /** * Test simple udf. Registered

理解Spark SQL(一)—— CLI和ThriftServer

僤鯓⒐⒋嵵緔 提交于 2020-04-24 06:59:00
Spark SQL主要提供了两个工具来访问hive中的数据,即CLI和ThriftServer。前提是需要Spark支持Hive,即编译Spark时需要带上hive和hive-thriftserver选项,同时需要确保在$SPARK_HOME/conf目录下有hive-site.xml配置文件(可以从hive中拷贝过来)。在该配置文件中主要是配置hive metastore的URI(Spark的CLI和ThriftServer都需要)以及ThriftServer相关配置项(如hive.server2.thrift.bind.host、hive.server2.thrift.port等)。注意如果该台机器上同时运行有Hive ThriftServer和Spark ThriftServer,则hive中的hive.server2.thrift.port配置的端口与spark中的hive.server2.thrift.port配置的端口要不一样,避免同时启动时发生端口冲突。 启动CLI和ThriftServer之前都需要先启动hive metastore。执行如下命令启动: [root@BruceCentOS ~]# nohup hive --service metastore & 成功启动后,会出现一个RunJar的进程,同时会监听端口9083(hive metastore的默认端口)