hadoop開發(fā)實戰(zhàn)和性能調優(yōu)培訓
?
hadoop開發(fā)實戰(zhàn)和性能調優(yōu)培訓
培訓大綱
課程主題
主要內容
案例和演示
Hadoop在云計算技術的作用和地位
l?傳統(tǒng)大規(guī)模數(shù)據(jù)分析存在的問題
l?Hadoop概述
l?Hadoop與分布式文件系統(tǒng)
l?Mapreduce的工作原理與機制
l?Hadoop集群剖析
l?Hadoop生態(tài)系統(tǒng)
l?Hadoop的行業(yè)應用案例分析
l?Hadoop在云計算和大數(shù)據(jù)的位置和關系
2?阿里集團技術平臺,Hadoop在淘寶、支付寶的作用
2?電商眼中的Hadoop和推薦系統(tǒng)
2?暴風數(shù)據(jù)平臺:Hadoop對于產品優(yōu)化的價值
2?Hadoop對于趣游、熱酷等游戲公司的作用
2?移動大云項目(big?cloud)中的hadoop
2?聯(lián)通使用Hadoop/Hbase解決3G詳單查詢問題
Hadoop參數(shù)調優(yōu)
l?選擇合適Hadoop的硬件配置
l?Hadoop配置項優(yōu)化
l?Hadoop配置優(yōu)化?—?core-site.xml
l?Hadoop配置優(yōu)化?—?HDFS
l?Hadoop配置優(yōu)化?—?hdfs-site.xml
l?Hadoop配置優(yōu)化?—?mapred-site.xml
l?Hadoop配置優(yōu)化?—?機架感知
l?網(wǎng)絡帶寬參數(shù)調優(yōu)
l?系統(tǒng)參數(shù)調優(yōu)
l?配置文件管理
l?嚴格控制root權限
l?Java的GC模式
l?選擇正確的JDK
l?Hadoop作業(yè)調優(yōu)
l?Map??side??tuning設置
l??Map??side設置
l?Linux?操作系統(tǒng)優(yōu)化
l?其他配置和參數(shù)調優(yōu)
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
2?hadoop硬件優(yōu)化
2?不是所有的硬件都合適拿來使用
2?安裝調優(yōu)的第一步服務器硬件的選型的竅門
2?如何選擇合適業(yè)務使用的CPU
2?內存越大越好嗎?設置合理的內存配置
2?鏈接網(wǎng)絡的選擇和優(yōu)化
2?高速硬盤的選擇注意事項
2?硬盤為什么不做raid?
2?設置網(wǎng)絡的注意事項
2?中間結果壓縮對磁盤和網(wǎng)絡的優(yōu)化
2?機架感知,網(wǎng)絡和磁盤IO優(yōu)化作用,確定存儲的具體位置
2?內存參數(shù),map/reduce槽位數(shù)的計算方法
2?對磁盤和網(wǎng)絡的優(yōu)化
2?Java工具使用,jstack使用
2?Sun和open之間的區(qū)別,JIT編譯的使用
2?Linux系統(tǒng)參數(shù)調優(yōu)
2?Linux監(jiān)控系統(tǒng)的使用
2?Cacti
2?Ganglia
2?常用的linux排錯工具l?sof,strace,iostat,vmstat,n?etstat…
2?常見異?,F(xiàn)象級處理方法
2?網(wǎng)卡流量導致連接失敗
2?權限錯誤
2?主機名IP轉換錯誤
2?NN與DN??namespace?ID不一致
2?磁盤滿導致報錯
2?Java?heap?size?oom
精彩案例及故障解決方法解析
2?案例一:namenode?被重新格式化,datanode無法連接
n?現(xiàn)象:namenode?中的namespac??ID?與datanode中的namespace?ID不一致
2?案例二:硬盤損壞
n?現(xiàn)象:磁盤損壞導致datanode宕機
2?案例三:?錯誤用戶啟動hadoop
n?現(xiàn)象:datanode啟動一段時間后宕機
2?案例四:tasktracker重啟后假死
n?現(xiàn)象:無報錯,但tasktracker不工作
2?案例五:jobtracker無故宕機
n?現(xiàn)象:運行過程中,jobtracker宕機
2?案例六:datanode無法注冊到namenode
n?現(xiàn)象:datanode啟動后到mbean這步掛起不再繼續(xù)
2?案例七:tasktracker無法啟動,報權限錯誤
n?現(xiàn)象:tasktracker報文件夾創(chuàng)建的權限錯誤后直接退出
2?案例八:主機名設置錯誤
n?現(xià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?詳解
2?Hadoop?Mapper?類核心代碼
2?Hadoop?Reduce?類核心代碼
2?Hadoop?核心代碼
Hadoop安裝和部署
l?Hadoop?系統(tǒng)模塊組件概述
l?Hadoop?實驗集群的部署結構
l?Hadoop?安裝依賴關系
l?Hadoop?生產環(huán)境的部署結構
l?Hadoop?集群部署
l?Hadoop?高可用配置方法
l?Hadoop集群簡單測試方法
l?Hadoop?集群異常Debug?方法
2?Hadoop安裝部署實驗
2?Red?hat?Linux?基礎環(huán)境搭建
2?Hadoop?機群系統(tǒng)版本安裝和啟動配置
2?使用Hadoop?MapReduce?Streaming?快速測試系統(tǒng)
2?Hadoopcore-site,hdfs-site,mapred-site配置詳解
Hadoop和傳統(tǒng)數(shù)據(jù)庫技術優(yōu)劣勢對比
l?Hadoop/Hive對比Oracle在構建數(shù)據(jù)倉庫上的優(yōu)劣勢
l?Hadoop如何和傳統(tǒng)IT系統(tǒng)配合完成原來不可能的任務
2?Apache社區(qū)版本: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進行快速開發(fā)
l?新MapReduce??API
l?MapReduce的優(yōu)化
l?MapReduce的任務調度
l?MapReduce編程實戰(zhàn)
l?如何利用其他Hadoop相關技術,包括Apache?Hive,Apache?Pig,Sqoop和Oozie等
l?滿足解決實際數(shù)據(jù)分析問題的高級Hadoop?API
2?Hadoop?Streaming和Java?MapReduce差異
2?MapReduce實現(xiàn)數(shù)據(jù)庫功能
2?利用Combiners來減少中間數(shù)據(jù)
2?編寫Partitioner來優(yōu)化負載平衡
2?直接訪問Hadoop的join操作
2?輔助排序在Reducer方的合并
2?定制Writables和WritableComparables
2?使用SequenceFiles和Avro文件保存二進制數(shù)據(jù)
2?創(chuàng)建InputFormats?OutputFormats
2?Hadoop的二次排序
2?Hadoop的海量日志分析
2?在Map方的合并
精彩案例及故障解決方法解析
2?案例1:控制Map?&?reduce?個數(shù)
n?現(xiàn)象:map個數(shù)取決于split個數(shù),如果源文件使用壓縮存儲,則不可分割,一個文件一個map。非壓縮文件使用默認block.size進行切分。對reduce因為是中間數(shù)據(jù),可以控制reduce數(shù)量。
2?案例2:壓縮中間數(shù)據(jù)
n?現(xiàn)象:job中間臨時數(shù)據(jù)量極大、網(wǎng)絡IO吞吐量大。
2?案例3:編程細節(jié),內存溢出
n?現(xiàn)象:編程過程中,經(jīng)常遇到list?、map、倒排表等大對象,如果作為局部變量,每次調用map或者reduce方法都初始化這些變量,很容易消耗掉JVM堆內存,出現(xiàn)內存溢出異常。
2?案例4:編程細節(jié),計數(shù)&日志打印
n?現(xiàn)象:System.?Out.?Println,??System.?Err.?Println等日志打印過多會嚴重影響job性能,counter計數(shù)也會存在同樣的問題,同時也會造成本地磁盤使用量的急劇增長。
2?案例5:作業(yè)調度
n?現(xiàn)象:集群上的job非常多時,會出現(xiàn)一些job一直等待,很長一段時間內沒有開始運行。默認的任務調度器FIFO并不能滿足實際工作應用。
2?案例6:Combiner優(yōu)化
n?現(xiàn)象:map輸出數(shù)據(jù)量非常大,reduce??input??group遠小于reduce??input??group時,存在大量的網(wǎng)絡IO,這些IO中的一部分數(shù)據(jù)可以在本地做完合并,然后再進行reduce操作。
使用Hive和Pig開發(fā)及技巧
l?Hive和Pig基礎
l?Hive的作用和原理說明
l?Hadoop/Hive倉庫數(shù)據(jù)數(shù)據(jù)流
l?Hive部署和安裝
l?Hive??Cli的基本用法
l?HQL基本語法
l?使用Oozie的動機
l?Oozie工作流定義格式
2?使用JDBC連接Hive進行查詢和分析
2?使用正則表達式加載數(shù)據(jù)
2?HQL高級語法
2?編寫UDF函數(shù)
2?編寫UDAF自定義函數(shù)
2?使用Sqoop進行數(shù)據(jù)分析
2?使用Oozie配置工作流
2?phpHiveAdmin安裝和使用