大資料個人筆記(一)

柱子不是坑發表於2017-08-07

第一次嘗試記錄自己所學知識,更多紀錄一些基礎得不再基礎的東西~~~


1.什麼是大資料,4V?

大資料(big data),指無法在一定時間範圍內用常規軟體工具進行捕捉、管理和處理的資料集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的資訊資產。

資料量大(Volume)。第一個特徵是資料量大,包括採集、儲存和計算的量都非常大。大資料的起始計量單位至少是P(1000個T)、E(100萬個T)或Z(10億個T)。

型別繁多(Variety)。第二個特徵是種類和來源多樣化。包括結構化、半結構化和非結構化資料,具體表現為網路日誌、音訊、視訊、圖片、地理位置資訊等等,多型別的資料對資料的處理能力提出了更高的要求。

價值密度低(Value)。第三個特徵是資料價值密度相對較低,或者說是浪裡淘沙卻又彌足珍貴。隨著網際網路以及物聯網的廣泛應用,資訊感知無處不在,資訊海量,但價值密度較低,如何結合業務邏輯並通過強大的機器演算法來挖掘資料價值,是大資料時代最需要解決的問題。

速度快時效高(Velocity)。第四個特徵資料增長速度快,處理速度也快,時效性要求高。比如搜尋引擎要求幾分鐘前的新聞能夠被使用者查詢到,個性化推薦演算法儘可能要求實時完成推薦。這是大資料區別於傳統資料探勘的顯著特徵。


2.資料  結構+非結構

結構化資料也稱作行資料,是由二維表結構來邏輯表達和實現的資料,嚴格地遵循資料格式與長度規範,主要通過關係型資料庫進彳儲存和管理。與結構化資料相對的是不適於由資料庫二維表來表現的非結構化資料,包括所有格式的辦公文件、XML、HTML、各類報表、圖片和咅頻、視訊資訊等。支援非結構化資料的資料庫採用多值欄位、了欄位和變長欄位機制進行資料項的建立和管理,廣泛應用於全文檢索和各種多媒體資訊處理領域

非結構化資料其格式非常多樣,標準也是多樣性的,而且在技術上非結構化資訊比結構化資訊更難標準化和理解。所以儲存、檢索、釋出以及利用需要更加智慧化的IT技術,比如海量儲存、智慧檢索、知識挖掘、內容保護、資訊的增值開發利用等。


3.資料單位  pb,Z Y

計算機的儲存單位
位 bit (位元)(Binary Digits):存放一位二進位制數,即 0 或 1,最小的儲存單位。
位元組 byte:8個二進位制位為一個位元組(B),最常用的單位。
即1B(byte 位元組) = 8 bit
計算機儲存單位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB來表示,它們之間的關係是:
1KB (Kilobyte 千位元組)=1024B,
1MB (Megabyte 兆位元組 簡稱“兆”)=1024KB,
1GB (Gigabyte 吉位元組 又稱“千兆”)=1024MB,
1TB (Trillionbyte 萬億位元組 太位元組)=1024GB,其中1024=2^10 ( 2 的10次方),
1PB(Petabyte 千萬億位元組 拍位元組)=1024TB,
1EB(Exabyte 百億億位元組 艾位元組)=1024PB,
1ZB (Zettabyte 十萬億億位元組 澤位元組)= 1024 EB,
1YB (Yottabyte 一億億億位元組 堯位元組)= 1024 ZB,
1BB (Brontobyte 一千億億億位元組)= 1024 YB.

4.資料分析流程: 採集-ETL-分析-顯示

ETL(extract提取、transform轉換、load載入)。ETL負責將分散的、異構資料來源中的資料如關係資料、平面資料檔案等抽取到臨時中間層後,進行清洗、轉換、整合,最後載入到資料倉儲或資料集市中,成為聯機分析處理、資料探勘提供決策支援的資料。

