1 Hadoop
1.1 a story about Google
- 從搜索引擎爬蟲獲取海量數(shù)據(jù)的存儲(chǔ)和處理開始 -- Google最先研發(fā)出對(duì)海量數(shù)據(jù)的存儲(chǔ)和處理技術(shù);
- 谷歌之后把如何實(shí)現(xiàn)大數(shù)據(jù)的方法寫成了文章
- 一名Java工程師Doug Cutting參考谷歌的思路, 做了一個(gè)開源項(xiàng)目Hadoop;
1.2 分布式的優(yōu)缺點(diǎn)
- 分布式
- MapReduce: 分布式運(yùn)算
- HDFS: 分布式存儲(chǔ)
- 分布式的好處:
- 可以部署在低廉的普通硬件上;
- 編程方面的簡(jiǎn)單: Hadoop隱藏了細(xì)節(jié), 只要掌握java, 然后學(xué)學(xué)Hadoop的套路就可以了;
- 分布式的缺點(diǎn): 只能做分布式運(yùn)算, 如果數(shù)據(jù)無法切分同步運(yùn)算, 比如一個(gè)程序必須一步一步完成, 那么性能瓶頸就在那里, 無法通過分布式運(yùn)算來提高;
1.3 Hadoop形成了生態(tài)環(huán)境
- nutch爬蟲取文本數(shù)據(jù); 數(shù)據(jù)是半結(jié)構(gòu)化數(shù)據(jù);
- flume準(zhǔn)備日志數(shù)據(jù)
- Scribe是Facebook開源的日志收集系統(tǒng). 它能夠從各種日志源上收集日志斑鼻,存儲(chǔ)到一個(gè)中央存儲(chǔ)系統(tǒng)上笙蒙,以便于進(jìn)行集中統(tǒng)計(jì)分析處理珊蟀。
- 結(jié)構(gòu)化數(shù)據(jù)由RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))管理和存放在數(shù)據(jù)庫,
- sqoop可以將一個(gè)關(guān)系型數(shù)據(jù)庫(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中;
- Oozie是一個(gè)工作流引擎服務(wù)器,用于運(yùn)行Hadoop Map/Reduce和Pig 任務(wù)工作流.
- Mapreduce是主要操作邏輯和引擎, map是分配, reduce是合并;
- HDFS是分布式文件存儲(chǔ)系統(tǒng)
- HBase快速存儲(chǔ), 快速響應(yīng)查詢
- Jaql 是一個(gè) JSON 的查詢語言掂碱,用于簡(jiǎn)化 JSON 數(shù)據(jù)的建模和操作啊研,主要用于分析大規(guī)模的半結(jié)構(gòu)化數(shù)據(jù)者祖。
- Hue是一個(gè)可快速開發(fā)和調(diào)試Hadoop生態(tài)系統(tǒng)各種應(yīng)用的一個(gè)基于瀏覽器的圖形化用戶接口眶痰。
- mahout對(duì)數(shù)據(jù)進(jìn)行分析; 我們要學(xué)習(xí)好如何使用好來分析; 提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout包含許多實(shí)現(xiàn)谴垫,包括聚類章母、分類、推薦過濾弹渔、頻繁子項(xiàng)挖掘胳施。
- 大數(shù)據(jù)分析師的工作: 使用命令語句調(diào)用生態(tài)資源來分析;
2. 數(shù)據(jù)分析
2.1 什么是數(shù)據(jù)分析
- 數(shù)據(jù)分析是基于某種行業(yè)目的, 有目的地進(jìn)行收集, 整理, 加工和分析數(shù)據(jù), 提煉有價(jià)值信息的一個(gè)過程.
- 有時(shí)候上來并不清楚全脈, 做著做著就知道什么有價(jià)值了;
- 企業(yè)依仗的三份報(bào)告: 會(huì)計(jì)報(bào)告, 市場(chǎng)報(bào)告, 數(shù)據(jù)報(bào)告;
- 互聯(lián)網(wǎng)數(shù)據(jù)分析師工作內(nèi)容
- 監(jiān)控: 今天的交易量;
- 定位: 哪部分人喜歡買我們的東西
- 分析: 為什么昨天的銷量下降了;
- 報(bào)告:為老板或者部門經(jīng)理出文字和圖形報(bào)告;
2.2 數(shù)據(jù)分析的理論基礎(chǔ)
- 概率論
-Checked 研究不確定性上的規(guī)律性, 是一切的基礎(chǔ); - 數(shù)理統(tǒng)計(jì) half-checked
- 從概率論上加上了微積分; 正態(tài)分布曲線(高斯). 正態(tài)分布曲線就是不確定性上的規(guī)律性.
- 不同的模型, 最后就是曲線上的區(qū)別;
- 理論來源于概率論和微積分;
- 不用拘泥于公式推導(dǎo), 只要學(xué)1/10, 弄明白原理;
- 數(shù)據(jù)挖掘 unchecked
- 來源于人工智能領(lǐng)域, 試圖模擬人的思維;
- 最常見的方式是分類; 數(shù)據(jù)的分類很基礎(chǔ)很核心;
- 其實(shí)數(shù)學(xué)上的繁雜度沒有那么復(fù)雜;
2.3 數(shù)據(jù)分析常用工具
- SQL語言
- 不用弄懂整套, 學(xué)1/10, 學(xué)select;
- Office Excel 電子計(jì)算表 長(zhǎng)處是進(jìn)行運(yùn)算. 其實(shí)大部分中國(guó)企業(yè)用的是SQL+Excel
- SPSS也是常用的數(shù)據(jù)分析工具;
- 只需要點(diǎn)點(diǎn)鼠標(biāo), 數(shù)據(jù)分析結(jié)果就出來了;
- 比Excel更高級(jí), 但是更簡(jiǎn)單; 所有公式模型都寫好了, 用戶只要知道怎么使用這個(gè)模型就行了;
- SSAS也是類似SPSS的
- 和SPSS比, 更嚴(yán)謹(jǐn);
- 同樣是8/3, SPSS三位小數(shù), SSAS是八位小數(shù), 多次迭代運(yùn)算的時(shí)候結(jié)果會(huì)有差別
- R需要編程
- 在數(shù)據(jù)分析行業(yè)也很常用;
2.4 數(shù)據(jù)分析的6個(gè)步驟
- 明確的目標(biāo): 要做什么, 為什么
- 數(shù)據(jù)收集: 根據(jù)目標(biāo)收集, 使用爬蟲, 數(shù)據(jù)庫都可以;
- 數(shù)據(jù)處理: 數(shù)據(jù)清洗, 轉(zhuǎn)化, 提取, 計(jì)算;
- 數(shù)據(jù)清洗: 按照業(yè)務(wù)邏輯來清洗; 用一些工具去清洗;
- 看一下抽煙的數(shù)量, 篩選; 發(fā)現(xiàn)有人一天抽了30包, 很可能是異常的, 檢查問卷是否錄入錯(cuò)誤, 或者刪除;
- 用統(tǒng)計(jì)工具: 象限圖進(jìn)行清洗; 其實(shí)就是畫散點(diǎn)圖;
- 大數(shù)據(jù)分析 經(jīng)常要把日志數(shù)據(jù)轉(zhuǎn)化成結(jié)構(gòu)化數(shù)據(jù), 這時(shí)候就要用MapReduce程序來來進(jìn)行處理;
- 數(shù)據(jù)轉(zhuǎn)化: 模型需要的數(shù)據(jù)有時(shí)候需要轉(zhuǎn)化;
- 這里很重要, 是技術(shù)活, 要熟練和掌握;
- 數(shù)據(jù)清洗: 按照業(yè)務(wù)邏輯來清洗; 用一些工具去清洗;
- 數(shù)據(jù)分析
- 統(tǒng)計(jì)分析
- 數(shù)據(jù)挖掘
- 各種各樣的模型;
- 數(shù)據(jù)展示
- 圖表, 表格, 文字等;
- 報(bào)告撰寫
2.5 數(shù)據(jù)分析的工作量分布
- 如果有100天的話: 70前三步, 20天做分析, 10天做展現(xiàn)和報(bào)告;
- 往往要經(jīng)歷反復(fù); 無論一般數(shù)據(jù)分析還是大數(shù)據(jù)都得這6個(gè)步驟;
- 大數(shù)據(jù)的區(qū)別: 與統(tǒng)計(jì)分析的思想一致, 工具不同;
3. 數(shù)據(jù)分析與大數(shù)據(jù)分析的結(jié)構(gòu)
- (1) 描述性分析
- 用8個(gè)數(shù)描述一萬個(gè)數(shù);
- excel可以handle
- (2) 數(shù)理統(tǒng)計(jì)分析
- 基于那么幾條曲線;
- 用曲線做估計(jì), 基于概率論和微積分;
- 微積分在這里就是高中的微積分, 就是算面積;
- SPSS就可以做; 生物統(tǒng)計(jì)用的多;
- (3) 數(shù)據(jù)挖掘 (懵逼)
- 關(guān)鍵是四個(gè)分類分析的方法:
- 決策樹: 在機(jī)器學(xué)習(xí)中肢专,決策樹是一個(gè)預(yù)測(cè)模型舞肆,他代表的是對(duì)象屬性與對(duì)象值之間的一種映射關(guān)系;
- 神經(jīng)網(wǎng)絡(luò): 人工神經(jīng)網(wǎng)絡(luò)的最大優(yōu)勢(shì)是他們能夠被用作一個(gè)任意函數(shù)逼近的機(jī)制,那是從觀測(cè)到的數(shù)據(jù)“學(xué)習(xí);
- 支持向量機(jī): 一個(gè)有監(jiān)督的學(xué)習(xí)模型博杖,通常用來進(jìn)行模式識(shí)別椿胯、分類、以及回歸分析剃根。
- 隨機(jī)森林: 隨機(jī)森林是一個(gè)包含多個(gè)決策樹的分類器
- 關(guān)鍵是四個(gè)分類分析的方法:
- 這四個(gè)方法解決的問題: 由歷史數(shù)據(jù)得到一個(gè)規(guī)則;
- (4) 大數(shù)據(jù)分析
- mahout
- 聚類, 分類, 協(xié)同過濾
- mahout
- 數(shù)據(jù)分析最重要的是把握其思想;
- 大數(shù)據(jù)分析用一句話描述: 還是數(shù)據(jù)分析, 面對(duì)的數(shù)據(jù)比較大, 必須使用新的數(shù)據(jù)工具Hadoop, 使用的思想仍然是描述性統(tǒng)計(jì),數(shù)理統(tǒng)計(jì)分析,數(shù)據(jù)挖掘的思想;
- 記得最終是為了得出一個(gè)價(jià)值;
- Note: Spark是mahout的發(fā)展, 快得多; 但是二者各有千秋. 一小時(shí)以內(nèi)的工作用Spark, 一小時(shí)以上的用mahout;
4. 大數(shù)據(jù)學(xué)習(xí)思路
大數(shù)據(jù)分析師的五維度
- 業(yè)務(wù)知識(shí). 比如在京東工作, 要對(duì)京東的電商業(yè)務(wù)很清楚; 工作中熟悉就好了;
- SQL查詢; select, 只是1/10 of SQL知識(shí)
- 熟練掌握大數(shù)據(jù)分析和建模的方法
- 這是思想, 必須必須必須必須掌握;
- 精通一種大數(shù)據(jù)分析工具; from spark & mahout; 可以處理巨量的數(shù)據(jù) (這是真正的真正的大數(shù)據(jù))
- 例子: 團(tuán)隊(duì)碰到了電力行業(yè), 做用戶用電的行為分析, 有55億行record的多表; 架了服務(wù)器, 一分鐘就做完了; 用spark查詢;
5.* 情商
- 例子: 團(tuán)隊(duì)碰到了電力行業(yè), 做用戶用電的行為分析, 有55億行record的多表; 架了服務(wù)器, 一分鐘就做完了; 用spark查詢;
第一階段: 系統(tǒng)架構(gòu)
- 大數(shù)據(jù)概述
- Linux操作系統(tǒng)
- unbuntu系統(tǒng)
- why: hadoop把一萬臺(tái)組成一個(gè)硬盤, 必須借助linux系統(tǒng);
- hadoop單機(jī), 偽分布, 集群搭建;
- note: 我們的重點(diǎn)分析;
第二階段: Hadoop實(shí)戰(zhàn)(偏編程)
- HDFS深入剖析
- 掌握數(shù)據(jù)怎么存儲(chǔ), 讀取, 上傳, 下載文件;
- java編程基礎(chǔ)
- MapReduce基礎(chǔ)理論和高級(jí)編程實(shí)戰(zhàn)
- Hbase理論, 基礎(chǔ);
- Hive, impara(兩個(gè)都是數(shù)據(jù)庫查詢提取工具)理論和實(shí)戰(zhàn);
第三階段: 大數(shù)據(jù)分析案例(偏分析)
- Hadoop和Mahout的大數(shù)據(jù)分析實(shí)戰(zhàn), 做聚類分析;
- Spark基礎(chǔ)原理, 集群安裝并運(yùn)行Spark
- SparkSQL原理和數(shù)據(jù)整合運(yùn)用
- Hadoop+spark案例分析;
Note: 如果偏工程, 第一階段, 第二階段要多花時(shí)間; 如果偏分析, 要在第三個(gè)階段多花時(shí)間;
- 掌握算法的思想: 這個(gè)算法啥時(shí)候用, 用了會(huì)得到什么樣的結(jié)果;