spark

Spark系列——了解Spark

杀马特。学长 韩版系。学妹 提交于 2020-02-28 19:31:25
Spark系列——了解Spark 一、什么是Spark? 1.Spark是一个分布式的并行计算框架。 2.Spark是下一代的map-reduce,扩展了MR的数据处理流程。 3.MR存在的问题: (1)调度慢,启动map、reduce太耗时 MR:map进程,reduce进程 spark:executor进程 10个线程:8 map task(线程) 2 reduce(线程) 进程慢,线程快,spark只用申请一次进程,而MR申请多次。 (2)计算慢,每一步都要保存中间结果落磁盘 MR: map->reduce的中间结果在磁盘 spark: map->reduce的中间结果在磁盘(默认)【除非cache一下指定到内存】 (3)API抽象简单,只有map和reduce两个原语 MR:需要通过脚本把map和reduce穿起来,如果项目中有较多的数据处理,写脚本比较费劲,需要画流程图再写脚本。 Spark:通过map和reduce等算子就能将数据串在一起。 (4)缺乏作业流描述,一项任务需要多轮MR 4.spark与MR的内存比较: 8 map 1G,2个reduce 1G MR:如果执行map执行完,去看yarn这个任务运行的资源情况 这个任务会占用多少资源?2G spark:1个executor 10G 8 map 1G ,2个reduce 1G 8个map执行完,资源占用情况?

spark开发工具idea

陌路散爱 提交于 2020-02-28 13:58:32
0.解压 idea-IU-143.1184.17.tar 到 /home/eric/bigdata/ 1.获取工具执行命令idea.sh的根目录 /home/eric/bigdata/idea-IU-143.1184.17/bin 2.vim .zshrc 加入 export PATH 的最后 export PATH="/home/eric/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin: /usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/eric/bin: /home/eric/bigdata/idea-IU-143.1184.17/bin" 3.使生效 source .zshrc 4. 启动 idea.sh 5. 破解 运行 java -jar IntelljIdea授权码生成器.jar 填入自己的用户名, 点击 gen 后 复制生成的 key,填入 register的位置,完成对 14版本的注册,如果是 15d的,要选择 License server 加入 http://idea.lanyus.com 完成。 6.关于破解工具的下载请见我百度云 或给我邮箱739726136@qq.com发邮件索取 链接: http://pan.baidu.com/s

CentOS7安装scala2.11.8+spark2.0.2