5.計算模式:迭代 流 批處理 互動式


6.簡介分散式系統?

分散式系統(distributed system)是建立在網路之上的軟體系統。正是因為軟體的特性,所以分散式系統具有高度的內聚性和透明性。因此,網路和分散式系統之間的區別更多的在於高層軟體(特別是作業系統),而不是硬體。內聚性是指每一個資料庫分佈節點高度自治,有本地的資料庫管理系統。透明性是指每一個資料庫分佈節點對使用者的應用來說都是透明的,看不出是本地還是遠端。在分散式資料庫系統中,使用者感覺不到資料是分佈的,即使用者不須知道關係是否分割、有無副本、資料存於哪個站點以及事務在哪個站點上執行等。

7.CDH

 Cloudera's Distribution, including Apache Hadoop
  • 是Hadoop眾多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建
  • 提供了Hadoop的核心
    – 可擴充套件儲存
    – 分散式計算
  • 基於Web的使用者介面

CDH版本衍化
hadoop是一個開源專案,所以很多公司在這個基礎進行商業化,Cloudera對hadoop做了相應的改變。
Cloudera公司的發行版,我們將該版本稱為CDH(Cloudera Distribution Hadoop)。截至目前為止,CDH共有5個版本,其中,前兩個已經不再更新,最近的兩個,分別是CDH4在Apache Hadoop 2.0.0版本基礎上演化而來的),CDH5,它們每隔一段時間便會更新一次


8.CAP原理

CAP(Consistency一致性、Availability可用性、Partition-tolerance分割槽可容忍性)理論

轉自: http://www.68dl.com//research/2014/0907/4413.html

9.hadoop技術棧 hdfs,mapreduce,hive,hbase,sqoop

hdfs:

Hadoop分散式檔案系統(HDFS)被設計成適合執行在通用硬體(commodity hardware)上的分散式檔案系統。它和現有的分散式檔案系統有很多共同點。但同時,它和其他的分散式檔案系統的區別也是很明顯的。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。HDFS放寬了一部分POSIX約束,來實現流式讀取檔案系統資料的目的。HDFS在最開始是作為Apache Nutch搜尋引擎專案的基礎架構而開發的。HDFS是Apache Hadoop Core專案的一部分。
HDFS有著高容錯性(fault-tolerant)的特點,並且設計用來部署在低廉的(low-cost)硬體上。而且它提供高吞吐量(high throughput)來訪問應用程式的資料,適合那些有著超大資料集(large data set)的應用程式。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實現流的形式訪問(streaming access)檔案系統中的資料。

mapreduce:

MapReduce是一種程式設計模型,用於大規模資料集(大於1TB)的並行運算。概念"Map(對映)"和"Reduce(歸約)",和它們的主要思想,都是從函數語言程式設計語言裡借來的,還有從向量程式語言裡借來的特性。它極大地方便了程式設計人員在不會分散式並行程式設計的情況下,將自己的程式執行在分散式系統上。 當前的軟體實現是指定一個Map(對映)函式,用來把一組鍵值對對映成一組新的鍵值對,指定併發的Reduce(歸約)函式,用來保證所有對映的鍵值對中的每一個共享相同的鍵組。

hive:

hive是基於Hadoop的一個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉儲的統計分析。另外一個是Windows登錄檔檔案。

hbase:

HBase是一個分散式的、面向列的開源資料庫,該技術來源於 Fay Chang 所撰寫的Google論文"Bigtable:一個結構化資料的分散式儲存系統"。就像Bigtable利用了Google檔案系統(File System)所提供的分散式資料儲存一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。HBase是Apache的Hadoop專案的子專案。HBase不同於一般的關聯式資料庫,它是一個適合於非結構化資料儲存的資料庫。另一個不同的是HBase基於列的而不是基於行的模式。

sqoop:

Sqoop(發音:skup)是一款開源的工具,主要用於在HADOOP(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。


相關文章