- 博客(27)
- 收藏
- 关注
原创 spark1.6源码-----任务提交与执行之任务提交
我是从RDD的collect函数进去的。 /** * Return an array that contains all of the elements in this RDD. */ //调用了sparkContext的runJob //返回一个Array集合 def collect(): Array[T] = withScope { val resul...
2018-12-23 09:16:16
304
原创 spark1.6源码-----任务提交与执行之RDD的构建
概述:spark的执行流程网上一大堆,我就不写了。本文以sparkWordCount为例来解析 val input=sc.textFile("C:\\Users\\pc\\PycharmProjects\\PyNews\\word*",1) .flatMap(_.split(" ")).map(x=>(x,1)).reduceByKey(_+_).sa...
2018-12-22 22:37:51
225
原创 Spark1.6-----源码解读之BlockManager
前面已经介绍了BlockManager的主要组件,现在来看看BlockManager自身的实现。dropFromMemory:当memory sotre的空间满了之后会调用这个方法,它会抛弃一些block块。reportBlockStatus:向BlockManagerMaster报告Block的状态putSingle:将一个由对象构成的Block写入存储系统putBytes:将序...
2018-12-16 20:21:45
495
原创 Spark1.6-----源码解读之BlockManager组件MemoryStore
MemoryStore负责将没有序列化的java对象数组或者序列化的ByteBuffer存储到内存中:MemoryStore内存模型maxUnrollMemory:当前Driver或者Executor的block最多提前占用的内存的大小,每个线程都能占内存。(类似上课占座,人没到,但是位置有了)maxMemory:当前Driver或者Executor存储所能利用最大内存大小。cur...
2018-12-16 13:49:29
382
1
原创 Spark1.6-----源码解读之BlockManagerMaster对BlockManager的管理
Driver的BlockManagerMaster对存在与Executor上的BlockManager统一管理。比如Executor需要向Driver发送注册BlockManager,更新Executor上Block的最新信息。但是Driver和Executor存在与不同的机器上,通过spark消息系统进行消息传递的。Driver的BlockManager会持有BlockManagerMaster...
2018-12-16 12:35:36
245
原创 Spark1.6-----源码解读之BlockManager组件shuffle服务和客户端
spark是分布式部署的,每个Task最终都运行在不同的机器节点上,map任务的输出结果直接存储到map任务所在的机器的存储体系,reduce极有可能不再同一个机器上运行,所以需要远程下载map任务的中间输出。所以存储系统中也包含ShuffleClient。在BlockManager 176行initialize方法中初始化了shuffleClient: def initialize(...
2018-12-16 11:59:59
222
原创 Spark1.6-----源码解读之BlockManager的概述
BlockManager的实现BlockManager是spark存储体系中的核心组件,Driver 和Executor都会创建BlockManager。在SparkEnv 364行会创建BlockManager: // NB: blockManager is not valid until initialize() is called later. val block...
2018-12-16 10:24:13
208
原创 Spark1.6-----源码解读之TaskScheduler启动
必须启动TaskScheduler才能让他发挥作用SparkContext 530行: _taskScheduler.start()实际去调TaskSchedulerImpl 143行: override def start() { backend.start() if (!isLocal && conf.getBoolean("spa...
2018-12-15 21:32:26
239
1
原创 Spark1.6-----源码解读之DAGScheduler
纯鼠标点代码写出来的,阅读时希望你能跟着这样操作。DAGScheduler的主要用于在任务正式提交给TaskSchedulerImpl提交之前做一些准备工作。比如创建job,将DAG的RDD划分到不同的stage,提交stageSparkContext 525行创建DAGScheduler: _dagScheduler = new DAGScheduler(this)DAG...
2018-12-15 20:27:11
182
原创 Spark1.6-----源码解读之TaskScheduler
TaskScheduler是SparkContext重要成员之一,负责任务的提交,并且请求集群管理器对任务调度。他也可以看做任务调度的客户端。SparkContext 522行 创建TaskScheduler: val (sched, ts) = SparkContext.createTaskScheduler(this, master)SparkContext 2592行 ...
2018-12-15 20:01:43
171
原创 Spark1.6-----源码解读之SparkEnv
我是跟着源码点进去一步一写的,所以观看时希望大家能一步一跟着源码走,不要只看博文。在SparkContext 284行创建SparkEnv: // This function allows components created by SparkEnv to be mocked in unit tests: private[spark] def createSparkEnv( ...
2018-12-15 19:30:27
218
原创 spark RDD进行行转列并且生成唯一标识
比如说像这样的一条数据:("1",Seq("你好","我爱"))想转化为如下形式:(1,你好)(1,我爱)直接撸代码: 这里面的转化看懂了么。其实很简单,生成一个List,List((1,你好), (1,我爱)),然后就是wordcount里面使用的flatMap把list打扁生成一个大的list。然后使用zipWithIndex生成一个有序id,一定要collect才会...
2018-12-12 19:39:56
1488
原创 Spark 消费Kafka数据
spark RDD消费的哦,不是spark streaming。导maven包:注意版本哦,要跟自己机器的一致 <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka --> <dependency> <groupId>org...
2018-12-12 19:21:08
889
原创 Spark写数据到kafka
spark RDD只能通过原生API去写。不是spark streaming哦。导maven包:这一步不能复制粘贴,要看看你机器的kafka版本是多少。然后去下载对应的包 <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka --> <dependency>...
2018-12-12 19:11:01
2664
1
原创 Java API连接Hive
首先导maven包: <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.1.0</versi...
2018-12-12 19:02:08
921
原创 hadoop javaapi读取文件夹下的数据
导包:import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.*;import org.apache.hadoop.io.IOUtils;import java.io.FileOutputStream;import java.io.OutputStream;import java.net.URI...
2018-12-12 18:55:01
936
1
原创 hanlp添加自定义字典
两步:第一步:将自定义的字典放到custom目录下,然后删除CustomDicionary.txt.bin,因为分词的时候会读这个文件。如果没有的话它会根据配置文件中路径去加载字典生成bin文件。第二步:去配置文件把自己添加自定义的文件的路径添加进去,注意一定要添加末尾后面而且结束时不能有;号,我添加在其他位置都不好使。而且相对路径也不好使上面是把bin文件删掉后跑起来的样子,...
2018-12-11 23:30:46
1737
原创 spark集群使用hanlp进行分布式分词操作
分两步:第一步:实现hankcs.hanlp/corpus.io.IIOAdapterpublic class HadoopFileIoAdapter implements IIOAdapter { @Override public InputStream open(String path) throws IOException { Configur...
2018-12-11 23:04:12
572
原创 使用Idea maven打 jar包
点击路线如下图所示: 注意上面这张图的第二步骤:记得把目录选到src那个文件夹下。 根据你的需要进行筛选jar包,双击即可添加或者删除。spark 打包后拿到yarn上跑时可能会出现classnotfoundException异常,这时需要把scala包打到这个大jar包里面去。希望能帮到有需要的朋友。 ...
2018-12-11 22:54:30
304
原创 hive生成唯一标识
在CDH中有个叫hive-contrib-1.1.0-cdh5.7.0.jar的jar包,名字因版本不同而不同。/opt/cloudera/parcels/CDH/jars/hive-contrib-1.1.0-cdh5.7.0.jar,这是我的jar包所在地。然后两句话: add jar /opt/cloudera/parcels/CDH/jars/hive-contrib-1.1.0-...
2018-12-10 23:33:36
2718
3
原创 python爬今日头条
一:解析参数今日头条的数据全部都是ajax异步加载的。谷歌浏览器按f12选择network点击XHR会得到如上图所示,上图请求的url中有如下几个参数会变化:① category② max_behot_time③ max_behot_time_tmp④ as⑤ cp⑥ _signature其中只需要category,max_behot_time,_signature这个三个参数就可...
2018-12-10 22:49:40
2217
原创 LogStash官方文档6.x学习笔记---------day1
上个星期之前看过一段时间,对logstash基础有一定了解。现在来好好记录一下我的学习的东西。logstash的工作流程: 由input--->filter---->output构成。执行模型:Logstash事件处理管道协调input--->filter---->output的执行。Logstash管道中的每个输入阶段都在自己的线程中运行。输入将事...
2018-09-21 13:43:08
612
原创 ElasticSearch6.x官方文档学习总结
一:配置。 配置JVM参数,系统参数,配配置文件。系统启动前通过Bootstrap Checks检查配置。二:升级ES。三:数据副本模型。 针对数据读写时过程,以及在这个过程的错误处理进行介绍。四:文档API。 分为操作单个文档和的多文档API。五:搜索API。 比较重要的Request Body Search部分,和URL Searc...
2018-09-21 10:44:08
909
原创 elasticsearch6.x官方文档学习笔记----Document API翻译
开始之前先学习副本 介绍:Elasticsearch的每个索引都被分成shard ,每个shard 可以有多个副本。这些副本称为复制组,在添加或删除文档时必须保持同步。如果我们不这样做,从一个副本阅读将会导致与从另一个副本阅读非常不同的结果。保持碎片副本同步并提供从中读取的过程称为数据复制模型。 Elasticsearch的数据复制模型基于主备份模型。该模型基...
2018-09-18 13:40:15
1466
原创 elasticsearch6.x官方文档学习笔记----ElasticSearch参数配置
配置ElasticSearch主要介绍了ES上线前重要的基本配置重要的系统基本配置设置JVM参数此文件的默认位置是config/jvm.options(从tar或zip发行版/etc/elasticsearch/jvm.options安装时)和(从Debian或RPM软件包安装时)。此文件包含遵循特殊语法的以行分隔的JVM参数列表:仅包含空格的行被忽略 以...开...
2018-09-18 10:19:17
1385
原创 elasticsearch6.x官方文档学习笔记----Getting Started
Getting Started本文主要介绍了如下操作:1)基本概念。2)索引的基本操作。3)查询操作,filter操作,聚集操作。基本概念1)准实时:ES搜索是一个接近实时的搜索平台。这意味着从您索引一个文档的时间到它可搜索的时间,有一个轻微的延迟(通常是一秒)。2)集群:ES是一个集群,一个集群由一个惟一的名称标识id,默认情况下是“elasticsearch。3...
2018-09-17 18:13:38
1972
原创 派送员问题——————人生第一次在考试中编程题过了
题目描述 派送员在地图的(0,0)位置,地图的边城都为1,给出几个位置(点),请问派送员送餐的最短往返距离距离(送完所有位置的行走最短距离+最后送完的位置到0,0的距离)。 思路:采用递归。找出所有情况。 代码如下:package 秋招练习;import java.util.Scanner;public class 派送员 { //递归 static int r...
2018-08-07 17:22:43
460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人