本课程授课老师
徐培成老师先后在软件公司人软件工程师、系统分析师、项目经理、软件架构师,主持开发了大产权交易系统,异构数据库协同系统、电信资源管理系统、互联网综合性调查等系统,对java技术、大数据(hadoop、storm、spark)、Python、机器学习、数据库技术、互联网应用、远程通信、网络编程、分布式应用、高可用性计算机网络集群等技术有着丰富的实战经验和深厚的技术功底。
软件版本
jdk-8u65-linux-x64.tar
Maven-3.3.9
Hadoop-2.7.3
Hive-2.1.0
Zookeeper-3.4.9.tar
Hbase-1.2.3
Flume-1.7.0
kafka_2.11-0.10.0.1
本课程将从源代码的角度对"common+hdfs"架构设计与实现原理进行了极为详细的分析,旨在为hadoop的优化、定制和扩展提供原理性的指导。除此之外,还将从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和分析,以提高学员的分布式技术能力。
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Avro是Hadoop中的一个子项目,也是Apache中一个独立的项目,Avro是一个基于二进制数据传输高性能的中间件。在Hadoop的其他项目中例如HBase(Ref)和Hive(Ref)的Client端与服务端的数据传输也采用了这个工具。Avro是一个数据序列化的系统。Avro 可以将数据结构或对象转化成便于存储或传输的格式。Avro设计之初就用来支持数据密集型应用,适合于远程或本地大规模数据的存储和交换。
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、
功能稳定的系统提供给用户。目前很多分布式应用程序都使用zookeeper来协调集群中的各个节点的工作(如:hbase、kafka)。
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题:
1.我想对用户的搜索关键词进行统计,分析出当前的流行趋势
2.有些数据,我觉得存数据库浪费,直接存硬盘又怕到时候操作效率低
这时候,就可以用到分布式消息系统了,虽然上面的描述更偏向于一个日志系统,但确实kafka在实际应用中被大量的用于日志系统