第1章 大資料概論1.1 大資料概念1.2 大資料特點(4V)1.3 大資料應用場景1.4 大資料發展前景1.5 大資料部門業務流程分析1.6 大資料部門組織結構(重點)第2章 從Hadoop架構讨論大資料生态2.1 Hadoop是什麼2.2 Hadoop發展曆史2.3 Hadoop三大發行版本2.4 Hadoop的優勢(4高)2.5 Hadoop組成(面試重點)2.5.1 HDFS架構概述2.5.2 YARN架構概述2.5.3 MapReduce架構概述2.6 大資料技術生态體系2.7 推薦系統架構圖第3章 Hadoop運作環境搭建(開發重點)3.1 虛拟機環境準備3.2 安裝JDK3.3 安裝Hadoop3.4 Hadoop目錄結構
第1章 大資料概論
1.1 大資料概念
大資料概念如圖1-1 所示。
圖1-1 大資料概念
1.2 大資料特點(4V)
大資料特點如圖1-2,1-3,1-4,1-5所示:
圖1-2 大資料特點之大量
圖1-3 大資料特點之高速
圖1-4 大資料特點之多樣 圖1-5 大資料特點之低價值密度
1.3 大資料應用場景
大資料應用場景如圖1-6,1-7,1-8,1-9,1-10,1-11所示。
圖1-6 大資料應用場景之物流倉儲
圖1-7 大資料應用場景之零售
圖1-8 大資料應用場景之旅遊 圖1-9 大資料應用場景之商品廣告推薦
圖1-10 大資料應用場景之保險、金融及房産 圖1-11 大資料應用場景人工智能
1.4 大資料發展前景
大資料發展前景如圖1-12,1-13,1-14,1-15,1-16所示
圖1-12 大資料發展前景之國家政策
圖1-13 大資料發展前景之國際方面
圖1-14 大資料發展前景之高校方面
圖1-15 大資料發展前景之平均薪資 圖1-16 大資料發展前景之整體薪資
1.5 大資料部門業務流程分析
大資料部門業務流程分析如圖1-17所示。
圖1-17 大資料部門業務流程分析
1.6 大資料部門組織結構(重點)
大資料部門組織結構,适用于大中型企業,如圖1-18所示。
圖1-18 大資料部門組織結構
補充:
企業資料部-組織架構圖1:
圖1-19 企業資料部-組織架構圖1
企業資料部-組織架構圖2:
圖1-20 企業資料部-組織架構圖2
阿裡雲-數加:
圖1-21阿裡雲-數加
第2章 從Hadoop架構讨論大資料生态
2.1 Hadoop是什麼
圖2-1 Hadoop是什麼
2.2 Hadoop發展曆史
圖2-2 Hadoop發展曆史
2.3 Hadoop三大發行版本
-
Hadoop(哈道普)三大發行版本:Apache、Cloudera、Hortonworks。
Apache版本最原始(最基礎)的版本,對于入門學習最好。
Cloudera在大型網際網路企業中用的較多。(簡稱:CDH版,收費)
Hortonworks文檔較好。
-
1、Apache Hadoop
官網位址:http://hadoop.apache.org/releases.html
下載下傳位址:https://archive.apache.org/dist/hadoop/common/
- 2、Cloudera Hadoop官網位址:https://www.cloudera.com/downloads/cdh/5-10-0.html下載下傳位址:http://archive-primary.cloudera.com/cdh5/cdh/5/
- (1)2008年成立的Cloudera是最早将Hadoop商用的公司,為合作夥伴提供Hadoop的商用解決方案,主要是包括支援、咨詢服務、教育訓練。
-
(2)2009年Hadoop的創始人Doug Cutting也加盟Cloudera公司。
Cloudera産品主要為CDH,Cloudera Manager,Cloudera Support。
- (3)CDH是Cloudera的Hadoop發行版,完全開源,比Apache Hadoop在相容性,安全性,穩定性上有所增強。
- (4)Cloudera Manager是叢集的軟體分發及管理監控平台,可以在幾個小時内部署好一個Hadoop叢集,并對叢集的節點及服務進行實時監控。Cloudera Support即是對Hadoop的技術支援。
- (5)Cloudera的标價為每年每個節點4000美元。Cloudera開發并貢獻了可實時處理大資料的Impala項目。
- 3、Hortonworks Hadoop官網位址:https://hortonworks.com/products/data-center/hdp/下載下傳位址:https://hortonworks.com/downloads/#data-platform
- (1)2011年成立的Hortonworks是雅虎與矽谷風投公司Benchmark Capital合資組建。
- (2)公司成立之初就吸納了大約25名至30名專門研究Hadoop的雅虎工程師,上述工程師均在2005年開始協助雅虎開發Hadoop,貢獻了Hadoop80%的代碼。
- (3)雅虎工程副總裁、雅虎Hadoop開發團隊負責人Eric Baldeschwieler出任Hortonworks的首席執行官。
- (4)Hortonworks的主打産品是Hortonworks Data Platform(HDP),也同樣是100%開源的産品,HDP除常見的項目外還包括了Ambari,一款開源的安裝和管理系統。
- (5)HCatalog,一個中繼資料管理系統,HCatalog現已內建到Facebook開源的Hive中。Hortonworks的Stinger開創性的極大的優化了Hive項目。Hortonworks為入門提供了一個非常好的,易于使用的沙盒。
- (6)Hortonworks開發了很多增強特性并送出至核心主幹,這使得Apache Hadoop能夠在包括Window Server和Windows Azure在内的Microsoft Windows平台上本地運作。定價以叢集為基礎,每10個節點每年為12500美元。
2.4 Hadoop的優勢(4高)
2.5 Hadoop組成(面試重點)
圖2-3 Hadoop1.x與Hadoop2.x的差別
2.5.1 HDFS架構概述
HDFS(Hadoop Distributed File System)的架構概述,如圖2-4所示。
圖2-4 HDFS架構概述
2.5.2 YARN架構概述
YARN架構概述,如圖2-5所示。
圖2-5 YARN架構概述
2.5.3 MapReduce架構概述
MapReduce将計算過程分為兩個階段:Map和Reduce,如圖2-6所示。
1)Map階段并行處理輸入資料
2)Reduce階段對Map結果進行彙總
圖2-6 MapReduce架構概述
2.6 大資料技術生态體系
大資料技術生态體系如圖2-7所示。
圖2-7 大資料技術生态體系
圖中涉及的技術名詞解釋如下:
1)Sqoop:Sqoop(斯庫伯)是一款開源的工具,主要用于在Hadoop、Hive與傳統的資料庫(MySql)間進行資料的傳遞,可以将一個關系型資料庫(例如 :MySQL,Oracle等)中的資料導進到Hadoop的HDFS中,也可以将HDFS的資料導進到關系型資料庫中。
2)Flume:Flume(弗魯姆)是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支援在日志系統中定制各類資料發送方,用于收集資料;同時,Flume提供對資料進行簡單處理,并寫到各種資料接受方(可定制)的能力。
3)Kafka:Kafka是一種高吞吐量的分布式釋出訂閱消息系統,有如下特性:
(1)通過O(1)的磁盤資料結構提供消息的持久化,這種結構對于即使數以TB的消息存儲也能夠保持長時間的穩定性能。
(2)高吞吐量:即使是非常普通的硬體Kafka也可以支援每秒數百萬的消息。
(3)支援通過Kafka伺服器和消費機叢集來分區消息。
(4)支援Hadoop并行資料加載。
4)Storm:Storm用于“連續計算”,對資料流做連續查詢,在計算時就将結果以流的形式輸出給使用者。
5)Spark:Spark是目前最流行的開源大資料
記憶體計算架構
。可以基于Hadoop上存儲的大資料進行計算。
6)Oozie:Oozie是一個管理Hdoop作業(job)的工作流程排程管理系統。
7)Hbase:HBase是一個分布式的、面向列的開源資料庫。HBase不同于一般的關系資料庫,它是一個适合于非結構化資料存儲的資料庫。
8)Hive:Hive是基于Hadoop的一個
,可以将結構化的資料檔案映射為一張資料庫表,并提供簡單的SQL查詢功能,可以将SQL語句轉換為MapReduce任務進行運作。其優點是學習成本低,可以
資料倉庫工具
通過類SQL語句快速實作簡單的MapReduce統計
,不必開發專門的MapReduce應用,十分适合資料倉庫的統計分析。
10)R語言:R是用于統計分析、繪圖的語言和操作環境。R是屬于GNU系統的一個自由、免費、源代碼開放的軟體,它是一個用于統計計算和統計制圖的優秀工具。
11)Mahout:Apache Mahout(麥浩特)是個可擴充的機器學習和資料挖掘庫。
12)ZooKeeper:Zookeeper是Google的Chubby一個開源的實作。它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分布式同步、組服務等。
,将簡單易用的接口和性能高效、功能穩定的系統提供給使用者。
ZooKeeper的目标就是封裝好複雜易出錯的關鍵服務
2.7 推薦系統架構圖
推薦系統項目架構如圖2-8所示。
圖2-8推薦系統項目架構
第3章 Hadoop運作環境搭建(開發重點)
3.1 虛拟機環境準備
示範以CentOS6X為例:
1、完整克隆虛拟機或者複制虛拟機均可
(
注意:
完整克隆虛拟機和複制虛拟機檔案的差別:二者沒什麼差別,本質一樣。隻是在開機的時候,複制的虛拟機需要選擇【我已複制該虛拟機】)
2、修改虛拟機的靜态IP
注意:
複制的虛拟機會新生成一張網卡,即虛拟出一張網卡:eth1,我們可以使用該網卡,也可以不使用而繼續使用eth0,但是需要配置,即修改
MAC位址
即可。
虛拟技術的精髓!
)
3、修改主機名
(配置Linux系統中ip位址與主機名映射,還需要配置Windows系統中Linux的ip位址與主機名映射,這樣為了友善後續操作。
注意:
CentOS6X和CenOS7X的主機名配置的差別)
4、永久關閉防火牆
(實際開發中不建議永久關閉防火牆,需要使用什麼端口,開放即可。
注意:
CentOS6X和CenOS7X的防火牆配置的差別)
5、建立atguigu使用者
注意:
建立使用者後要及時設定使用者密碼,這是一個好習慣!)
6、配置atguigu使用者具有root權限
(并非所有使用者都能夠執行sudo,因為有權限的使用者需要在/etc/sudoers中進行配置後才可以使用,
注意:
sudoers的權限是0440,即隻有root才能讀。在你用root或sudo編輯後強行儲存并退出(wq!)即可。)
以上六步驟完成後,建議重新開機虛拟機。
步驟如下:
完整克隆虛拟機
打開克隆的虛拟機,進行如下配置:
修改虛拟機的靜态IP
修改主機名
永久關閉防火牆
重新開機虛拟機,測試一下,是否以上配置成功,沒有問題
配置成功後,我們使用遠端終端連結上Linux,進行以下操作:
建立atguigu使用者并設定使用者密碼,已建立,簡單,不在贅圖!
配置atguigu使用者具有root權限,指令:
[root@hadoop101 ~]# vim /etc/sudoers
至此準備工作完成!!!
7、在
/opt/
目錄下建立檔案夾
(1)在/opt目錄下建立module、software檔案夾,由于rh是空檔案夾,我們将其删除掉,這樣清爽!
[atguigu@hadoop101 opt]$ sudo mkdir module
[atguigu@hadoop101 opt]$ sudo mkdir software
[atguigu@hadoop101 opt]$ sudo rm -rf rh/
(2)修改module、software檔案夾的所有者和所在組為atguigu
[atguigu@hadoop101 opt]$ sudo chown atguigu:atguigu module/ software/
[atguigu@hadoop101 opt]$ ll
總用量 8
drwxr-xr-x. 2 atguigu atguigu 4096 1月 17 14:37 module
drwxr-xr-x. 2 atguigu atguigu 4096 1月 17 14:38 software
如下圖所示:
3.2 安裝JDK
1、解除安裝現有JDK
(1)查詢是否安裝Java軟體:
[atguigu@hadoop101 opt]$ rpm -qa | grep java
或者
[atguigu@hadoop101 opt]$ rpm -qa | grep jdk
(2)如果安裝的版本低于1.7,解除安裝該JDK:
[atguigu@hadoop101 opt]$ sudo rpm -e --nodeps 軟體包
(3)檢視JDK安裝路徑:
[atguigu@hadoop101 ~]$ which java
2、用SecureCRT工具或者Xshell6将JDK導入到opt目錄下面的software檔案夾下面。
3、在Linux系統下的opt目錄中檢視軟體包是否導入成功
[atguigu@hadoop101 opt]$ cd software/
[atguigu@hadoop101 software]$ ll
總用量 374196
-rw-r--r--. 1 root root 197657687 1月 29 17:10 hadoop-2.7.2.tar.gz
-rw-r--r--. 1 root root 185515842 1月 29 17:10 jdk-8u144-linux-x64.tar.gz
4、解壓JDK到/opt/module目錄下
[atguigu@hadoop101 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
5、配置JDK環境變量
(1)先擷取JDK路徑
[atguigu@hadoop101 jdk1.8.0_144]$ pwd
/opt/module/jdk1.8.0_144
(2)打開/etc/profile檔案
[atguigu@hadoop101 software]$ sudo vim /etc/profile
在profile檔案末尾添加JDK路徑(Shift+G),有兩種格式:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
或者
#JAVA_HOME
JAVA_HOME=/opt/module/jdk1.8.0_144
JRE_HOME=/opt/module/jdk1.8.0_144/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
(3)儲存後退出
:wq
(4)讓修改後的檔案生效
[atguigu@hadoop101 jdk1.8.0_144]$ source /etc/profile
6、測試JDK是否安裝成功
[atguigu@hadoop101 jdk1.8.0_144]# java -version
java version "1.8.0_144"
注意:重新開機(如果java -version可以用就不用重新開機)
[atguigu@hadoop101 jdk1.8.0_144]$ sync
[atguigu@hadoop101 jdk1.8.0_144]$ sudo reboot
3.3 安裝Hadoop
0、Hadoop下載下傳位址:
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
1、用SecureCRT工具将hadoop-2.7.2.tar.gz導入到opt目錄下面的software檔案夾下面
切換到sftp連接配接頁面,選擇Linux下編譯的hadoop jar包拖入。
2、進入到Hadoop安裝包路徑下
[atguigu@hadoop101 ~]$ cd /opt/software/
3、解壓安裝檔案到/opt/module下面
[atguigu@hadoop101 software]$ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
4、檢視是否解壓成功
[atguigu@hadoop101 software]$ ls /opt/module/
hadoop-2.7.2
5、将Hadoop添加到環境變量
(1)擷取Hadoop安裝路徑
[atguigu@hadoop101 hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.7.2
[atguigu@hadoop101 hadoop-2.7.2]$ sudo vim /etc/profile
在profile檔案末尾添加JDK路徑:(shitf+g)
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
:wq
[atguigu@ hadoop101 hadoop-2.7.2]$ source /etc/profile
6、測試是否安裝成功
[atguigu@hadoop101 hadoop-2.7.2]$ hadoop version
Hadoop 2.7.2
7、重新開機(如果Hadoop指令不能用再重新開機)
[atguigu@ hadoop101 hadoop-2.7.2]$ sync
[atguigu@ hadoop101 hadoop-2.7.2]$ sudo reboot
3.4 Hadoop目錄結構
1、檢視Hadoop目錄結構
[atguigu@hadoop101 hadoop-2.7.2]$ ll
總用量 52
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 bin
drwxr-xr-x. 3 atguigu atguigu 4096 5月 22 2017 etc
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 include
drwxr-xr-x. 3 atguigu atguigu 4096 5月 22 2017 lib
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 libexec
-rw-r--r--. 1 atguigu atguigu 15429 5月 22 2017 LICENSE.txt
-rw-r--r--. 1 atguigu atguigu 101 5月 22 2017 NOTICE.txt
-rw-r--r--. 1 atguigu atguigu 1366 5月 22 2017 README.txt
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 sbin
drwxr-xr-x. 4 atguigu atguigu 4096 5月 22 2017 share
2、重要目錄
(1)bin目錄:存放對Hadoop相關服務(HDFS,YARN,Hadoop)進行操作的腳本
(2)etc目錄:Hadoop的配置檔案目錄,存放Hadoop的配置檔案
(3)lib目錄:存放Hadoop的本地庫(對資料進行壓縮解壓縮功能)
(4)sbin目錄:存放啟動或停止Hadoop相關服務的腳本
(5)share目錄:存放Hadoop的依賴jar包、文檔、和官方案例
Copyright ©2018-2019