Apache Spark

Spark 配置连接hive 元数据库(mysql)

余生颓废 提交于 2020-04-26 19:31:22
Spark 连接hive 元数据库(mysql) 方法一: 1)打开Hive metastore [root@head42 ~]# hive --service metastore & netstat -ano|grep 9083 ??? 2)开启spark连接Mysql [root@head42 ~]# spark-shell --conf spark.hadoop.hive.metastore.uris=thrift://localhost:9083 3)scala> spark.sql("show tables").show spark.sql("select * from database_name.table_name")//访问其他数据库 +--------+--------------+-----------+ |database| tableName|isTemporary| +--------+--------------+-----------+ | default| customer| false| | default|text_customers| false| +--------+--------------+-----------+ 这样就Ok了! 方法二: 1)拷贝hive的hive-site.xml文件到spark的conf目录下 2

实战 | 将Apache Hudi数据集写入阿里云OSS

前提是你 提交于 2020-04-26 15:29:25
1. 引入 云上对象存储的廉价让不少公司将其作为主要的存储方案,而Hudi作为数据湖解决方案,支持对象存储也是必不可少。之前AWS EMR已经内置集成Hudi,也意味着可以在S3上无缝使用Hudi。当然国内用户可能更多使用阿里云OSS作为云上存储方案,那么如果用户想基于OSS构建数据湖,那么Hudi是否支持呢?随着Hudi社区主分支已经合并了支持OSS的PR,现在只需要基于master分支build版本即可,或者等待下一个版本释出便可直接使用,经过简单的配置便可将数据写入OSS。 2. 配置 2.1 pom依赖 需要额外添加的主要pom依赖如下 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-aliyun</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.8.1</version> </dependency> 2.2 core-site.xml配置 若需访问OSS,需要修改core-site.xml,关键配置如下 <property> <name

spark2.4+elasticsearch6.1.1搭建一个推荐系统

喜夏-厌秋 提交于 2020-04-26 06:31:10
[TOC] 本博文详细记录了IBM在网上公布使用spark,elasticsearch搭建一个推荐系统的DEMO。demo中使用的elasticsearch版本号为5.4,数据集是在推荐中经常使用movies data。Demo中提供计算向量相似度es5.4插件在es6.1.1中无法使用,因此我们基于es6.1.1开发一个新的计算特征向量相似度的插件,插件具体详情见 github ,下面我们一步一步的实现这个推荐系统: 整体框架 整个框架图如下: 从图中我们可以看出具体的操作流程是: 利用spark.read.csv()读取ratings,users,movies数据集。 对数据集进行相关的处理 通过es-hadoop插件,将整理后的数据集保存到es 训练一个推荐模型-协同过滤模型 把训练好的模型保存到es中 搜索推荐-es查询和一个自定义矢量评分插件,计算用户与movies的最后评分 安装相关的组件 elasticsearch安装 spark安装 下载es-hadoop中间件 安装计算向量相似度的elasticsearch插件 运行 安装完es,spark,下载es-hadoop插件,以及es安装计算矢量评分的插件,然后通过如下命令启动: PYSPARK_DRIVER_PYTHON="jupyter" PYSPARK_DRIVER_PYTHON_OPTS="notebook"

HBase读写的几种方式(一)java篇

