大数据
文章平均质量分 91
Oeljeklaus
python开发,大数据,图数据,数据分析
展开
-
大数据知识(一):Zookeeper
Zookeeper简介 Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper是为别的分布式程序服务的 B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务…… D、虽然说可以提供...原创 2018-05-17 21:54:43 · 1380 阅读 · 0 评论 -
JStorm源码分析(一)Storm执行脚本
JStorm源码分析(一):Storm执行脚本storm脚本Storm脚本是python脚本 调用storm脚本时,执行其中的main方法,mian方法源代码如下: main方法中有两个参数: COMMAND = args[0] ARGS = args[1:] 所有的COMMAND: COMMANDS = { “jar”: jar, “kill”: kill, “she...原创 2018-07-10 21:20:54 · 703 阅读 · 0 评论 -
Spark源码解析(二):SparkContext流程
SparkContext内部执行流程SparkContext内部执行的时序图对于这个时序图的具体描述如下:1.SparkSubmit在main()方法中执行,然后根据提交的类型调用相应的方法,这里是”Submit”,调用submit()方法,submit()里面进行一些判断后,使用反射Class.forName(childMainClass, true, loader),然...原创 2018-07-09 08:57:59 · 3751 阅读 · 1 评论 -
Spark源码解析(一):Spark执行流程和脚本
Spark执行流程Spark带注释源码对于整个Spark源码分析系列,我将带有注释的Spark源码和分析的文件放在我的GitHub上Spark源码剖析欢迎大家fork和star过程描述:1.通过Shell脚本启动Master,Master类继承Actor类,通过ActorySystem创建并启动。2.通过Shell脚本启动Worker,Worker类继承Actor类,通过A...原创 2018-06-27 00:37:52 · 5986 阅读 · 6 评论 -
Spark 程序性能调优(一)
性能调优之在实际项目中分配更多资源性能调优的王道,增加和分配更多的资源,性能和速度上的调优,是显而易见的,基本上在一定范围内,增加资源与性能的提升,是成正比的,写完一个spark作业以后 ,进行性能调优。 1.分配那些资源? executor, CPU per executor, memory per executor2.在哪里分配这些资源? 提交shell脚本的时候3.怎么调优,以及调优的原则?...原创 2018-06-25 17:25:03 · 552 阅读 · 0 评论 -
第二章 Java并发机制的底层原理
2.1volatile的应用volatile是轻量级的sychronized,它可以保证共享变量的可见性。 可见性是指一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 不会引起线程上下文切换和调度。 2.1.1volatile的定义与实现原理Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应爱确保通过排他锁单读获取这个变量。Java语言提供...原创 2018-06-01 09:20:54 · 1943 阅读 · 1 评论 -
第一章 并发编程的挑战
并发编程的目的是为了让程序运行的更快。1.1上下文切换CPU通过时间片分配算法来循环执行任务的,当前任务执行一个时间片后就会切换到下一个任务。任务从保存到字啊加载的过程是一次上下文切换。1.1.1多线程一定快吗?多线程不一定快,因为线程有创建和上下文切换的开销。1.1.2如何减少上下文的切换减少上下文的切换方法有无所并发编程、CAS算法、使用最少线程和使用协程。无锁...原创 2018-06-01 09:19:37 · 1412 阅读 · 0 评论 -
大数据知识(六):Hadoop基础MapReduce详解
MapReduce原理篇 MapReduce是一个分布式运算框架,主要的功能是将用户编写的业务逻辑代码和自带默认的组件整合在一起形成一个完整的分布式运算程序,并发的运行在一个集群上。客户端提交MapReduce任务的过程流程如下: 1.用户提交job任务之后,程序运行job.sumbit()方法,这是MapReduce框架会使用JobSubmitter的成员变量Cluster,...原创 2018-05-24 21:16:30 · 1462 阅读 · 0 评论 -
Hadoop实战: 论坛点击流日志分析
简介 网站点击流日志数据,比如,点击了哪一个链接,在哪个网页停留时间最多,采用了哪个搜索项、总体浏览时间等。而所有这些信息都可被保存在网站日志中。通过分析这些数据,可以获知许多对网站运营至关重要的信息。采集的数据越全面,分析就能越精准。项目主要使用的技术有MapReduce,Hive,Sqoop,Spring,SpringMVC,Mybatis,Echarts;其中,在数据规整和ET...原创 2018-06-04 19:50:30 · 4480 阅读 · 2 评论 -
JStorm源码分析(二)Storm任务提交流程
JStorm源码分析(二):Storm任务提交流程Storm任务提交流程: 1.Client端提交Topology到nimbus 调用命令: storm jar WordCount.jar com.stone.WordCountMain wordcount 实际上是调用: java -client WordCount.jar com.stone.WordCoun...原创 2018-07-10 21:22:17 · 927 阅读 · 2 评论 -
JStorm源码分析(三)Nimbus的任务分配过程
JStorm源码分析(三):Nimbus的任务分配过程1 . 在 T o p o l o g y 的 任 务 提 交 中 ,最 后 调 用 S t o r m S u b m i t t e r 的 submitTopology方 法 将 任 务 提 交 给 nimbus;实际上,在StormSubmitter的submitTopology中,是NimbusClient通过RPC(远程过程调 ...原创 2018-07-10 21:33:44 · 808 阅读 · 0 评论 -
Spark源码解析(五):Task提交流程
Task提交流程在划分Stage之后,在对Task进行封装成为TaskSet然后提交给TaskScheduler。提交流程源码解析提交TaskSet查看TaskSchedulerImpl的160行,可以看到submitTasks()方法,主要代码如下://TODO 该方法提交TaskSet override def submitTasks(taskSet: Tas...原创 2018-07-06 16:05:05 · 1645 阅读 · 2 评论 -
Spark源码解析(四):WordCount的Stage划分
WordCount的Stage划分WordCount的代码package cn.edu.hust;object WordCount{ def main(args: Array[String]): Unit = { val conf=new SparkConf().setAppName("WordCount") //创建SparkContex原创 2018-07-06 16:04:07 · 2261 阅读 · 2 评论 -
Spark源码解析(三):Executor启动流程
Executor启动流程在上面SparkContext进行资源调度后,只有主要的流程是Master和筛选出来的Worker进行通信,然后在Worker中启动Executor进程。Executor启动流程流程图源码分析Executor进程的启动这里我们需要追踪的方法是Master类中的schedule()方法内部的607行,这个方法的主要作用是向Worker发送消息,...原创 2018-07-06 16:01:07 · 2348 阅读 · 2 评论 -
JStorm源码分析(七)Excutor启动和创建
JStorm源码分析(七):Excutor启动和创建Executor的创建与启动是在Worker的exec ute()方法中完成的。 1.在我们启动Worker时,调用Worker的mk_worker()方法,mk_worker方法创建Worker实例,并调 用worker的execute()方法。 2.调用createTasks()方法,用来创建Task 3.创建并...原创 2018-07-10 21:50:41 · 707 阅读 · 0 评论 -
JStorm源码分析(六)Supervisor启动Worker的过程
JStorm源码分析(六):Supervisor启动Worker的过程W orker的启动是在Supervis or获取任务的过程中完成的: 1.Supervisor启动后,SyncSupervisorEvent会定时的循环扫描Zookeeper的任务分配目录,看是否 有自己的任务,如果有,那么把对应的信息写到本地(Supervisor)机器的指定目录中,这个工作 主要是有SyncSupe...原创 2018-07-10 21:47:59 · 1020 阅读 · 0 评论 -
JStorm源码分析(五)Supervisor获取任务
JStorm源码分析(五):Supervisor获取任务1.在Supervisor的启动过程中,即在mkSupervisor()方法中,源码如下: SyncSupervisorEvent会定时的循环扫描Zookeeper的任务分配目录,看是否有自己的任务,如果 有,那么把对应的信息写到本地(Supervisor)机器的指定目录中,这个工作主要是有 SyncSupervisorEvent...原创 2018-07-10 21:43:58 · 657 阅读 · 0 评论 -
JStorm源码分析(四)Storm集群启动过程
JStorm源码分析(四):Storm集群启动过程1.Nimbus的启动过程 (1)Nimbus 的启动脚本命令:bin/storm nimbus 实际调用过程: storm脚本中的main方法—->调用 def nimbus—->exec_storm_class 在exec_storm_class中,最终调用java命令,即: java -server backtyp原创 2018-07-10 21:39:09 · 625 阅读 · 0 评论 -
大数据知识(五):Hadoop基础HDFS详解
HDFS前言 设计的的思想:主要的是分而治之,将大的文件分割称为一个个小的文件,存储在各个机器上。 在大数据中的应用:为大数据框架提供储存数据的服务 重点概念:文件分块、副本存放、元数据。HDFS的概念和特性 首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件。 其次,它是分布式的,很多服务器联合实现功能。重要的特性: (1)HDFS中的...原创 2018-05-23 22:25:29 · 1574 阅读 · 0 评论 -
大数据知识(四):Hadoop基础
背景介绍什么是HADOOP1. HADOOP是apache旗下的一套开源软件平台2. HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理3. HADOOP的核心组件有 A. HDFS(分布式文件系统) B.YARN(运算资源调度系统) C. MAPREDUCE(分布式运算编程框架)4. 广义上来说,HADOOP通常是...原创 2018-05-23 17:36:31 · 1468 阅读 · 0 评论 -
常用的Spark RDD的例子
这里转载自:具体事例如下:The RDD API By ExampleRDD is short for Resilient Distributed Dataset. RDDs are the workhorse of the Spark system. As a user, one can consider a RDD as a handle for a collection of individ...原创 2018-06-02 19:50:20 · 2021 阅读 · 0 评论 -
大数据知识:Spark计算模型
弹性分布式数据集RDDRDD概述什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速...原创 2018-06-02 19:38:45 · 2324 阅读 · 0 评论 -
大数据知识:Spark入门
Spark概述Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据...原创 2018-06-02 19:10:49 · 1450 阅读 · 0 评论 -
大数据知识(六):Hadoop练习
流量统计需求流量的数据1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 2001363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0 20013631579...原创 2018-05-26 15:55:02 · 3285 阅读 · 1 评论 -
大数据知识(六):Hadoop基础MapReduce全流程解析
前几节中,我们已经了解了MapTask并行度机制、ReduceTask并行机制、Yarn运行流程以及Partitioner和Combiner的原理,现在我们结合这几节综合讲解全流程。 1.启动任务之后,首先运行的是MapTask任务,这里会使用InputFormat组件进行数据的读取,InputFormat的默认实现类是TextInputFormat,该类使用RecordRead对于...原创 2018-05-26 15:16:38 · 1401 阅读 · 0 评论 -
大数据知识(六):Hadoop基础MapReduce详解(二)
Java序列化与Hadoop序列化之间的比较 Java序列化是一个很重的框架 (Serializable),一个对象被序列化以后会附带很多的额外信息,不便于网络中的高速传输。Hadoop开发了一套自己的序列化框架(Writable):精简、高效。以下代码比较两者之间的差别:public class TestSeri { public static void main(String[] ar...原创 2018-05-26 13:56:54 · 1271 阅读 · 0 评论 -
大数据基础知识(一):玩转Linux(二) 免密码登录和基本命令
简介 在上一节大数据基础知识(一):玩转Linux(一)中,我们安装了CentOS和Java环境,以及一些常用的软件,今天我们来配置Linux的面密码登录,以及分析其中的原理,还有介绍一些简单的Linux常用命令。SSH免密码登录 通常,为了更加便利的在各个节点之间切换,我们需要配置各个节点之间的免密码登录。下面我们就介绍一种各个节点 (也就是各个机器之间的免密码登录)...原创 2018-05-15 22:22:27 · 1535 阅读 · 0 评论 -
大数据基础知识(一):玩转Linux(一)
Linux1.Linux的简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 我们学习的大数据,都是在Linux环境下...原创 2018-05-15 21:38:23 · 1877 阅读 · 0 评论 -
Spark RDD练习
工程添加的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h原创 2018-06-02 20:01:00 · 1936 阅读 · 0 评论 -
大数据基础知识(一):玩转Linux(三)Linux命令
Linux命令大全 上一个节大数据基础知识(一):玩转Linux(二) 免密码登录和基本命令简单的介绍了几个基本的LInux命令,我们知道仅仅掌握这些基本的命令是不够的,需要更加深入的了解Linux的命令。常用的命令 这一节主要讲解基础的Linux命令,这些命令在我们使用Linux时候无时无刻将会使用到,我们需要在自己的Linux上练习,达到随机可取的境界。 1.进入目录 ...原创 2018-05-16 10:40:09 · 1809 阅读 · 0 评论 -
大数据知识(二):Java基础加强
多线程介绍 进程介绍 不管是我们开发的应用程序,还是我们运行的其他的应用程序,都需要先把程序安装在本地的硬盘上。然后找到这个程序的启动文件,启动程序的时候,其实是电脑把当前的这个程序加载到内存中,在内存中需要给当前的程序分配一段独立的运行空间。这片空间就专门负责当前这个程序的运行。 不同的应用程序运行的过程中都需要在内存中分配自己独立的运行空间,彼此之间不会相互的影响。我们把每个独立...原创 2018-05-23 16:49:55 · 1254 阅读 · 0 评论 -
大数据知识:快学Scala(三)Scala编程实战
简介 在学习完Scala语言后,我们可以实现一个简单的RPC来巩固前面我们学习的Scala知识点,这里主要的知识点涉及样例类、模式匹配、类继承、隐式转化以及函数和方法,如果需要源码可以在我的Github上下载,地址是SRPC。项目概述需求 目前大多数的分布式架构底层通信都是通过RPC实现的,RPC框架非常多,比如前我们学过的Hadoop项目的RPC通信框架,但是Hado...原创 2018-06-04 08:38:35 · 2274 阅读 · 0 评论 -
大数据知识:快学Scala(二)高阶函数和隐私转换
简介 在前几章中,我们已经了解到了Scala的基本用法,主要包含基本的语法、基本的数据结构和面向对象的特性,以及Scala的部分高级特性:模式匹配、样例和函数,如果不了解这些,可以查看前几章大数据知识:快学Scala(二)模式匹配和样例类以及高级性质。本章将会介绍Scala 的高级特性,高阶函数和隐私转换。高阶函数基本概念 Scala混合了面向对象和函数式的特性,我们通常将可以...原创 2018-06-04 08:38:28 · 1342 阅读 · 0 评论 -
大数据知识:快学Scala(二)模式匹配和样例类以及高级性质
简介 Scala中最大的强大的机制是模式匹配的机制。可以应用到很多场合:如switch语句、类型检查等。并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配字符串的匹配package cn.edu.hust.casesimport scala.util.Randomobject StringDemo{ def main(args: Array[String]):...原创 2018-06-04 08:38:21 · 1391 阅读 · 0 评论 -
大数据知识:快学Scala(一)Scala的类、对象和继承。
简介 上一章,我们知道了Scala中的方法、函数以及这里面的Scala,方法我们使用关键字def定义,我们可以使用下划线来将方法转化为函数,函数可以作为参数传递到方法中;在Scala中的数据结构中,有常用的Array、List、Set、Map和Tuple,当然这里的数据结构分为可变的和不可变的。如果对于这些不清楚的,可以看到上一章大数据知识:快学Scala(一)Scala的函数、方法和数据结...原创 2018-06-04 08:38:15 · 1351 阅读 · 0 评论 -
大数据知识:快学Scala(一)Scala的函数、方法和数据结构
简介 上一章,我们已经学习了Scala语言的特点,它是运行在JVM上的一种多范式编程式语言,具有开发快,灵活等特点。如果对于基础不好的同学可以看一下我的文章大数据知识:快学Scala(一)Scala基础。这一章我们将会介绍Scala语言的函数和方法、以及在Scala语言中常用的数据结构。方法和函数 Scala中的+ - * / %等操作符的作用与Java一样,位操作符&...原创 2018-06-04 08:38:09 · 1514 阅读 · 0 评论 -
大数据知识:快学Scala(一)Scala基础
Scala概述什么是Scala Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序Scala语言的特点 1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。 2.速度快:Scala语言表达能...原创 2018-06-04 08:37:55 · 1812 阅读 · 0 评论 -
大数据基础知识(二):Shell命令
Shell命令 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行 [1] 。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结...原创 2018-05-16 14:34:43 · 1948 阅读 · 0 评论 -
Spark的Shuffle原理(一):HashShuffle
01.HashShuffle相关知识 Spark Shuffle类似于MapReduce的过程,在Spark 的1.0版本以前,Spark采用的是Hash Shuffle,与MapReduce不同的是,Hash Shuffle没有排序过程。Shuffle阶段主要发生在宽依赖阶段,什么是宽依赖呢? 上图中,可以很好的理解宽依赖和窄依赖,对于一般的join、groupByKey...原创 2018-08-17 10:21:12 · 544 阅读 · 0 评论