SPARK
主要介绍spark的应用
ouprince
这个作者很懒,什么都没留下…
展开
-
关于spark减少日志量
在conf目录下创建一个名为 log4j.properties 的文件来管理日志设置。Spark开发者们已经在Spark中加入了一个日志设置文件的模板,叫做 log4j.properties.template. 要让日志不那么啰嗦,可以把这个日志模板文件复制到 conf/log4j.properties 来作为日志设置文件。然后通过下面的设定来降低日志级别,只是显示和警告及更严重的信息:将...转载 2018-01-22 14:37:30 · 661 阅读 · 0 评论 -
一起学Spark(14)-- 其他简介
1.Apache Zookeeper:Apache Zookeeper 是一个分布式,无主服务器的协调服务。假设在分布式环境中有一个无主服务,那就表明没有协调中心,而如果没有协调中心,则集群中每一个zookeeper节点都可以被启动。假设Zookeeper 服务可用,Spark master 就能依赖它确保在给定的任意时刻,只有一个master控制集群。因此当前master可以在任意给定节...转载 2018-02-27 11:16:19 · 490 阅读 · 0 评论 -
一起学Spark(13) -- 数据 Shuffle 与分区器
许多转换操作需要在集群中shuffle数据,包括join,各种ByKey等。所有这些操作都很消耗性能,因为它们可能需要对整个数据集进行shuffle,排序以及重新分区。但是有一个小技巧可以提高性能,即预分区。如果rdd已分区,就能避免数据shuffle,因为假设rdd已分区,那么特定的键值就会在同一个分区内,因此能在本机进行处理,这种方式就不需要通过网络做数据shuffle了。val p...转载 2018-02-26 18:46:18 · 576 阅读 · 0 评论 -
一起学spark(12)-- 关于RDD和DataFrame 的缓存
(1)Rdd持久化 当调用RDD的persist()或者cache()方法时,这个RDD的分区会被存储到缓存区中,Spark会根据spark.storage.memoryFraction 限制用来缓存的内存占整个JVM堆空间的比例大小,如果超出限制,旧的分区数据会被移出内存。 Spark默认的 cache() 操作会以MEMORY_ONLY 的存储等级持久化数据,意味着缓存新的RD...转载 2018-02-07 18:05:30 · 8351 阅读 · 2 评论 -
一起学spark(11) -- Spark SQL 和 DataFrame 操作
Spark SQL是在Spark 1.0 中新加入的spark 组件,并快速成为了Spark中教受欢迎的操作结构化和半结构化数据的方式。DataFrame 是由 ROW对象组成的rdd,每个ROW对象表示一条记录,类似我们的表结构。(1)采用spark sql 执行数据查询和插入from pyspark import SparkContext,SparkConffrom pyspark...原创 2018-02-06 19:19:57 · 509 阅读 · 2 评论 -
一起学spark(10) -- spark SQL中的结构化数据之一 : Apache Hive
Apache Hive 是Hadoop 上的一种常见的结构化数据源,Hive 可以在HDFS 内或者其他存储系统上存储多种格式的表,这些格式从普通文本到列式存储格式,应有尽有。Spark SQL可以读取 Hive 支持的任何表。要把 spark sql 连接到已有的 Hive 上,你需要提供hive 的配置文件,需要将hive-site.xml 文件复制到 Spark 的./conf/目录下,...转载 2018-02-02 18:15:35 · 324 阅读 · 0 评论 -
一起学spark(9) -- 累加器和广播变量
通常在向spark传递函数时,可以使用驱动器程序中的变量,但是集群中运行的每个任务都会得到这些变量的一份新的副本,更新这些副本的值也不会影响驱动器中的对应变量。累加器:累加器提供了将工作节点中的词聚合到驱动器程序中的简单语法。eg:统计空行file = sc.textFile(input_file)#创建Accumulator[int] 并初始化为0blankLines = sc....转载 2018-02-02 17:01:39 · 243 阅读 · 0 评论 -
一起学spark(8) -- 针对两个pair rdd 的连接操作以及pair RDD 的行动操作
针对两个pair RDD的连接转化操作 (rdd = {(1,2),(3,4),(3,6)} other = {(3,9)})rdd.subtractByKey(other) #删掉rdd中与other rdd 中的键相同的元素 {(1,2)}rdd.join(other) #对两个rdd内连接 {(3,(4,9)),(3,(6,9))}rdd.leftO...转载 2018-02-02 16:08:20 · 1320 阅读 · 0 评论 -
一起学spark(7) -- 键值对RDD(pair rdd)
键值对RDD是Spark中许多操作所需要的常见数据类型。通常用来进行聚合运算。键值对即所谓的 key-value 形式的数据,比如 ('name','Lucy') name 是 key , Lucy 是value。创建pair rdd 通常是用mappairs = lines.map(lambda x:(x.split()[0],x)) #创建pair rdd ,key 为 x.s...转载 2018-02-02 14:54:14 · 526 阅读 · 0 评论 -
一起学spark(6)-- 仅在数值RDD上的统计操作
有一些行动操作仅仅适用于数值型的RDD,其他类型是不支持的,如以下代码:count() rdd的元素个数mean() 元素平均值sum() 总和max() ...转载 2018-02-02 14:17:03 · 2356 阅读 · 0 评论 -
一起学Spark(5) -- 基本rdd 常见的转换和行动操作
1.转换操作1.1 一般的元素操作#map 和 flatmap#map接受一个函数,把这个函数用于每个rdd中的元素nums = sc.parallelize([1,2,3,4])squared = nums.map(lambda x:x*x) #[1,4,9,16] #flatmap也是接受一个函数,把这个函数用于每个rdd中的元素 并扁平化lines = sc....转载 2018-01-26 17:57:23 · 1641 阅读 · 0 评论 -
一起学Spark(4) -- 向Spark传递函数
向Spark传递函数注意当你传递的对象是某个对象的成员,或者包含了对某个对象中一个字段的引用时(如self.field),Spark就会把整个对象发送到工作节点,这可能比你想要传递的东西大得多。#-*- coding:utf-8 -*-class SearchFunctions(obj...转载 2018-01-26 16:25:33 · 779 阅读 · 0 评论 -
一起学Spark(3) -- RDD介绍和创建
RDD介绍和创建RDD是Spark的核心:分布式元素集合。(弹性分布式数据集)Spark中的RDD就是一个不可变的分布式对象集合。每个RDD都被分成多个子分区,这些分区运行在集群中的不同节点之上。用户可以有两种方法创建Rdd:读取一个外部数据集或在驱动器程序中分发驱动器程序中的对象集...转载 2018-01-26 15:51:19 · 377 阅读 · 0 评论 -
一起学Spark(2)-- Spark组件与YARN 集群运行
Spark组件与在yarn集群上的运行1.Driver driver 前面介绍过,是spark的驱动器程序,也是负责启动和管理运行Spark应用的进程。确切的说,driver是维护所有计算节点的连接实体。 driver维护spark运行的上下文(context),允许Spark给executor分...转载 2018-01-22 17:32:16 · 763 阅读 · 0 评论 -
一起学Spark (1) -- spark介绍与初始化
Spark介绍与初始化参考资料《Spark 大数据集群计算的生产实践》与《Spark快速大数据分析》spark是大数据的下一代数据处理引擎。支持三种语言,Python,Java 以及它的原生语言Scala。我主要介绍的是python语言编写的spark,因为我工作中也主要是spark批处理数...转载 2018-01-22 15:55:49 · 1216 阅读 · 0 评论