若如初见. 提交于 2020-04-25 05:24:08
1.HBase读写的方式概况 主要分为: 纯Java API读写HBase的方式; Spark读写HBase的方式; Flink读写HBase的方式; HBase通过Phoenix读写的方式; 第一种方式是HBase自身提供的比较原始的高效操作方式,而第二、第三则分别是Spark、Flink集成HBase的方式,最后一种是第三方插件Phoenix集成的JDBC方式,Phoenix集成的JDBC操作方式也能在Spark、Flink中调用。 注意: 这里我们使用HBase2.1.2版本,以下代码都是基于该版本开发的。 2. 纯Java API读写HBase 2.1 连接HBase 这里我们采用静态方式连接HBase,不同于2.1.2之前的版本,无需创建HBase线程池,HBase2.1.2提供的代码已经封装好,只需创建调用即可: /** * 声明静态配置 */ static Configuration conf = null ; static Connection conn = null ; static { conf = HBaseConfiguration.create(); conf.set( "hbase.zookeeper.quorum", "hadoop01,hadoop02,hadoop03" ); conf.set( "hbase.zookeeper.property

hadoop、storm和spark的区别、比较

北慕城南 提交于 2020-04-25 01:58:10
一、hadoop、Storm该选哪一个? 为了区别hadoop和Storm,该部分将回答如下问题: 1.hadoop、Storm各是什么运算 2.Storm为什么被称之为流式计算系统 3.hadoop适合什么场景,什么情况下使用hadoop 4.什么是吞吐量 首先整体认识:Hadoop是磁盘级计算,进行计算时,数据在磁盘上,需要读写磁盘;Storm是内存级计算,数据直接通过网络导入内存。读写内存比读写磁盘速度快n个数量级。根据Harvard CS61课件,磁盘访问延迟约为内存访问延迟的75000倍。所以Storm更快。 注释: 延时 , 指数据从产生到运算产生结果的时间,“快”应该主要指这个。 吞吐, 指系统单位时间处理的数据量。 storm的网络直传、内存计算,其时延必然比hadoop的通过hdfs传输低得多;当计算模型比较适合流式时,storm的流式处理,省去了批处理的收集数据的时间;因为storm是服务型的作业,也省去了作业调度的时延。所以从时延上来看,storm要快于hadoop。 从原理角度来讲: Hadoop M/R基于HDFS,需要切分输入数据、产生中间数据文件、排序、数据压缩、多份复制等,效率较低。 Storm 基于ZeroMQ这个高性能的消息通讯库,不持久化数据。 为什么storm比hadoop快,下面举一个应用场景 说一个典型的场景,几千个日志生产方产生日志文件

Spark学习(一)——Spark运行架构

时光总嘲笑我的痴心妄想 提交于 2020-04-25 01:41:10
基本概念 在具体讲解Spark运行架构之前,需要先了解几个重要的概念: RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型; DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系; Executor:是运行在工作节点(Worker Node)上的一个进程,负责运行任务,并为应用程序存储数据; 应用:用户编写的Spark应用程序; 任务:运行在Executor上的工作单元; 作业:一个作业包含多个RDD及作用于相应RDD上的各种操作; 阶段:是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”,或者也被称为“任务集”。 架构设计 如图9-5所示,Spark运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的工作节点(Worker Node)、每个应用的任务控制节点(Driver)和每个工作节点上负责具体任务的执行进程(Executor)。其中,集群资源管理器可以是Spark自带的资源管理器,也可以是YARN或Mesos等资源管理框架。 与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点:一是利用多线程来执行具体的任务(Hadoop

Spark学习笔记1——第一个Spark程序:单词数统计

狂风中的少年 提交于 2020-04-24 22:59:59
Spark学习笔记1——第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的《Spark快速大数据分析》 添加依赖 通过 Maven 添加 Spark-core_2.10 的依赖 程序 找了一篇注释比较清楚的博客代码[^1],一次运行通过 import scala.Tuple2; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.FlatMapFunction; import org.apache.spark.api.java.function.Function2; import org.apache.spark.api.java.function.PairFunction; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.regex

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 等)

Flink学习笔记-新一代Flink计算引擎

最后都变了- 提交于 2020-04-24 20:22:10
说明:本文为《 Flink 大数据项目实战》学习笔记,想通过视频系统学习 Flink 这个最火爆的大数据计算框架的同学,推荐学习课程: Flink 大数据项目实战: http://t.cn/EJtKhaz 新一代 Flink 计算引擎 (1) Flink 概述 目前开源大数据计算引擎有很多的选择,比如流处理有 Storm 、 Samza 、 Flink 、 Spark 等,批处理有 Spark 、 Hive 、 Pig 、 Flink 等。既支持流处理又支持批处理的计算引擎只有 Apache Flink 和 Apache Spark 。 虽然 Spark 和 Flink 都支持流计算,但 Spark 是基于批来模拟流的计算,而 Flink 则完全相反,它采用的是基于流计算来模拟批计算。从技术的长远发展来看, Spark 用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。而 Flink 基于流来模拟批,在技术上有更好的扩展性。所以大家把 Flink 称之为下一代大数据计算引擎。 从长远发展来看,阿里已经使用 Flink 作为统一的通用的大数据引擎,并投入了大量的人力、财力、物力。目前阿里巴巴所有的业务,包括阿里巴巴所有子公司都采用了基于 Flink 搭建的实时计算平台。同时 Flink 计算平台运行在开源的 Hadoop 集群之上。采用 Hadoop 的 YARN

《大数据原理与技术》学习笔记(一)大数据概述

白昼怎懂夜的黑 提交于 2020-04-24 20:21:51
大数据概述 物联网、云计算和大数据,是第三次信息化浪潮的产物。 技术支撑:存储设备容量的不断增加、CPU处理能力大幅提升、网络带宽不断增加。 数据产生方式:经历了运营式系统、用户原创阶段,进入了感知式系统阶段,物联网技术,可穿戴设备、各种传感器之类的使数据量更大、更密集。 大数据的4V说法 数据量大(Volume):web2.0时代以及物联网技术的发展,数据爆炸。2020年,全球数据量约有35ZB(ZB、EB、PB、TB) 数据类型繁多:90%的数据都是非结构化的,而且包括视屏、邮件、微信、微博、定位等等各种各样的数据。数据种类复杂,对数据的存储和处理提出了新的挑战。存储方面从传统的RDBMS向NoSQl迁移,数据处理上,传统的联机分析处理(On-Line Analytical Processing OLAP)和商业智能工具(BI)大都面向结构化数据,新的支持非结构化数据分析的解决方案正在迅速发展。 处理速度快:很多应用需要数据处理和分析具有秒级响应(这一点与传统的数据挖掘技术有着本质不同)。以谷歌Dremel为例,这个系统能够在几秒内完成PB级数据的查询。这取决于它的分布式集群处理和独特的内部设计。 价值密度低:大量非结构化数据,价值密度显然低于传统的关系型数据中的数据。 大数据的影响 思维上 大数据使得人类研究经历了实验、理论、计算后,进入了第四种思维范式——数据密集型科学