百般思念 提交于 2020-02-28 12:20:12
说明: ( 1、安装JDK1.8+hadoop2.6+SSH: https://www.cnblogs.com/SysoCjs/p/10835793.html 2、安装hive1.2.2+mysql5.7: https://www.cnblogs.com/SysoCjs/p/10835954.html ) Master 192.168.112.10 Slave1 192.168.112.11 Slave2 192.168.112.12 #master:表示在master节点上操作 #slave1:表示在slave1节点上操作 #slave2:表示在slave2节点上操作 一、下载资源包 #master 可以使用wget命令下载资源包,但前提是你有对应版本的镜像下载地址。本人习惯是直接到到官网下载资源包到windows下面,然后通过ctrl+c和ctrl+v的方式,将资源包放到虚拟机上面,虚拟机也必须是有可视化操作界面。 至于为什么选择这两个版本,首先,scala开发,是要在IDEA上面操作的,可以在IDE上面查看scala的插件版本,本人使用的IDEA是2018.2版本,所以对应的scala版本是2.11.8. 二、解压资源包 #master 将上一步下载回来的资源包拷贝到虚拟机的Desket,为了方便管理,使用mv命令统一移动到一个自己认为比较方便的文件夹下: mv /home

09 - Spark - 将Spark程序部署到Yarn中运行

馋奶兔 提交于 2020-02-28 06:05:11
一、启动hadoop 二、修改hadoop配置文件yarn-site.xml,并分发到节点 <property> <name>yarn . nodemanager . pmem - check - enabled< / name> <value>false< / value> < / property> <property> <name>yarn . nodemanager . vmem - check - enabled< / name> <value>false< / value> < / property> 三、修改Spark配置文件spark-env.sh YARN_CONF_DIR= / usr / local / src / hadoop 运行 bin / spark - submit \ -- class org . apache . spark . examples . SparkPi \ -- master yarn \ -- deploy - mode client \ . / examples / jars / spark - examples_2 . 11 - 2 . 1 . 1 . jar \ 100 spark-defaults.conf 查看日志的配置 spark . yarn . historyServer . address=master

比较有前景和新的开源大数据技术分享给你

大憨熊 提交于 2020-02-28 05:21:02
在实现企业背景调查平台的过程中,除了Spark,我们使用了很多开源组件:Flume、canal、HBase、Neo4j等。这些优秀的开源组件使得工程师拥有了更多可能。在大数据领域,开源软件更是最主要的力量。本节将介绍一些比较有前景和新的开源大数据技术。 16.3.1 Apache Flink 不同于大多数起源于硅谷的大数据开源项目,Flink起源于2010年几个德国柏林的大学和研究机构的研究项目,最初项目名是StratoSphere,2014年5月加入Apache软件基金会,改名Flink,并于当年年底从孵化器毕业成为Apache顶级项目。自从加入了Apache,Flink发展速度非常迅猛,截至目前已经有500余名贡献者。如今,每年4月,Flink的技术盛会Flink Summit也会在旧金山如期举行。 与Spark不同,Flink诞生较晚,但具有很强的后发优势,尤其是在流处理方面。另外,Flink也用Table API统一了流和批的处理方式,这点与Spark的DataFrame API类似,但是比Structured Streaming要早。图16-6是Flink的架构图,FlinkML是Flink的机器学习库,Gelly是图处理框架。 图16-6 Flink架构 如图16-6所示,可以看到在Flink中流处理和批处理底层处理引擎是通用的。总的来说

spark core开发-1

爱⌒轻易说出口 提交于 2020-02-28 04:51:49
spark 说说轻快灵巧,但开发真的好多东西😕 回顾spark两种算子: transformation:是lazy的算子,并不会马上执行,需要等到action操作的时候才会启动真正的计算过程,如map,filter,join。 action:是spark应用真正执行的触发动作,如count,collect,save等。 一开始我只知道两个算子的概念,并没有实质理解,但最近有点悟到, transformation返回值是一个RDD,而action返回结果或者将结果写入存储 由于spark是基于scala语言的,但没有scala的功底,后期选择java进行开发: 在spark客户端简单的用scala实现了Wordcount: 进入spark客户端: 现在就成功进来啦 在scala中有两种变量 val:常量 如rdd,只读的 var:变量 sc 可以理解冲java中的sparkcontext spark的功能入口 直接跟路径,默认读取的是HDFS上的数据: 调用flatmap方法将数据从hdfs中读取,并通过“ ”切分成字符串,调用map和reduce进行合并 在调用collect就不会报错了: 接下来进入java开发: Spark-core常用接口介绍: JavaSparkContext 是spark的对外接口,负责向调用该类的java应用提供spark的各种功能,相当于一个百宝箱

Spark核心算子

佐手、 提交于 2020-02-28 02:33:00
Spark RDD : Transformation Meaning map(func) 返回一个新的分布式数据集,该数据集是通过将源的每个元素传递给函数func处理形成的。 filter(func) 返回一个新的数据集,该数据集是通过func处理后在其上返回true 的源元素形成的。 flatMap(func) 与map相似,但是每个输入项都可以映射成0个或多个输出项(因此func应该返回Seq而不是单个项)。 mapPartitions(func) 与map相似,但是分别在每个RDD的分区(块)上运行,因此当运行在类型为T的RDD上时函数func必须被声明成 Iterator<T> => Iterator<U>(即对RDD中的每个分区的迭代器进行操作)迭代器。 mapPartitionsWithIndex(func) 与mapPartitions类似,但它还为func提供表示分区索引的整数值,因此当在类型T的RDD上运行时,func的类型必须为 (Int, Iterator<T>) => Iterator<U>(即带索引的迭代器类型)。 union(otherDataset) 返回一个新的数据集,其中包含了源数据集以及参数数据集中的每个元素。 intersection(otherDataset) 返回一个新的RDD,其中包含源数据集中和参数数据集交集的元素。 distinct(

command设计模式添加withData方法

断了今生、忘了曾经 提交于 2020-02-28 02:15:46
Spark SQL 在删除外部表时,本不能删除外部表的数据的。本篇文章主要介绍如何修改Spark SQL 源码实现在删除外部表的时候,可以带额外选项来删除外部表的数据。 本文的环境是我一直使用的 spark 2.4.3 版本。 1. 修改ANTLR4 语法文件 修改 SqlBase.g4文件中drop Table 相关语句,添加(WITH DATA)?, 修改完之后如下: DROP TABLE (IF EXISTS)? tableIdentifier (WITH DATA)? PURGE? #dropTable 因为,删除external表也不是必须的,所以添加WITH DATA 为可选项,跟 IF EXISTS类似。 2. 修改相关方法 2.1 修改SparkSqlParser.scala文件 /** * Create a [[DropTableCommand]] command. */ override def visitDropTable(ctx: DropTableContext): LogicalPlan = withOrigin(ctx) { DropTableCommand( visitTableIdentifier(ctx.tableIdentifier), ctx.EXISTS != null, ctx.VIEW != null, ctx.PURGE !=

spark-submit参数说明

拥有回忆 提交于 2020-02-28 00:26:37
spark-submit提交 ! 注意 :提交命令写在 shell脚本 中,各个参数之间 不能有注释 ,亲测报错 spark-submit可以提交到spark集群执行,也可以提交到hadoop的yarn集群执行 1.一个最简单的例子,部署 spark standalone 模式后,提交到本地执行。 ./bin/spark-submit \ --master spark://localhost:7077 \ examples/src/main/python/pi.py 2.如果部署 hadoop,并且启动 yarn 后,spark 提交到 yarn 执行的例子如下。   注意,spark 必须编译成支持 yarn 模式,编译 spark 的命令为: ./bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ --driver-memory 1g \ --executor-memory 1g \ --executor-cores 1 \ --queue thequeue \ examples/target/scala-2.11/jars/spark-examples*.jar 10 spark-submit 详细参数说明 参数名 参数说明 -

spark-submit 参数总结

偶尔善良 提交于 2020-02-28 00:19:01
spark-submit 可以提交任务到 spark 集群执行,也可以提交到 hadoop 的 yarn 集群执行。 1)./spark-shell --help :不知道如何使用,可通过它查看命令帮助,[]中括号里面的表示可选的。 2)重要参数讲解: --master master 的地址,提交任务到哪里执行,例如 spark://host:port, yarn, local --name 这个是指定你的application name 应用名称。 --jars 这个是用comma逗号分隔的一系列包含driver和executor的环境变量的包。 --conf 这个是指定一些配置的参数。 --driver-* 这个是指定driver的memory、class-path等。 --executor-memory 这个是设置executor端的内存。 --executor-core 指定executor的core资源 --driver-core 指定driver的core资源 --queue 生产上肯定是以队列的方式来提交的 --num-executor 指定executor 执行者的个数 ----------------------------------------------------------------------------- 原文:https://blog.csdn