目前大資料開發方面,市場上最主要的還是用spark做開發居多。這一點也可以從招聘**上可以看到。整個大資料體系經過這麼多年的發展,相當的繁雜,各種各樣的元件,但是其中有一些已經過時了,或者用的少了,其實乾脆就不用學了,免得浪費時間。下面介紹自己學習過程中的大資料重點。
1.linux
linux系統肯定是基礎了,大資料集群是執行在這上面的。linux在伺服器上面一般是用centos系統,還分6.x版本和7.x版本,這兩個版本有一些命令是不一樣的,比如在啟動某個服務的命令是不一樣的,寫法有區別,有時候在網上查詢資料,發現命令不一樣,就得再看一下版本,很多時候博主是不會特別指出用的linux版本的。後面我有一篇文章會總結常用的linux命令。
2.大資料集群元件
hadoophadoop是apache的乙個大資料開源框架,主要包含hdfs、yarn、mapreduce三個元件
spark在理解mapreduce的基礎上,再來看spark就很簡單了。其實spark的主要功能是用來做計算的,有的小夥伴誤認為spark是第二代大資料框架,是用來替代hadoop的,其實不是的,spark只是計算框架,並沒有儲存和排程框架,儲存和排程還是依靠hdfs和yarn完成的。那為什麼spark用的更多呢?因為mapreduce的中間計算結果是儲存硬碟的,spark的中間計算結果是記憶體的,記憶體的讀取肯定是比硬碟更快的,這也就是為什麼spark更受歡迎的原因。
3.離線計算和實時計算
大資料系統一般最後落地到產品應用上,有離線計算和實時計算。公司裡面一般有各種埋點資料,日誌資料,把他們整合起來,這是乙個龐大的資料量,把這些資料用資料同步工具同步到大資料系統,比如hive,再通過spark計算得到結果,把結果表同步到資料庫,可能是mysql,redis,hbase之類,再展示到資料視覺化平台。這就是目前很多公司做的大資料業務。還有hive也有hive sql工具可以計算,但是hive sql的底層是mapreduce,速度會比較慢,所以可以用spark 來計算。實時計算也是一樣的流程,只是顯示的是實時的資料,一般需要加上kafka,做乙個資料的緩衝。因為計算過程中不一定能處理那麼多實時資料,用kafka做乙個吞吐。
4.各種大資料系統元件工具
在整個離線和實時計算過程中,除了hadoop,spark框架,另外還需要很多各種工具做支援,需要用到的有以下。
5.各種資料庫
6.mysql語句和資料庫優化
因為hive sql和spark sql 和mysql的語法是差不多的,在實際開發中需要用到。
7.cdh大資料系統
cloudera公司開發的cdh大資料系統,有開源免費版本,因為原生版本的安裝不方便,還有各個元件版本相容,公升級,學習中幾個節點安裝還好,生產環境中幾十台幾百台節點安裝,然後管理是很麻煩的事情,所以這個cdh版本比較方便,很多小公司用它的免費版。
8.scala語言
spark是用scala編寫的,可以用scala程式設計,當然也可以用pyspark程式設計。
以上就是學習大資料過程中的重點,可以供參考。
大資料學習筆記
大資料處理是雲計算中非常重要的領域,自google公司提出mapreduce分布式處理框架以來,以hadoop為代表的開源軟體受到越來越多公司的重視和青睞。本文將講述hadoop系統中的乙個新成員 impala。impala架構分析 impala是cloudera公司主導開發的新型查詢系統,它提供s...
大資料集群搭建過程(學習筆記)
1.安裝linux系統 虛擬機器採用的是vmvare,系統採用的是centos6.5精簡版 centos 6.5 x86 64 minimal.iso檔案,選擇自定義安裝 1.1網路模式選擇net模式,磁碟空間及記憶體處理器大小個數看系統環境配置,系統選擇稍後安裝。1.2配置硬碟分割槽,分別是 bo...
大資料學習筆記 1 1 了解大資料
三 bigtable 大表 nosql資料庫 hbase 首先引入兩個個大資料應用場景 從以上兩個例子可以引出大資料的兩個核心問題 資料的儲存 分布式的檔案系統 hdfs hadoop distributed file system 資料的計算 資料的計算 不是演算法 分布式的計算 mapreduc...