4 张召海

东北大学 计算机技术

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

等级
TA的排名 9k+

大文件 多路归并 排序

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

2019-09-21 14:32:29

操作系统

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

2019-09-11 22:40:50

zookeeper

1zookeeper是什么参考文献: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:53:01

Hive

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

2019-09-07 23:41:51

HDFS

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

2019-09-07 23:01:54

Hadoop

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

2019-09-07 12:58:31

volatile与单例模式

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

2019-09-07 10:20:53

HTTP及其请求方式GET和POST

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

2019-09-07 08:52:04

哈希与一致性哈希

1哈希解决冲突的三种方法开放定址法也称再散列法,其基本思想是:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p1仍然冲突,再以p为基础,产生另一个哈希地址p2,…,直到找出一个不冲突的哈希地址pi具体有三种:线性探测再散列:冲突发生时,顺序查看表中下一单元,直到找出一个空单元二次探测再散列:冲突发生时,在表的左右进行跳跃式探测。伪随机探...

2019-09-06 23:15:03

TCP与UDP

1TCP与UDP的区别特点TCPUDP是否连接面向连接面向非连接传输可靠性可靠不可靠应用场合少量数据传输大量数据速度慢快连接TCP在传输数据之前,会通过三次握手建立连接。而UDP不用建立连接。可靠TCP有一系列可靠的机制。UDP没有可靠的机制,当网络质量不好时,就很容易丢包。应用场合TCP适用于传输少量数据的场合,例...

2019-09-06 21:40:24

红黑树

1有了二叉查找树、平衡树为啥还需要红黑树?腾讯面试题:有了二叉查找树、平衡树为啥还需要红黑树?二叉查找树特点:左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大。缺点:在有序列表的时,二叉查找树退化成一棵链表。平衡二叉树AVL平衡二叉树就是为了解决二叉查找树退化成一棵链表而诞生了,平衡树具有如下特点:1、具有二叉查找树的全部特性。2、每个节点的左子树和右子树的高度差...

2019-09-06 16:25:00

TreeSet、TreeMap、Collections.sort()的区别,原理

1使用上看TreeSet要求,每一个元素要实现Comparable接口。TreeMap要求键实现Comparable接口。Collections.sort()有两种重载方式:(1)元素实现Comparable接口。(2)向sort()方法中传入一个Comparator实现类。TreeSetTreeSet要求存放的对象所属的类必须实现Comparable接口,该接口提供了...

2019-09-06 15:54:22

HBase

1HBase预分区1.1为什么要进行预分区?为了解决“热点问题”。热点问题:在HBase中查询数据时,需要通过RowKey定位数据行。当大量客户端访问少数几个结点,造成少数RegionServer的读写请求过多,而其他RegionServer负载却很小,就造成了“热点”现象。热点问题出现的原因:hbase的中的数据行,按照行键的字典序排序,当大量连续的rowkey集中写在个别的reg...

2019-09-05 22:18:36

数据库索引为什么采用B+树实现

1构建索引需要考虑的因素1.1计算机存储结构计算机存储结构如下图所示,从上到下依次为寄存器、高速缓存、主存储器、辅助存储器。其中主存储器,即我们常说的内存;辅助存储器也被称为外存,比较常见的就是磁盘、SSD等。在这个存储结构中,每一级存储的速度都比上一级慢很多,所以程序访问越上层存储中的数据,速度就会越快。1.2局部性原理与磁盘预读起因:内存读写快,磁盘读写慢,而且慢很多;磁盘...

2019-09-04 12:04:13

20分钟数据库索引设计实战——实战

在后端开发的工作中如何轻松、高效地设计大量数据库索引呢?通过下面这四步,20分钟后你就再也不会为数据库的索引设计而发愁了。1整理查询条件我们设计索引的目的主要是为了加快查询,所以,设计索引的第一步是整理需要用到的查询条件,也就是我们会在where子句、join连接条件中使用的字段。一般来说会整理程序中除了insert语句之外的所有SQL语句,按不同的表分别整理出每张表上的查询条件。也可以根据...

2019-09-04 11:34:48

数据库索引是什么?联合索引、聚集索引是什么?—— 理解

本文皆学习自文内链接所指的文章,如想了解详情请前往查看,感谢原创作者的贡献。1数据库索引是什么?新华字典来帮你学习自数据库索引是什么?新华字典来帮你1.1什么是联合索引1.1.1定义包含多个字段的数据库索引,比如INDEXidx_test(col_a,col_b)。这种包含多个字段的索引就被称为**“联合索引”**。1.1.2新华字典中的“联合索引”新华字典里有一种目录被...

2019-09-04 10:09:34

leetcode 184. 部门工资最高的员工

1题目描述Employee表包含所有员工信息,每个员工有其对应的Id,salary和departmentId。±—±------±-------±-------------+|Id|Name|Salary|DepartmentId|±—±------±-------±-------------+|1|Joe|70000|1...

2019-08-22 14:54:50

MySQL变量的使用

MySQL变量的使用在mysql文档中,mysql变量可分为两大类,即系统变量和用户变量。但根据实际应用又被细化为四种类型,即局部变量、用户变量、会话变量和全局变量。一、局部变量mysql局部变量,只能用在begin/end语句块中,比如存储过程中的begin/end语句块。其作用域仅限于该语句块。--declare语句专门用于定义局部变量,可以使用default来说明默认值dec...

2019-08-22 11:35:24

leetcode 176第2高的数、177 第N高的数、178 分数排名

leetcode177第N高的数编写一个SQL查询,获取Employee表中第n高的薪水(Salary)。±—±-------+|Id|Salary|±—±-------+|1|100||2|200||3|300|±—±-------+例如上述Employee表,n=2时,应返回第二高的薪水200...

2019-08-19 22:15:54

查看更多

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