5 张召海

东北大学 计算机技术

(1)熟练掌握Java、SQL语言;了解Python语言。<br>(2)熟悉Hadoop、Hive、HBase、Flume、Sqoop、KafKa、Zookeeper等大数据框架。<br>(3)熟悉常用机器学习算法和推荐算法:LR、决策树、GBDT、贝叶斯分类、协同过滤算法等。<br>(4)熟练掌握常见数据结构和算法,熟悉常见的设计模式。<br>(5)英语等级CET6,英语阅读、写作能力优秀。<br>

等级
TA的排名 8k+

Spark性能优化—基础篇

内容学习自美团技术团队和马中华老师,向前辈致敬。1 Spark开发中性能优化的基本原则避免创建重复的RDDval rdd1 = sc.textFile("hdfs://192.168.0.1:9000/hello.txt")rdd1.map(...)val rdd2 = sc.textFile("hdfs://192.168.0.1:9000/hello.txt")rdd2.r...

2020-02-25 18:09:15

SchedulerBackend详解及源码介绍

SchedulerBackend涉及到Netty的知识,笔者尚未理解,先写一部分,后面会持续补充。1 SchedulerBackend是什么?首先看SchedulerBackend在Spark中的使用。如源码1,最初,在SparkContext.scala中存在一个SchedulerBackend的实例,在createScheduler()方法中同时创建了两个实例scheduler和back...

2020-02-23 12:04:00

TaskScheduler详解及源码介绍

1 createTaskScheduler创建TaskScheduler的源代码为SparkContext.createTaskScheduler,如下所示。该方法会根据master的配置匹配部署模式,每种部署模式中都会创建两个类(TaskSchedulerImpl、SchedulerBackend)的实例,只是TaskSchedulerImpl都相同,SchedulerBackend不同。/...

2020-02-22 19:57:06

Spark的任务执行流程及对应源码

1 将任务打成jar包2 调用spark-submit脚本提交到集群上运行3 运行sparkSubmit的main方法,在这个方法中通过反射的方式创建我们编写的主类的实例对象,然后调用main方法,开始执行我们的代码。(Spark程序中的driver就运行在sparkSubmit进程中)运行SparkSubmit的main方法//源码来自:SparkSubmit.scala ove...

2020-02-21 14:16:04

SparkContext的初始化

SparkContext的初始化步骤如下:1 创建Spark执行环境SparkEnv1.2 什么是SparkEnv?SparkEnv是Spark的执行环境对象,其中包括许多与Executor执行相关的对象,所以SparkEnv存在于需要创建Executor的进程中。那么需要创建Executor的进程有哪些呢?在local模式下,Driver进程中会创建Executor。在local-c...

2020-02-19 11:43:55

Spark的产生

Spark与MapReduce 的对比减少磁盘IOMapReduce:基于磁盘。mapper的结果会存储到磁盘,reducer从磁盘读取数据,结果再存储到磁盘。Spark:基于内存。中间结果存储到内存中。(实在存不下,才会将一部分存储到磁盘中)增加并行度MapReduce:包含mapTask和reduceTask,每个Task便是一个进程。Spark:每个Task是一个线程。所以S...

2019-12-27 22:31:25

专利申请问题

1 发送时提出,客户端不是最新版。并且更新时,提示没有安装updateSipo。(1)数据备份。系统设置——&gt;数据备份。(2)导出正在编写的专利,即案卷备份。案卷管理——&gt;输入发明名称,查询——&gt;案卷导出。(3)卸载CPC客户端。(4)下载安装包和离线升级包。到中国电子专利申请网下载“CPC安装包”和最新的“离线升级包”。(5)安装CPC客户端。以管理员身份双击Set ...

2019-12-05 21:15:57

Kolakoski序列

Kolakoski 数列仅由 1 和 2 构成,其中头 100 个数是1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1,2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1,1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1,...

2019-09-25 17:32:01

磁盘调度算法

磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法,也称为电梯调度算法(SCAN),循环扫描算法(CSCAN)例:假定某磁盘共有200个柱面,...

2019-09-25 12:31:18

无序数组 排序后 最大间隔

本文现转载他人文章,后续会进行详细讲解。1 无序数组 排序后 最大间隔原题:给你n个任意整数,求排序后相邻两个数之间的最大差值,这里n可能有10^5,整数为任意32位整型。要求求解算法的时间复杂度为O(n)。1.1 思路:不排序的桶排序原文链接:https://blog.csdn.net/xindoo/article/details/52821167回到题目, 首先说明一点,这题的大体思...

2019-09-22 11:44:23

HashMap、HashTable、ConcurrentHashMap的底层原理

