第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目錄結構css
大數據概念如圖1-1 所示。html
大數據特色如圖1-2,1-3,1-4,1-5所示:java
大數據應用場景如圖1-6,1-7,1-8,1-9,1-10,1-11所示。node
大數據發展前景如圖1-12,1-13,1-14,1-15,1-16所示linux
大數據部門業務流程分析如圖1-17所示。面試
大數據部門組織結構,適用於大中型企業,如圖1-18所示。shell
Hadoop(哈道普)三大發行版本:Apache、Cloudera、Hortonworks。
Apache版本最原始(最基礎)的版本,對於入門學習最好。
Cloudera在大型互聯網企業中用的較多。(簡稱:CDH版,收費)
Hortonworks文檔較好。數據庫
一、Apache Hadoop
官網地址:http://hadoop.apache.org/releases.html
下載地址:https://archive.apache.org/dist/hadoop/common/apache
二、Cloudera Hadoop
官網地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
下載地址:http://archive-primary.cloudera.com/cdh5/cdh/5/vim
2009年Hadoop的創始人Doug Cutting也加盟Cloudera公司。
Cloudera產品主要爲CDH,Cloudera Manager,Cloudera Support。三、Hortonworks Hadoop
官網地址:https://hortonworks.com/products/data-center/hdp/
下載地址:https://hortonworks.com/downloads/#data-platform
公司成立之初就吸納了大約25名至30名專門研究Hadoop的雅虎工程師,上述工程師均在2005年開始協助雅虎開發Hadoop,貢獻了Hadoop80%的代碼。
HDFS(Hadoop Distributed File System)的架構概述,如圖2-4所示。
YARN架構概述,如圖2-5所示。
MapReduce將計算過程分爲兩個階段:Map和Reduce,如圖2-6所示。
1)Map階段並行處理輸入數據
2)Reduce階段對Map結果進行彙總
大數據技術生態體系如圖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-8所示。
演示以CentOS6X爲例:
一、完整克隆虛擬機或者複製虛擬機都可
(注意:
完整克隆虛擬機和複製虛擬機文件的區別:兩者沒什麼區別,本質同樣。只是在開機的時候,複製的虛擬機須要選擇【我已複製該虛擬機】)
二、修改虛擬機的靜態IP
(注意:
複製的虛擬機會新生成一張網卡,即虛擬出一張網卡:eth1,咱們可使用該網卡,也能夠不使用而繼續使用eth0,可是須要配置,即修改MAC地址
便可。虛擬技術的精髓!
)
三、修改主機名
(配置Linux系統中ip地址與主機名映射,還須要配置Windows系統中Linux的ip地址與主機名映射,這樣爲了方便後續操做。注意:
CentOS6X和CenOS7X的主機名配置的區別)
四、永久關閉防火牆
(實際開發中不建議永久關閉防火牆,須要使用什麼端口,開放便可。注意:
CentOS6X和CenOS7X的防火牆配置的區別)
五、建立atguigu用戶
(注意:
建立用戶後要及時設置用戶密碼,這是一個好習慣!)
六、配置atguigu用戶具備root權限
(並不是全部用戶都可以執行sudo,由於有權限的用戶須要在/etc/sudoers中進行配置後纔可使用,注意:
sudoers的權限是0440,即只有root才能讀。在你用root或sudo編輯後強行保存並退出(wq!)便可。)
以上六步驟完成後,建議重啓虛擬機。
步驟以下:
完整克隆虛擬機
打開克隆的虛擬機,進行以下配置:
修改虛擬機的靜態IP
修改主機名
永久關閉防火牆
重啓虛擬機,測試一下,是否以上配置成功,沒有問題
配置成功後,咱們使用遠程終端連接上Linux,進行如下操做:
[root@hadoop101 ~]# vim /etc/sudoers
七、在/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
以下圖所示:
一、卸載現有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
二、用SecureCRT工具或者Xshell6將JDK導入到opt目錄下面的software文件夾下面。
三、在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
四、解壓JDK到/opt/module目錄下
[atguigu@hadoop101 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
五、配置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
六、測試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
0、Hadoop下載地址:
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
一、用SecureCRT工具將hadoop-2.7.2.tar.gz導入到opt目錄下面的software文件夾下面
切換到sftp鏈接頁面,選擇Linux下編譯的hadoop jar包拖入。
二、進入到Hadoop安裝包路徑下
[atguigu@hadoop101 ~]$ cd /opt/software/
三、解壓安裝文件到/opt/module下面
[atguigu@hadoop101 software]$ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
四、查看是否解壓成功
[atguigu@hadoop101 software]$ ls /opt/module/
hadoop-2.7.2
五、將Hadoop添加到環境變量
(1)獲取Hadoop安裝路徑
[atguigu@hadoop101 hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.7.2
(2)打開/etc/profile文件
[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
(3)保存後退出
:wq
(4)讓修改後的文件生效
[atguigu@ hadoop101 hadoop-2.7.2]$ source /etc/profile
六、測試是否安裝成功
[atguigu@hadoop101 hadoop-2.7.2]$ hadoop version
Hadoop 2.7.2
七、重啓(若是Hadoop命令不能用再重啓)
[atguigu@ hadoop101 hadoop-2.7.2]$ sync
[atguigu@ hadoop101 hadoop-2.7.2]$ sudo reboot
一、查看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
二、重要目錄(1)bin目錄:存放對Hadoop相關服務(HDFS,YARN,Hadoop)進行操做的腳本(2)etc目錄:Hadoop的配置文件目錄,存放Hadoop的配置文件(3)lib目錄:存放Hadoop的本地庫(對數據進行壓縮解壓縮功能)(4)sbin目錄:存放啓動或中止Hadoop相關服務的腳本(5)share目錄:存放Hadoop的依賴jar包、文檔、和官方案例