曙海教学优势
本课程,秉承二十一年积累的教学品质,以项目实现为导向,面向企事业项目实际需要,老师将会与您分享设计的全流程以及工具的综合使用经验、技巧。课程可定制,线上/线下/上门皆可,热线:4008699035。
曙海培训的课程培养了大批受企业欢迎的工程师。大批企业和曙海
建立了良好的合作关系,合作企业30万+。曙海培训的课程在业内有着响亮的知名度。
hadoop开发实战和性能调优培训
培训大纲
课程主题 |
主要内容 |
案例和演示 |
Hadoop在云计算技术的作用和地位 |
l 传统大规模数据分析存在的问题 l Hadoop概述 l Hadoop与分布式文件系统 l Mapreduce的工作原理与机制 l Hadoop集群剖析 l Hadoop生态系统 l Hadoop的行业应用案例分析 l Hadoop在云计算和大数据的位置和关系 |
² 阿里集团技术平台,Hadoop在淘宝、支付宝的作用 ² 电商眼中的Hadoop和推荐系统 ² 暴风数据平台:Hadoop对于产品优化的价值 ² Hadoop对于趣游、热酷等游戏公司的作用 ² 移动大云项目(big cloud)中的hadoop ² 联通使用Hadoop/Hbase解决3G详单查询问题 |
Hadoop参数调优 |
l 选择合适Hadoop的硬件配置 l Hadoop配置项优化 l Hadoop配置优化 — core-site.xml l Hadoop配置优化 — HDFS l Hadoop配置优化 — hdfs-site.xml l Hadoop配置优化 — mapred-site.xml l Hadoop配置优化 — 机架感知 l 网络带宽参数调优 l 系统参数调优 l 配置文件管理 l 严格控制root权限 l Java的GC模式 l 选择正确的JDK l Hadoop作业调优 l Map side tuning设置 l Map side设置 l Linux 操作系统优化 l 其他配置和参数调优 l core-default.xml, l hdfs-default.xml, l mapred-default.xml, l mapred-site.xml l mapred .tasktracker .map.tasks .maximum l mapred.reduce.slowstart.completed.maps l mapred.fairscheduler.preemption l mapred.jobtracker.completeuserjobs.maximum l mapred.jobtracker.update.faulty.tracker.interval l mapred.jobtracker.max.blacklist.percent |
² hadoop硬件优化 ² 不是所有的硬件都合适拿来使用 ² 安装调优的第一步服务器硬件的选型的窍门 ² 如何选择合适业务使用的CPU ² 内存越大越好吗?设置合理的内存配置 ² 链接网络的选择和优化 ² 高速硬盘的选择注意事项 ² 硬盘为什么不做raid? ² 设置网络的注意事项 ² 中间结果压缩对磁盘和网络的优化 ² 机架感知,网络和磁盘IO优化作用,确定存储的具体位置 ² 内存参数,map/reduce槽位数的计算方法 ² 对磁盘和网络的优化 ² Java工具使用,jstack使用 ² Sun和open之间的区别,JIT编译的使用 ² Linux系统参数调优 ² Linux监控系统的使用 ² Cacti ² Ganglia ² 常用的linux排错工具l sof,strace,iostat,vmstat,n etstat… ² 常见异常现象级处理方法 ² 网卡流量导致连接失败 ² 权限错误 ² 主机名IP转换错误 ² NN与DN namespace ID不一致 ² 磁盘满导致报错 ² Java heap size oom |
精彩案例及故障解决方法解析 |
² 案例一:namenode 被重新格式化,datanode无法连接 n 现象:namenode 中的namespac ID 与datanode中的namespace ID不一致 ² 案例二:硬盘损坏 n 现象:磁盘损坏导致datanode宕机 ² 案例三: 错误用户启动hadoop n 现象:datanode启动一段时间后宕机 ² 案例四:tasktracker重启后假死 n 现象:无报错,但tasktracker不工作 ² 案例五:jobtracker无故宕机 n 现象:运行过程中,jobtracker宕机 ² 案例六:datanode无法注册到namenode n 现象:datanode启动后到mbean这步挂起不再继续 ² 案例七:tasktracker无法启动,报权限错误 n 现象:tasktracker报文件夹创建的权限错误后直接退出 ² 案例八:主机名设置错误 n 现象:datanode和tasktrcker无法正常工作 |
|
Hadoop组件详解 |
l Hadoop HDFS基本结构 l Hadoop HDFS 副本存放策略 l Hadoop nameNode 详解 l Hadoop Sedary namenode 详解 l Hadoop DataNode 详解 l Hadoop JobTracker 详解 l Hadoop TaskTracker 详解 |
² Hadoop Mapper 类核心代码 ² Hadoop Reduce 类核心代码 ² Hadoop 核心代码 |
Hadoop安装和部署 |
l Hadoop 系统模块组件概述 l Hadoop 实验集群的部署结构 l Hadoop 安装依赖关系 l Hadoop 生产环境的部署结构 l Hadoop 集群部署 l Hadoop 高可用配置方法 l Hadoop集群简单测试方法 l Hadoop 集群异常Debug 方法 |
² Hadoop安装部署实验 ² Red hat Linux 基础环境搭建 ² Hadoop 机群系统版本安装和启动配置 ² 使用Hadoop MapReduce Streaming 快速测试系统 ² Hadoopcore-site,hdfs-site,mapred-site配置详解 |
Hadoop和传统数据库技术优劣势对比 |
l Hadoop/Hive对比Oracle在构建数据仓库上的优劣势 l Hadoop如何和传统IT系统配合完成原来不可能的任务 |
² Apache社区版本:Cloudera 版本、MapR版本、Intel版本、Oracle、Dell、HP版本 |
编写MapReduce高级程序 |
l 使用Hadoop MapReduce Streaming编程 l MapReduce 流程 l 剖析一个MapReduce程序 l 基本MapReduceAPI概念 l 驱动代码Mapper、reducer l Hadoop 流 l API使用Eclipse进行快速开发 l 新MapReduce API l MapReduce的优化 l MapReduce的任务调度 l MapReduce编程实战 l 如何利用其他Hadoop相关技术,包括Apache Hive,Apache Pig,Sqoop和Oozie等 l 满足解决实际数据分析问题的高级Hadoop API |
² Hadoop Streaming和Java MapReduce差异 ² MapReduce实现数据库功能 ² 利用Combiners来减少中间数据 ² 编写Partitioner来优化负载平衡 ² 直接访问Hadoop的join操作 ² 辅助排序在Reducer方的合并 ² 定制Writables和WritableComparables ² 使用SequenceFiles和Avro文件保存二进制数据 ² 创建InputFormats OutputFormats ² Hadoop的二次排序 ² Hadoop的海量日志分析 ² 在Map方的合并 |
精彩案例及故障解决方法解析 |
² 案例1:控制Map & reduce 个数 n 现象:map个数取决于split个数,如果源文件使用压缩存储,则不可分割,一个文件一个map。非压缩文件使用默认block.size进行切分。对reduce因为是中间数据,可以控制reduce数量。 ² 案例2:压缩中间数据 n 现象:job中间临时数据量极大、网络IO吞吐量大。 ² 案例3:编程细节,内存溢出 n 现象:编程过程中,经常遇到list 、map、倒排表等大对象,如果作为局部变量,每次调用map或者reduce方法都初始化这些变量,很容易消耗掉JVM堆内存,出现内存溢出异常。 ² 案例4:编程细节,计数&日志打印 n 现象:System. Out. Println, System. Err. Println等日志打印过多会严重影响job性能,counter计数也会存在同样的问题,同时也会造成本地磁盘使用量的急剧增长。 ² 案例5:作业调度 n 现象:集群上的job非常多时,会出现一些job一直等待,很长一段时间内没有开始运行。默认的任务调度器FIFO并不能满足实际工作应用。 ² 案例6:Combiner优化 n 现象:map输出数据量非常大,reduce input group远小于reduce input group时,存在大量的网络IO,这些IO中的一部分数据可以在本地做完合并,然后再进行reduce操作。 |
|
使用Hive和Pig开发及技巧 |
l Hive和Pig基础 l Hive的作用和原理说明 l Hadoop/Hive仓库数据数据流 l Hive部署和安装 l Hive Cli的基本用法 l HQL基本语法 l 使用Oozie的动机 l Oozie工作流定义格式 |
² 使用JDBC连接Hive进行查询和分析 ² 使用正则表达式加载数据 ² HQL高级语法 ² 编写UDF函数 ² 编写UDAF自定义函数 ² 使用Sqoop进行数据分析 ² 使用Oozie配置工作流 ² phpHiveAdmin安装和使用 |