spark技术探索
spark基础、使用、原理、架构
代码人的自白
编程技术爱好者
展开
-
scala函数式编程
scala函数式编程1.非匿名函数- 定义一个函数- 将函数赋值给一个变量 注意赋值时的下划线- 直接使用变量即可def fun1(name : String ){println(name)}val fun1_v = fun1 _ fun1_v(“hello function”)2.匿名函数- 定义一个匿名函数以及输入- 将函数赋值给一个变量 - 直...原创 2018-06-06 15:44:08 · 230 阅读 · 0 评论 -
scala模式匹配、类型系统
1.scala模式匹配scala 中没有switch case 用match代替:paste可以在命令还下输入多行,最后编译执行 def bigData(data:String){ data match{ case "spark" =>println("spark") case "hadoop"原创 2018-06-06 19:21:50 · 223 阅读 · 0 评论 -
scala基础操作
1.apply的用法scala> val array= Array(1,2,3,4)array: Array[Int] = Array(1, 2, 3, 4)scala> val array= Array。apply(1,2,3,4)array: Array[Int] = Array(1, 2, 3, 4)两句代码的效果一样2.表达式本身就有返回值v...原创 2018-06-14 18:40:08 · 304 阅读 · 0 评论 -
scala基础操作2
1.函数基础操作(成员变量为private的情况)private形式的变量不能在外界进行访问scala> class c{ | private var c = "spark" | def sayName (){println(c)} | def getName = c | }defined class cscala> val d...原创 2018-06-15 18:30:21 · 159 阅读 · 0 评论 -
scala 并发编程
1.Actor的创建、启动和消息收发//相当于java的thread//java多线程是共享全局的加锁的编程机制/** Scala提供了Actor trait来让我们更方便地进行actor多线程编程,就Actor trait就类似于Java中的Thread和Runnable一样,是基础的多线程基类和接口。我们只要重写Actor trait的act方法,即可实现自己的线程执行体,与Ja...原创 2018-06-20 11:36:33 · 942 阅读 · 0 评论 -
spark 单词统计开发及提交(scala版本)
1.利用scala写单词统计package com.dt.sparkimport org.apache.spark.{SparkConf, SparkContext}object WordCount { def main(args: Array[String]) { val conf = new SparkConf().setAppName("WordCount").set...原创 2018-06-22 18:23:07 · 1024 阅读 · 0 评论 -
spark单词统计开发(java版)
1.java代码import java.util.Arrays;import java.util.Iterator;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apa...原创 2018-06-25 15:26:15 · 869 阅读 · 0 评论 -
hadoop、spark相关概念
1.启动hdfs模块 此时 50070就可以访问了,加载磁盘./start-dfs.sh主节点:NameNode SecodaryNameNode NameNode: 管理文件系统的命名空间。它维护着文件系统树及整棵树内所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。NameNode也记录着每个文件中各个块所在...原创 2018-06-07 18:32:48 · 260 阅读 · 0 评论 -
spark集群原理
设计理念为了解决Standalone模式下的Master的SPOF,Spark采用了ZooKeeper提供的选举功能。Spark并没有采用ZooKeeper原生的Java API,而是采用了Curator,一个对ZooKeeper进行了封装的框架。采用了Curator后,Spark不用管理与ZooKeeper的连接,这些对于Spark来说都是透明的。Spark仅仅使用了100行代码,就实现了M...原创 2018-06-27 14:13:32 · 923 阅读 · 0 评论 -
Spark Map/MapPair/reduceByKey 使用Demo
package com.;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.a...原创 2018-10-11 14:58:18 · 704 阅读 · 0 评论 -
spark RDD 原理图
下图为spark数据统计的整个流程:原创 2018-06-26 18:49:54 · 333 阅读 · 0 评论 -
Spark内存溢出解决方案
项目背景:flume收集数据后存储在hdfs上,数据定期装在到hive中,前端使用sql通过spark查询数据。flume接入数据后被切分为很多小文件, 具体配置:hdfs.roundValue=4表示4分钟生成一个文件。小文件之间是没有顺序,所以数据在查询的时候就必须排序,每次排序都会耗费大量的内存资源,此时spark会出现OOM的情况。处理方案:专有线程合小文件,并且在合并时...原创 2018-06-27 17:03:25 · 3825 阅读 · 0 评论 -
SparkStreaming实时处理应用
import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;import org.apache.log4j.Logger;import org.apache.spark.SparkConf;import o...原创 2018-11-14 16:08:10 · 616 阅读 · 0 评论 -
SparkStreaming序列化问题处理
经过个把月的摸爬滚打,项目终于在磕磕绊绊中成型了。先来个简介:用python 写了一堆的聚类算法,将线上数据进行聚类分析,找出离群点,建立模型。用这些模型用来检测用户的行为。bug产生的过程实时检测部分采用SparkStreaming实现,在使用过程中发现代码启动后一直会包序列化问题,瞻仰下咱们这个bug,测试美眉将bug级别从normal改到high,又从high改到了cri,那个扎...原创 2018-11-23 11:31:26 · 1639 阅读 · 1 评论