spark

Spark快速入门(1)

白昼怎懂夜的黑 提交于 2020-02-26 23:12:30
1 安装Spark 首先,到 https://spark.apache.org/downloads.html 选择最新的 Spark 版本和 Hadoop 版本(实际上我们暂时用不上 Hadoop,所以任何版本都行),然后下载压缩包。 完毕后,将其中的文件夹解压到某个特定的位置,比如,我将解压出的文件夹命名为 spark ,并放在我的主文件夹 /home/qyx 里,这样我就可以执行 /home/qyx/spark/bin/spark-shell 来运行 Spark 的终端了。为了避免每次打开 Spark 都要输入很长一串的路径,可以将 Spark 的 bin 目录加入到系统路径中,例如我在 ~/.bashrc 文件中写入了 export PATH=$PATH:/home/qyx/spark/bin Mac下环境变量配置见 http://www.cnblogs.com/yxzfscg/p/4993185.html 于是安装过程就这么愉快地结束了。 2 安装sbt Mac上可以直接使用 brew install sbt 3 简单的测试例子 /* SimpleApp.scala */ import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark

Dream_Spark-----Spark 定制版:004~Spark Streaming事务处理彻底掌握

て烟熏妆下的殇ゞ 提交于 2020-02-26 22:56:41
Spark 定制版:004~Spark Streaming事务处理彻底掌握 本讲内容: a. Exactly Once b. 输出不重复 注:本讲内容基于 Spark 1.6.1版本(在2016年5月来说是Spark最新版本)讲解。 上节回顾: 上节课 通过案例透视了Spark Streaming Job 架构 和运行机,并结合源码进行了详细解说;同时也了解了Spark Streaming Job的容错机制,包括 Executor 与 Driver两方面的容错机制。 也就是说Job的事务处理,主要是在Executor 与 Driver两个应用中展开 开讲 首先,我们必须知道什么是事务及其一致性? 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使 数据库 从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交

Spark SQL/DataFrame/DataSet操作(一)-----读数据

瘦欲@ 提交于 2020-02-26 14:33:57
一、读取数据源 (1)读取json ,使用spark.read。注意:路径默认是从HDFS,如果要读取本机文件,需要加前缀 file://,如下 scala> val people = spark.read.format("json").load("file:///opt/software/data/people.json") people: org.apache.spark.sql.DataFrame = [age: bigint, name: string] scala> people.show +----+-------+ | age| name| +----+-------+ |null|Michael| | 30| Andy| | 19| Justin| +----+-------+ spark.read.format("json").load(" file:///opt/software/data/people.json ") 等价于spark.read.json(" file:///opt/software/data/people.json ") 如要要读取其它格式文件,只需修改format("json")即可,如format("parquet") (2)读取Hive表,使用spark.sql。其中hive数据库名default(默认数据库名可省略),表为people

linux下Spark安装与环境配置

独自空忆成欢 提交于 2020-02-26 14:02:11
Hadoop测试: 按照上一篇文章安装完Hadoop集群之后,启动hdfs文件系统及yarn资源管理器(也可通过start-dfs.sh和start-yarn.sh完成): start-all.sh 之后通过jps查看是否成功: jps 成功之后如下图: 点击链接https://www.scala-lang.org/download/2.12.10.html,下载对应版本scala(本文选择scala 2.12.10): 下载好后解压到:/usr/local/ sudo tar zxvf ~/Downloads/scala-2.12.10.tgz -C /usr/local/ 删除安装包: rm ~/Downloads/scala-2.12.10.tgz 进入到减压目录并重命名: cd /usr/local/ sudo mv scala-2.12.10 scal 配置环境变量: sudo vim /etc/profile 执行source命令并测试: source /etc/profile scala -version spark安装: 点击链接 http://spark.apache.org/downloads.html 进行下载(本文选择2.4.4版本): 下载好后解压至/usr/local/: sudo tar zxvf ~/Downloads/spark-2.4.4-bin

kubectl exec 执行 容器命令

↘锁芯ラ 提交于 2020-02-26 03:28:05
格式如下: kubectl exec -it podName -c containerName -n namespace -- shell comand 1 创建目录 kubectl exec -it spark-master-xksl -c spark-master -n spark -- mkdir -p /usr/local/spark 注意: shell命令前,要加-- 号,不然shell命令中的参数,不能识别 来源: 51CTO 作者: 季高520 链接: https://blog.51cto.com/11457238/2161319

kubectl exec 执行 容器命令

百般思念 提交于 2020-02-26 03:27:58
格式如下: kubectl exec -it podName -c containerName -n namespace -- shell comand 1 创建目录 kubectl exec -it spark-master-xksl -c spark-master -n spark -- mkdir -p /usr/local/spark 注意: shell命令前,要加-- 号,不然shell命令中的参数,不能识别 来源: 51CTO 作者: 故新 链接: https://blog.51cto.com/xingej/2161324

在Apache Spark中使用UDF