1 HashMap的原理HashMap是基于链地址法实现的一个散列表,jdk7使用数组、链表,jdk8使用数组、链表和红黑树。以下将HashMap的原理分为四部分讲解。初始容量。数组的初始容量为16。扩充容量每次扩充为2的次方,一是为了提高性能使用足够大的数组,二是为了能使用位运算代替取模运算。即若当前容量为16,下次扩充时,应变为16*2=32。初始容量默认为16: /**...

2019-09-22 01:01:02

大文件 多路归并 排序

1 题目这一种题目的描述,大概有以后两种:题目1:一个大文件在一台服务器上存不下,需要存放在多台服务器上,将这个大文件的内容进行排序。题目2:一个大文件100G,存储在磁盘上,现在需要对这个文件的内容进行排序,而内存装不下整个文件。2 分割为小文件+多路归并排序基本思路:step1:分割+排序从头开始将大文件FileFileFile的一个小部分读入内存中,将这一小部分进行排序...

2019-09-21 14:06:12

操作系统

1 进程和线程的区别参考文献:一道面试题:说说进程和线程的区别最小单位进程是资源分配的最小单位,线程是程序执行的最小单位。资源消耗:创建、切换每创建一个进程,系统就会为它分配一个地址空间,需要建立数据表来维护代码段、堆栈段和数据段。这些操作非常耗费资源。线程共享进程中的数据(引申出通信),使用相同的地址空间(引申出健壮性)。.地址空间的不同:CPU切换(切换地址空间)一个线程的花...

2019-09-11 22:18:37

zookeeper

1 zookeeper是什么参考文献:Zookeeper可以干什么zookeeper为分布式应用程序提供一致性协调服务,包括配置维护、域名服务、分布式锁、集群管理等。配置维护同一个应用程序在不同服务器上的配置信息相同。将应用程序的配置信息存储在Zookeeper的某个结点上,让所有需要修改的服务器监控该信息的状态。域名服务服务特别多的时候,如果我们在本地保存服务的地址的时候将非常不方...

2019-09-08 00:17:21

SQL

1 列举至少3个Mysql的具体优化?(1)适当的对表里的字段建立索引索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行。但是索引不能随便建立,具体建立索引的地方,建议如下:1)查询语句当中包含有MAX(),MIN()和ORDERBY这些命令的时候。2)用于JOIN,WHERE判断和ORDERBY排序的字段上。3)尽量不要对数据库中某个含有大量重复的...

2019-09-07 23:52:55

Hive

1 数据倾斜参考文献:[1] Hive的数据倾斜什么是数据倾斜?由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点主要表现reduce任务进度长时间维持在 99%或者 100%的附近,查看任务监控页面,发现只有少量 reduce 子任务未完成,因为其处理的数据量和其他的 reduce 差异过大。 单一 reduce 处理的记录数和平均记录数相差太大,通常达到好几倍之多,最长时...

2019-09-07 23:12:30

HDFS

1 读写数据流程参考文献:[1] HDFS读写流程[2] HDFS读写流程(史上最精炼详细)1.1 读流程client访问NameNode,查询元数据信息,获得这个文件的数据块位置列表,返回输入流对象。客户端并发的读每个块(即图中4,5是并发执行的,每个block都有多个副本,程序会找相对空闲的DataNode节点去读相应副本)。关闭该输入流,在客户端将读取的所有块合并成一个文件...

2019-09-07 22:39:26

Hadoop

1 Hadoop集群的守护进程和相关的角色Namenode:运行在主节点上,负责存储元数据。它管理文件的块信息,以及块在集群中分布的信息。Datanode:在从节点上,实际存储数据。它定时向Namenode发送本节点上块的信息。Secondary Namenode:它会定期通过Editlog合并NameNode的变化,从而它r的日志不会过大。它可以在NameNode的故障的情况下做为副本使用...

2019-09-07 10:33:05

volatile与单例模式

参考文献:volatile关键字的作用、原理1 作用保持内存可见性:所有线程都能看到共享数据的最新值。防止指令重排序。2 实现2.1 怎么实现内存可见性(1)读取前先从内存刷新最新的值。(2)写入后立即同步回内存中。2.2 怎么防止指令重排什么是指令重排:基于偏序关系的Happens-Before内存模型中,指令重排技术大大提高了程序执行效率。在指令序列中 插入内存屏障来禁...

2019-09-07 10:04:11

HTTP及其请求方式GET和POST

1 什么是HTTP客户端和服务端之间,传输数据的格式规范,即“超文本传输协议”。2 HTTP的特点无状态无状态指,不记得之前处理过的事务。无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。例如同一个客户端第二次访问同一个服务器时,服务器的响应与第一次被访问时相同。因为服务器不记得曾经访问过或服务过这个客户端。无连接HTTP虽然采用了TCP作为传输层协议,但是H...

2019-09-07 08:02:34

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。