
spark
阿雅Yage
这个作者很懒,什么都没留下…
展开
-
Centos7搭建spark(3节点)
集群环境master:192.168.230.10slave1:192.168.230.11slave2:192.168.230.12运行环境spark:2.0.2scala:2.11.4安装scala在/usr/local/src/scala目录下解压:tar zxvf scala-2.12.4.tgz在~/.bashrc配置环境变量SCALA_HOMESCALA_HOM...原创 2019-04-11 22:38:11 · 708 阅读 · 0 评论 -
Spark Streaming:reduceByKeyAndWindow、foreachRDD算子
基于Window窗口的转化操作基于窗口的操作会在一个比StreamingContext 的批次间隔更长的时间范围内,通过整合多个批次的结果,计算出整个窗口的结果。滑动窗口转换操作的计算过程如下图所示,我们可以事先设定一个滑动窗口的长度(也就是窗口的持续时间),并且设定滑动窗口的时间间隔(每隔多长时间执行一次计算),然后,就可以让窗口按照指定时间间隔在源DStream上滑动,每次窗口停放的位置上...原创 2019-06-22 17:12:35 · 652 阅读 · 0 评论 -
Spark Streaming简单入门(示例+原理)
一个简单的示例以一个简单的例子开始spark streaming的学习之旅!我们会从本机的7777端口源源不断地收到以换行符分隔的文本数据流// 在本地启动名为SimpleDemo的SparkStreaming应用// 该应用拥有两个线程,其批处理时间间隔为1s// 创建SparkConfval conf = new SparkConf().setMaster("local[2]").s...原创 2019-06-21 11:10:22 · 31470 阅读 · 7 评论 -
详解MapReduce Shuffle与Spark Shuffle
1 Shuffle简介Shuffle的本意是洗牌、混洗的意思,把一组有规则的数据尽量打乱成无规则的数据。而在MapReduce中,Shuffle更像是洗牌的逆过程,指的是将map端的无规则输出按指定的规则“打乱”成具有一定规则的数据,以便reduce端接收处理。或者说需要将各节点上同一类数据汇集到某一节点进行计算,把这些分布在不同节点的数据按照一定的规则聚集到一起的过程成为Shuffle.。其在...原创 2019-06-04 09:58:09 · 8847 阅读 · 2 评论 -
Spark应用依赖jar包的添加解决方案
在Spark应用中,我们发现,在${SPARK_HOME}\lib文件夹中添加jar包时并不起作用。那么,要如何使得我们编写的Sparky应用依赖的jar有效呢?有如下四种方案:1.使用参数–jars添加本地的第三方jar文件(运行spark-submit脚本的机器上),可以给定多个jar文件,中间用逗号隔开 bin/spark-sql --jars /opt/modules/cdh-5.3...转载 2019-05-23 18:36:15 · 11772 阅读 · 0 评论 -
Spark Shell简单介绍
初始化Spark编写一个Spark程序第一步要做的事情就是创建一个SparkContext对象,SparkContext对象告诉Spark如何连接到集群。在创建一个SparkContext对象之前,必须先创建一个SparkConf对象,SparkConf对象包含了Spark应用程序的相关信息。每个JVM只能运行一个SparkContext,在创建另一个新的SparkContext对象前,必须将...原创 2019-05-17 20:54:11 · 4831 阅读 · 0 评论 -
Spark数据分区(partitionBy分区、partitioner获取分区方式、自定义分区)
在分布式程序中,通信的代价是很大的,因此控制数据分布以获得最少的网络传输可以极大地提升整体性能。和单节点的程序需要为记录集合选择合适的数据结构一样,Spark 程序可以通过控制RDD 分区方式来减少通信开销。分区并不是对所有应用都有好处的——比如,如果给定RDD 只需要被扫描一次,我们完全没有必要对其预先进行分区处理。只有当数据集多次在诸如连接这种基于键的操作中使用时,分区才会有帮助。Spark...原创 2019-05-13 15:52:25 · 15012 阅读 · 0 评论 -
SparkSQL以yarn-cluster读取hive数据运行的错误排查记录
我事先在IDEA里通过Maven将程序及所依赖的jar打成一个jar包,在三台虚拟机(master、slave1、slave2)里启动了hadoop、mysql、yarn。master和slave节点的$SPARK_HOME\conf已经有hive-site.xml,并且已把mysql连接驱动包放到每个节点的SPARK_CLASSPATH下,然后执行:[root@master bin]# ./s...原创 2019-05-25 16:08:41 · 1111 阅读 · 2 评论 -
Spark RDD的另类解读
1 Spark的RDD提到Spark必说RDD,RDD是Spark的核心,如果没有对RDD的深入理解,是很难写好spark程序的,但是网上对RDD的解释一般都属于人云亦云、鹦鹉学舌,基本都没有加入自己的理解。本文基于Spark原创作者的论文,对Spark的核心概念RDD做一个初步的探讨,希望能帮助初学的球友们快速入门。《Resilient Distributed Datasets: A Faul...转载 2019-05-11 20:40:09 · 173 阅读 · 0 评论 -
Spark pairRDD(键值对)操作:聚合、分组、连接、排序
Spark 为包含键值对类型的RDD 提供了一些专有的操作。这些RDD 被称为pair RDD。Pair RDD 是很多程序的构成要素,因为它们提供了并行操作各个键或跨节点重新进行数据分组的操作接口。我们通常从一个RDD 中提取某些字段(例如代表事件时间、用户ID 或者其他标识符的字段),并使用这些字段作为pair RDD 操作中的键。1 Pair RDD的转化操作Pair RDD 可以使用所...原创 2019-05-11 16:42:45 · 5905 阅读 · 0 评论 -
Spark用到的集群管理器
1 集群管理器Spark 可以运行在各种集群管理器上,并通过集群管理器访问集群中的机器。如果你只想在一堆机器上运行Spark,那么自带的独立模式是部署该集群最简单的方法。然而,如果你有一个需要与别的分布式应用共享的集群(比如既可以运行Spark 作业又可以运行Hadoop MapReduce 作业),Spark 也可以运行在两个广泛使用的集群管理器——Hadoop YARN 与Apache Me...原创 2019-05-16 10:20:09 · 1204 阅读 · 0 评论 -
Spark惰性求值与持久化(缓存)
惰性求值意味着当我们对RDD调用转化操作(例如调用map()时),操作不会立即执行。相反,Spark会在内部记录下所要求执行的操作的相关信息。我们不应该把RDD看作存放着特定数据的数据集,而最好把每个RDD当作我们通过转化操作构建出来的、记录如何计算数据的指令列表。把数据读取到RDD的操作也同样是惰性的。因此,当我们调用sc.textFile()时,数据并没有读取进来,而是在必要时才会读取。和转化...原创 2019-05-11 09:35:25 · 1956 阅读 · 1 评论 -
Spark应用运行架构(Driver、Executor)和提交应用(spark-submit)
1 Spark运行时的架构在分布式环境下,Spark 集群采用的是主/ 从结构。在一个Spark 集群中,有一个节点负责中央协调,调度各个分布式工作节点。这个中央协调节点被称为驱动器(Driver)节点,与之对应的工作节点被称为执行器(executor)节点。驱动器节点可以和大量的执行器节点进行通信,它们也都作为独立的Java 进程运行。驱动器节点和所有的执行器节点一起被称为一个Spark 应...原创 2019-05-15 16:42:10 · 2249 阅读 · 0 评论 -
Spark部署模式详解(Local,Standlone,Yarn)
1 为什么需要YarnYarn 的全称是 Yet Anther Resource Negotiator(另一种资源协商者)。它作为Hadoop 的一个组件,官方对它的定义是一个工作调度和集群资源管理的框架。Yarn 最早出现于 Hadoop 0.23 分支中,0.23 分支是一个实验性分支,之后经过了几次迭代,最后发布于 2014 年 6 月的 0.23.11 版本(该分支的最后一个版本)。在...原创 2019-05-15 10:25:56 · 2897 阅读 · 2 评论 -
Spark RDD常见的转化和行动操作
1基本RDD1.1 针对各个元素的转化操作两个最常用的转化操作是map()和filter()。转化操作map()接收一个函数,把这个函数用于RDD中的每个元素,每个元素经函数的返回结果作为新RDD中对应元素的值。而转化操作filter()则接收一个函数,并将RDD中满足该函数的元素放入新RDD中返回。例如,用map()对RDD中的所有数求平方:val input = sc.parallel...原创 2019-05-09 11:26:09 · 1197 阅读 · 0 评论 -
flume+kafka+spark streaming(Receiver)+hive构建日志采集系统
[root@master boya]# head flume_exec_test.txt {"order_id": 2539329, "user_id": 1, "eval_set": "prior", "order_number": 1, "order_dow": 2, "hour": 8, "day": 0.0}{"order_id": 2398795, "user_id": 1, "ev...原创 2019-07-14 17:06:31 · 947 阅读 · 2 评论