允我心安 提交于 2020-02-26 03:06:01
用户自定义函数(UDF)是大多数SQL环境的一个关键特性,其主要用于扩展系统的内置功能。UDF允许开发人员通过抽象其低级语言实现在更高级语言(如SQL)中应用的新函数。Apache Spark也不例外,其为UDF与Spark SQL工作流集成提供了各种选项。 在本篇博文中,我们将回顾Python、Java和Scala上的Apache Spark UDF和UDAF(用户自定义的聚合函数)实现的简单示例。我们还将讨论重要的UDF API功能和集成点,包括各发行版本之间的当前可用性。总而言之,我们将介绍一些重要的性能注意事项,使您对应用程序中利用UDF的选择有所了解。 Spark SQL UDFs UDF转换了表中单个行的数值,为每行生成单个对应的输出值。例如,大多数的SQL环境都提供了一个UPPER函数,同时返回了一个大写版本的字符串以作为输入。 自定义函数可以在Spark SQL中定义和注册为UDF,并具有可用于SQL查询的关联别名。下面我们将为您介绍一个简单的例子,我们将定义一个UDF将以下JSON数据中的温度值从摄氏度(Celsius)转换为华氏度(Fahrenheit): 下面的示例代码使用SQL别名CTOF注册我们的转换UDF,然后使用它从SQL查询中转换每个城市的温度值。为简洁起见,省略了SQLContext对象和其他样板代码的创建,并在每个代码段下面提供了完整列表的链接。

在Apache Spark中使用UDF

我只是一个虾纸丫 提交于 2020-02-26 03:05:56
用户自定义函数(UDF)是大多数SQL环境的一个关键特性,其主要用于扩展系统的内置功能。UDF允许开发人员通过抽象其低级语言实现在更高级语言(如SQL)中应用的新函数。Apache Spark也不例外,其为UDF与Spark SQL工作流集成提供了各种选项。 在本篇博文中,我们将回顾Python、Java和Scala上的Apache Spark UDF和UDAF(用户自定义的聚合函数)实现的简单示例。我们还将讨论重要的UDF API功能和集成点,包括各发行版本之间的当前可用性。总而言之,我们将介绍一些重要的性能注意事项,使您对应用程序中利用UDF的选择有所了解。 Spark SQL UDFs UDF转换了表中单个行的数值,为每行生成单个对应的输出值。例如,大多数的SQL环境都提供了一个UPPER函数,同时返回了一个大写版本的字符串以作为输入。 自定义函数可以在Spark SQL中定义和注册为UDF,并具有可用于SQL查询的关联别名。下面我们将为您介绍一个简单的例子,我们将定义一个UDF将以下JSON数据中的温度值从摄氏度(Celsius)转换为华氏度(Fahrenheit): 下面的示例代码使用SQL别名CTOF注册我们的转换UDF,然后使用它从SQL查询中转换每个城市的温度值。为简洁起见,省略了SQLContext对象和其他样板代码的创建,并在每个代码段下面提供了完整列表的链接。

Spark 源码解析 : DAGScheduler中的DAG划分与提交

痞子三分冷 提交于 2020-02-26 02:24:54
一、Spark 运行架构 Spark 运行架构如下图: 各个RDD之间存在着依赖关系,这些依赖关系形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG,进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了Stage的划分,DAGScheduler基于每个Stage生成TaskSet,并将TaskSet提交给TaskScheduler。TaskScheduler 负责具体的task调度,在Worker节点上启动task。 二、源码解析:DAGScheduler中的DAG划分 当RDD触发一个Action操作(如:colllect)后,导致SparkContext.runJob的执行。而在SparkContext的run方法中会调用DAGScheduler的run方法最终调用了DAGScheduler的submit方法: def submitJob[T, U]( rdd: RDD[T], func: (TaskContext, Iterator[T]) => U, partitions: Seq[Int], callSite: CallSite, resultHandler: (Int, U) => Unit, properties: Properties): JobWaiter[U] = { //

Spark学习四:Spark架构设计和RDD的stage划分

不羁的心 提交于 2020-02-26 00:32:29
文章目录 架构设计 Spark运行基本流程 RDD之间的依赖关系 stage的划分 RDD运行过程 参考网址 架构设计 学习完 Spark学习二:spark基础理论知识 ,我们可以对Spark的一些组件和术语应该有了基本的认识,下面介绍Spark的架构设计。本节内容主要参考 厦门大学林子雨老师的Spark课程 。非常感谢林子雨老师! 如下图所示。 Spark运行架构包括集群资源管理器( Cluster Manager )、运行作业任务的工作节点( Worker Node )、每个应用的任务控制节点( driver program )和每个工作节点上负责具体任务的执行进程( Executor )。其中,集群资源管理器可以是Spark自带的资源管理器,也可以是YARN或Mesos等资源管理框架。 与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点: 一是利用多线程来执行具体的任务(Hadoop MapReduce采用的是进程模型) (Spark和MapReduce的运行模式在 Spark学习二:spark基础理论知识 里也详细说明过),减少任务的启动开销; 二是Executor中有一个BlockManager存储模块 ,会将内存和磁盘共同作为存储设备,当需要多轮迭代计算时,可以将中间结果存储到这个存储模块里,下次需要时