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