編輯推薦
步步引導,循序漸進,詳盡的安裝指南為順利搭建大數據實驗環境鋪平道路
? 深入淺齣,去粗取精,豐富的代碼實例幫助快速掌握大數據基礎編程方法
? 精心設計,巧妙融閤,五套大數據實驗題目促進理論與編程知識的消化和吸收
? 結閤理論,聯係實際,大數據課程綜閤實驗案例精彩呈現大數據分析全流程
內容簡介
本書以大數據分析全流程為主綫,介紹瞭數據采集、數據存儲與管理、數據處理與分析、數據可視化等環節典型軟件的安裝、使用和基礎編程方法。本書內容涵蓋操作係統(Linux和Windows)、開發工具(Eclipse)以及大數據相關技術、軟件(Sqoop、Kafka、Flume、Hadoop、HDFS、MapReduce、HBase、Hive、Spark、MySQL、MongoDB、Redis、R、Easel.ly、D3、魔鏡、ECharts、Tableau)等。同時,本書還提供瞭豐富的課程實驗和綜閤案例,以及大量免費的在綫教學資源,可以較好地滿足高等院校大數據教學實際需求。
本書是《大數據技術原理與應用——概念、存儲、處理、分析與應用》的“姊妹篇”,可以作為高等院校計算機、信息管理等相關專業的大數據課程輔助教材,用於指導大數據編程實踐;也可供相關技術人員參考。
作者簡介
林子雨(1978-),男,博士,廈門大學計算機科學係助理教授,廈門大學雲計算與大數據研究中心創始成員,廈門大學數據庫實驗室負責人,中國計算機學會數據庫專委會委員,中國計算機學會信息係統專委會委員。於2001年獲得福州大學水利水電專業學士學位,2005年獲得廈門大學計算機專業碩士學位,2009年獲得北京大學計算機專業博士學位。中國高校*“數字教師”提齣者和建設者(http://www.cs.xmu.edu.cn/linziyu),2009年至今,“數字教師”大平颱纍計嚮網絡免費發布超過100萬字高價值的教學和科研資料,纍計網絡訪問量超過100萬次。
主要研究方嚮為數據庫、數據倉庫、數據挖掘、大數據和雲計算,發錶期刊和會議學術論文多篇,並作為課題組負責人承擔瞭國傢自然科學基金和福建省自然科學基金項目。曾作為誌願者翻譯瞭Google Spanner、BigTable和《Architecture of a Database System》等大量英文學術資料,與廣大網友分享,深受歡迎。2013年在廈門大學開設大數據課程,並因在教學領域的突齣貢獻和學生的認可,成為2013年度廈門大學教學類奬教金獲得者。
目錄
第1章大數據技術概述/1
1.1大數據時代/1
1.2大數據關鍵技術/2
1.3大數據軟件/3
1.3.1Hadoop/4
1.3.2Spark/5
1.3.3NoSQL數據庫/5
1.3.4數據可視化/6
1.4內容安排/7
1.5在綫資源/8
1.5.1在綫資源一覽錶/9
1.5.2下載專區/9
1.5.3在綫視頻/10
1.5.4拓展閱讀/11
1.5.5大數據課程公共服務平颱/11
1.6本章小結/12第2章Linux係統的安裝和使用/13
2.1Linux係統簡介/13
2.2Linux係統安裝/13
2.2.1下載安裝文件/14
2.2.2Linux係統的安裝方式/14
2.2.3安裝Linux虛擬機/15
2.2.4生成Linux虛擬機鏡像文件/36
2.3Linux係統及相關軟件的基本使用方法/38
2.3.1Shell/38
2.3.2root用戶/38
2.3.3創建普通用戶/38〖2〗〖4〗大數據基礎編程、實驗和案例教程目錄〖3〗2.3.4sudo命令/39
2.3.5常用的Linux係統命令/40
2.3.6文件解壓縮/40
2.3.7常用的目錄/41
2.3.8目錄的權限/41
2.3.9更新APT/41
2.3.10切換中英文輸入法/43
2.3.11vim編輯器的使用方法/43
2.3.12在Windows係統中使用SSH方式登錄Linux係統/44
2.3.13在Linux中安裝Eclipse/48
2.3.14其他使用技巧/49
2.4關於本書內容的一些約定/49
2.5本章小結/50第3章Hadoop的安裝和使用/51
3.1Hadoop簡介/51
3.2安裝Hadoop前的準備工作/52
3.2.1創建hadoop用戶/52
3.2.2更新APT/52
3.2.3安裝SSH/52
3.2.4安裝Java環境/53
3.3安裝Hadoop/55
3.3.1下載安裝文件/55
3.3.2單機模式配置/56
3.3.3僞分布式模式配置/57
3.3.4分布式模式配置/66
3.3.5使用Docker搭建Hadoop分布式集群/75
3.4本章小結/87第4章HDFS操作方法和基礎編程/88
4.1HDFS操作常用Shell命令/88
4.1.1查看命令使用方法/88
4.1.2HDFS目錄操作/90
4.2利用HDFS的Web管理界麵/92
4.3HDFS編程實踐/92
4.3.1在Eclipse中創建項目/93
4.3.2為項目添加需要用到的JAR包/94
4.3.3編寫Java應用程序/96
4.3.4編譯運行程序/98
4.3.5應用程序的部署/100
4.4本章小結/102第5章HBase的安裝和基礎編程/103
5.1安裝HBase/103
5.1.1下載安裝文件/103
5.1.2配置環境變量/104
5.1.3添加用戶權限/104
5.1.4查看HBase版本信息/104
5.2HBase的配置/105
5.2.1單機模式配置/105
5.2.2僞分布式配置/107
5.3HBase常用Shell命令/109
5.3.1在HBase中創建錶/109
5.3.2添加數據/110
5.3.3查看數據/110
5.3.4刪除數據/111
5.3.5刪除錶/112
5.3.6查詢曆史數據/112
5.3.7退齣HBase數據庫/112
5.4HBase編程實踐/113
5.4.1在Eclipse中創建項目/113
5.4.2為項目添加需要用到的JAR包/116
5.4.3編寫Java應用程序/117
5.4.4編譯運行程序/123
5.4.5應用程序的部署/124
5.5本章小結/124第6章典型NoSQL數據庫的安裝和使用/125
6.1Redis安裝和使用/125
6.1.1Redis簡介/125
6.1.2安裝Redis/125
6.1.3Redis實例演示/127
6.2MongoDB的安裝和使用/128
6.2.1MongDB簡介/129
6.2.2安裝MongoDB/129
6.2.3使用Shell命令操作MongoDB/130
6.2.4Java API編程實例/136
6.3本章小結/139第7章MapReduce基礎編程/140
7.1詞頻統計任務要求/140
7.2MapReduce程序編寫方法/141
7.2.1編寫Map處理邏輯/141
7.2.2編寫Reduce處理邏輯/141
7.2.3編寫main方法/142
7.2.4完整的詞頻統計程序/143
7.3編譯打包程序/144
7.3.1使用命令行編譯打包詞頻統計程序/145
7.3.2使用Eclipse編譯運行詞頻統計程序/145
7.4運行程序/154
7.5本章小結/156第8章數據倉庫Hive的安裝和使用/157
8.1Hive的安裝/157
8.1.1下載安裝文件/157
8.1.2配置環境變量/158
8.1.3修改配置文件/158
8.1.4安裝並配置MySQL/159
8.2Hive的數據類型/161
8.3Hive基本操作/162
8.3.1創建數據庫、錶、視圖/162
8.3.2刪除數據庫、錶、視圖/163
8.3.3修改數據庫、錶、視圖/164
8.3.4查看數據庫、錶、視圖/165
8.3.5描述數據庫、錶、視圖/165
8.3.6嚮錶中裝載數據/166
8.3.7查詢錶中數據/166
8.3.8嚮錶中插入數據或從錶中導齣數據/166
8.4Hive應用實例: WordCount/167
8.5Hive編程的優勢/167
8.6本章小結/168第9章Spark的安裝和基礎編程/169
9.1基礎環境/169
9.2安裝Spark/169
9.2.1下載安裝文件/169
9.2.2配置相關文件/170
9.3使用 Spark Shell編寫代碼/171
9.3.1啓動Spark Shell/171
9.3.2讀取文件/172
9.3.3編寫詞頻統計程序/174
9.4編寫Spark獨立應用程序/174
9.4.1用Scala語言編寫Spark獨立應用程序/175
9.4.2用Java語言編寫Spark獨立應用程序/178
9.5本章小結/182第10章典型的可視化工具的使用方法/183
10.1Easel.ly信息圖製作方法/183
10.1.1信息圖/183
10.1.2信息圖製作基本步驟/183
10.2D3可視化庫的使用方法/186
10.2.1D3可視化庫的安裝/187
10.2.2基本操作/187
10.3可視化工具Tableau使用方法/194
10.3.1安裝Tableau/195
10.3.2界麵功能介紹/195
10.3.3Tableau簡單操作/197
10.4使用“魔鏡”製作圖錶/202
10.4.1“魔鏡”簡介/202
10.4.2簡單製作實例/202
10.5使用ECharts圖錶製作/206
10.5.1ECharts簡介/206
10.5.2ECharts圖錶製作方法/206
10.5.3兩個實例/210
10.6本章小結/217第11章數據采集工具的安裝和使用/218
11.1Flume/218
11.1.1安裝Flume/218
11.1.2兩個實例/220
11.2Kafka/225
11.2.1Kafka相關概念/225
11.2.2安裝Kafka/225
11.2.3一個實例/225
11.3Sqoop/227
11.3.1下載安裝文件/227
11.3.2修改配置文件/228
11.3.3配置環境變量/228
11.3.4添加MySQL驅動程序/228
11.3.5測試與MySQL的連接/229
11.4實例: 編寫Spark程序使用Kafka數據源/230
11.4.1Kafka準備工作/230
11.4.2Spark準備工作/232
11.4.3編寫Spark程序使用Kafka數據源/234
11.5本章小結/239第12章大數據課程綜閤實驗案例/241
12.1案例簡介/241
12.1.1案例目的/241
12.1.2適用對象/241
12.1.3時間安排/241
12.1.4預備知識/241
12.1.5硬件要求/242
12.1.6軟件工具/242
12.1.7數據集/242
12.1.8案例任務/242
12.2實驗環境搭建/243
12.3實驗步驟概述/244
12.4本地數據集上傳到數據倉庫Hive/245
12.4.1實驗數據集的下載/245
12.4.2數據集的預處理/246
12.4.3導入數據庫/249
12.5Hive數據分析/253
12.5.1簡單查詢分析/253
12.5.2查詢條數統計分析/255
12.5.3關鍵字條件查詢分析/256
12.5.4根據用戶行為分析/258
12.5.5用戶實時查詢分析/259
12.6Hive、MySQL、HBase數據互導/260
12.6.1Hive預操作/260
12.6.2使用Sqoop將數據從Hive導入MySQL/261
12.6.3使用Sqoop將數據從MySQL導入HBase/265
12.6.4使用HBase Java API把數據從本地導入到HBase中/269
12.7利用R進行數據可視化分析/275
12.7.1安裝R/275
12.7.2安裝依賴庫/277
12.7.3可視化分析/278
12.8本章小結/283第13章實驗/284
13.1實驗一: 熟悉常用的Linux操作和Hadoop操作/284
13.1.1實驗目的/284
13.1.2實驗平颱/284
13.1.3實驗步驟/284
13.1.4實驗報告/286
13.2實驗二: 熟悉常用的HDFS操作/286
13.2.1實驗目的/286
13.2.2實驗平颱/286
13.2.3實驗步驟/287
13.2.4實驗報告/287
13.3實驗三: 熟悉常用的HBase操作/288
13.3.1實驗目的/288
13.3.2實驗平颱/288
13.3.3實驗步驟/288
13.3.4實驗報告/290
13.4實驗四: NoSQL和關係數據庫的操作比較/290
13.4.1實驗目的/290
13.4.2實驗平颱/290
13.4.3實驗步驟/290
13.4.4實驗報告/293
13.5實驗五: MapReduce初級編程實踐/294
13.5.1實驗目的/294
13.5.2實驗平颱/294
13.5.3實驗步驟/294
13.5.4實驗報告/297附錄A大數據課程實驗答案/298
A.1實驗一: 熟悉常用的Linux操作和Hadoop操作/298
A.1.1實驗目的/298
A.1.2實驗平颱/298
A.1.3實驗步驟/298
A.2實驗二: 熟悉常用的HDFS操作/303
A.2.1實驗目的/303
A.2.2實驗平颱/303
A.2.3實驗步驟/303
A.3實驗三: 熟悉常用的HBase操作/323
A.3.1實驗目的/323
A.3.2實驗平颱/323
A.3.3實驗步驟/323
A.4實驗四: NoSQL和關係數據庫的操作比較/331
A.4.1實驗目的/331
A.4.2實驗平颱/331
A.4.3實驗步驟/332
A.5實驗五: MapReduce初級編程實踐/349
A.5.1實驗目的/349
A.5.2實驗平颱/349
A.5.3實驗步驟/350附錄BLinux係統中的MySQL安裝及常用操作/360
B.1安裝MySQL/360
B.2MySQL常用操作/363參考文獻/367
精彩書摘
第3章Hadoop的安裝和使用
Hadoop是一個開源的、可運行於大規模集群上的分布式計算平颱,它主要包含分布式並行編程模型MapReduce和分布式文件係統HDFS等功能,已經在業內得到廣泛的應用。藉助於Hadoop,程序員可以輕鬆地編寫分布式並行程序,將其運行於計算機集群上,完成海量數據的存儲與處理分析。
本章首先簡要介紹Hadoop的發展情況;然後,闡述安裝Hadoop之前的一些必要準備工作;最後,介紹安裝Hadoop的具體方法,包括單機模式、僞分布式模式、分布式模式以及使用Docker搭建Hadoop集群。
3.1Hadoop簡介
Hadoop是Apache軟件基金會旗下的一個開源分布式計算平颱,為用戶提供瞭係統底層細節透明的分布式基礎架構。Hadoop是基於Java語言開發的,具有很好的跨平颱特性,並且可以部署在廉價的計算機集群中。Hadoop的核心是分布式文件係統(Hadoop Distributed File System,HDFS)和MapReduce。
Hadoop被公認為行業大數據標準開源軟件,在分布式環境下提供瞭海量數據的處理能力。幾乎所有主流廠商都圍繞Hadoop提供開發工具、開源軟件、商業化工具和技術服務,如榖歌、微軟、思科、淘寶等,都支持Hadoop。
Apache Hadoop版本分為兩代: 第一代Hadoop稱為Hadoop 1.0;第二代Hadoop稱為Hadoop 2.0。第一代Hadoop包含0.20.x、0.21.x和0.22.x三大版本,其中,0.20.x最後演化成1.0.x,變成瞭穩定版,而0.21.x和0.22.x則增加瞭HDFS HA等重要的新特性。第二代Hadoop包含0.23.x和2.x兩大版本,它們完全不同於Hadoop 1.0,是一套全新的架構,均包含HDFS Federation和YARN(Yet Another Resource Negotiator)兩個組件。本書采用Hadoop 2.7.1版本。
除瞭免費開源的Apache Hadoop以外,還有一些商業公司推齣的Hadoop發行版。2008年,Cloudera成為第一個Hadoop商業化公司,並在2009年推齣第一個Hadoop發行版。此後,很多大公司也加入瞭做Hadoop産品化的行列,如MapR、Hortonworks、星環等。一般而言,商業化公司推齣的Hadoop發行版,也是以Apache Hadoop為基礎,但是,前者比後者具有更好的易用性、更多的功能和更高的性能。〖2〗〖4〗大數據基礎編程、實驗和案例教程第3章Hadoop的安裝和使用〖3〗3.2安裝Hadoop前的準備工作
本節介紹安裝Hadoop之前的一些準備工作,包括創建hadoop用戶、更新APT、安裝SSH和安裝Java環境等。
3.2.1創建hadoop用戶
本書全部采用hadoop用戶登錄Linux係統,並為hadoop用戶增加瞭管理員權限。在第2章中已經介紹瞭hadoop用戶創建和增加權限的方法,一定要按照該方法創建hadoop用戶,並且使用hadoop用戶登錄Linux係統,然後再開始下麵的學習內容。
3.2.2更新APT
第2章介紹瞭APT軟件作用和更新方法,為瞭確保Hadoop安裝過程順利進行,建議按照第2章介紹的方法,用hadoop用戶登錄Linux係統後打開一個終端,執行下麵命令更新APT軟件:$ sudo apt-get update
3.2.3安裝SSH
SSH是 Secure Shell 的縮寫,是建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠、專為遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX係統上的一個程序,後來又迅速擴展到其他操作平颱。SSH是由客戶端和服務端的軟件組成,服務端是一個守護進程,它在後颱運行並響應來自客戶端的連接請求,客戶端包含ssh程序以及像scp(遠程復製)、slogin(遠程登錄)、sftp(安全文件傳輸)等其他的應用程序。
為什麼在安裝Hadoop之前要配置SSH呢?這是因為,Hadoop名稱節點(NameNode)需要啓動集群中所有機器的Hadoop守護進程,這個過程需要通過SSH登錄來實現。Hadoop並沒有提供SSH輸入密碼登錄的形式,因此,為瞭能夠順利登錄集群中的每颱機器,需要將所有機器配置為“名稱節點可以無密碼登錄它們”。
Ubuntu默認已安裝瞭SSH客戶端,因此,這裏還需要安裝SSH服務端,在Linux的終端中執行以下命令:$ sudo apt-get install openssh-server
安裝後,可以使用如下命令登錄本機:$ ssh localhost
執行該命令後會齣現如圖3��1所示的提示信息(SSH首次登錄提示),輸入yes,然後按提示輸入密碼hadoop,就登錄到本機瞭。
圖3��1SSH登錄提示信息
這裏在理解上會有一點“繞彎”。也就是說,原本我們登錄進入Linux係統以後,就是在本機上,這時,在終端中輸入的每條命令都是直接提交給本機去執行,然後,又在本機上使用SSH方式登錄到本機,這時,在終端中輸入的命令,是通過SSH方式提交給本機處理。如果換成包含兩颱獨立計算機的場景,SSH登錄會更容易理解。例如,有兩颱計算機A和B都安裝瞭Linux係統,計算機B上安裝瞭SSH服務端,計算機A上安裝瞭SSH客戶端,計算機B的IP地址是59.77.16.33,在計算機A上執行命令ssh 59.77.16.33,就實現瞭通過SSH方式登錄計算機B上麵的Linux係統,在計算機A的Linux終端中輸入的命令,都會提交給計算機B上的Linux係統執行,也就是說,在計算機A上操作計算機B中的Linux係統。現在,隻有一颱計算機,就相當於計算機A和B都在同一颱機器上,所以,理解起來就會有點“繞彎”。
由於這樣登錄需要每次輸入密碼,所以,需要配置成SSH無密碼登錄會比較方便。在Hadoop集群中,名稱節點要登錄某颱機器(數據節點)時,也不可能人工輸入密碼,所以,也需要設置成SSH無密碼登錄。
首先輸入命令exit退齣剛纔的SSH,就迴到瞭原先的終端窗口;然後可以利用ssh�瞜eygen生成密鑰,並將密鑰加入到授權中,命令如下:$ cd ~/.ssh/#若沒有該目錄,請先執行一次ssh localhost
$ ssh-keygen -t rsa#會有提示,按Enter鍵即可
$ cat ./id_rsa.pub>>./authorized_keys#加入授權
此時,再執行ssh localhost命令,無須輸入密碼就可以直接登錄瞭,如圖3��2所示。
圖3��2SSH登錄後的提示信息
3.2.4安裝Java環境
Hadoop是基於Java語言開發的,本書的Hadoop應用程序也是采用Java語言編寫的,因此,需要安裝Java環境。Java環境可選擇安裝Oracle的JDK,或者安裝OpenJDK。下麵介紹兩種不同的安裝方式,優先選擇第一種方式,如果第一種方式失敗,請選擇第二種方式。
1. 第一種安裝方式
直接通過如下命令安裝OpenJDK 7:$ sudo apt-get install openjdk-7-jre openjdk-7-jdk
上述安裝過程需要訪問網絡下載相關文件,請保持聯網狀態。安裝好OpenJDK後,需要找到相應的安裝路徑,這個路徑是用於配置JAVA_HOME環境變量的,請執行如下命令:$ dpkg -L openjdk-7-jdk | grep '/bin/javac'
該命令會輸齣一個路徑,除去路徑末尾的/bin/javac,剩下的就是正確的路徑瞭。例如,上麵的命令執行後輸齣路徑為/usr/lib/jvm/java��7�瞣penjdk�瞐md64/bin/javac,則我們需要的路徑為/usr/lib/jvm/java��7�瞣penjdk�瞐md64。
接下來需要配置JAVA_HOME環境變量,為方便起見,這裏直接在~/.bashrc這個文件中進行設置,采用這種配置方式時,隻對當前登錄的單個用戶生效,當該用戶登錄以及每次打開新的Shell時,它的環境變量文件.bashrc會被讀取。在Linux終端中輸入下麵命令打開當前登錄用戶的環境變量配置文件.bashrc:$ vim ~/.bashrc
在文件最前麵添加如下單獨一行(注意,等號(=)前後不能有空格),然後保存退齣:$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
接下來要讓環境變量立即生效,執行如下代碼$source ~/.bashrc# 使變量設置生效
執行上述命令後,可以檢驗一下是否設置正確:$ echo $JAVA_HOME#檢驗變量值
$ java -version
$ $JAVA_HOME/bin/java -version#與直接執行java -version一樣
如果設置正確,$JAVA_HOME/bin/java �瞯ersion命令執行後,會輸齣Java的版本信息,並且和java �瞯ersion的輸齣結果一樣。
至此,Hadoop所需的Java運行環境就順利安裝完成。
2. 第二種安裝方式
根據大量計算機安裝Java環境的情況發現,部分計算機按照上述的第一種安裝方式會齣現安裝失敗的情況,這時,可以采用這裏介紹的另外一種安裝方式,命令如下:$ sudo apt-get install default-jre default-jdk
上述安裝過程需要訪問網絡下載相關文件,請保持聯網狀態。安裝結束以後,需要配置JAVA_HOME環境變量,在Linux終端中輸入下麵命令打開當前登錄用戶的環境變量配置文件.bashrc:$ vim ~/.bashrc
在文件最前麵添加如下單獨一行(注意,等號(=)前後不能有空格),然後保存退齣:$ export JAVA_HOME=/usr/lib/jvm/default-java
接下來要讓環境變量立即生效,執行如下代碼:$source ~/.bashrc# 使變量設置生效
執行上述命令後,可以檢驗一下是否設置正確:$ echo $JAVA_HOME#檢驗變量值
$ java -version
$ $JAVA_HOME/bin/java -version#與直接執行java -version一樣
至此,就成功安裝瞭Java環境。下麵就可以進入Hadoop的安裝。
3.3安裝Hadoop
Hadoop包括3種安裝模式。
(1) 單機模式。隻在一颱機器上運行,存儲采用本地文件係統,沒有采用分布式文件係統HDFS。
(2) 僞分布式模式。存儲采用分布式文件係統HDFS,但是,HDFS的名稱節點和數據節點都在同一颱機器上。
(3) 分布式模式。存儲采用分布式文件係統HDFS,而且,HDFS的名稱節點和數據節點位於不同機器上。
本節介紹Hadoop的具體安裝方法,包括下載安裝文件、單機模式配置、僞分布式模式配置、分布式模式配置和使用Docker搭建Hadoop分布式集群等。
3.3.1下載安裝文件
本書采用的Hadoop版本是2.7.1,可以到Hadoop官網下載安裝文件(http://mirrors.cnnic.cn/apache/hadoop/common/),或者也可以到本書官網的“下載專區”中下載安裝文件,進入下載專區後,在“軟件”這個文件夾中,找到文件hadoop��2.7.1.tar.gz,下載到本地。下載的方法是,在Linux係統中(不是在Windows係統中),打開瀏覽器,一般自帶瞭火狐(FireFox)瀏覽器。打開瀏覽器後,訪問本書官網,下載hadoop��2.7.1.tar.gz。火狐瀏覽器默認會把下載文件都保存到當前用戶的下載目錄,由於本書全部采用hadoop用戶登錄Linux係統,所以,hadoop��2.7.1.tar.gz文件會被保存到“/home/hadoop/下載/”目錄下。
需要注意的是,如果是在Windows係統下麵下載安裝文件hadoop��2.7.1.tar.gz,則需要通過FTP軟件上傳到Linux係統的“/home/hadoop/下載/”目錄下,這個目錄是本書所有安裝文件的中轉站。
下載完安裝文件以後,需要對文件進行解壓。按照Linux係統使用的默認規範,用戶安裝的軟件一般都是存放在/usr/local/目錄下。使用hadoop用戶登錄Linux係統,打開一個終端,執行如下命令:$ sudo tar -zxf ~/下載/hadoop-2.7.1.tar.gz -C /usr/local# 解壓到/usr/local目錄中
$cd /usr/local/
$ sudo mv ./hadoop-2.7.1/ ./hadoop#將文件夾名改為hadoop
$ sudo chown -R hadoop ./hadoop #修改文件權限
Hadoop解壓後即可使用,可以輸入如下命令來檢查 Hadoop是否可用,成功則會顯示 Hadoop版本信息:$cd /usr/local/hadoop
$./bin/hadoop version
3.3.2單機模式配置
Hadoop的默認模式為非分布式模式(本地模式),無須進行其他配置即可運行。Hadoop附帶瞭豐富的例子,運行如下命令可以查看所有例子:$ cd /usr/local/hadoop
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar
上述命令執行後,會顯示所有例子的簡介信息,包括grep、join、wordcount等。這裏選擇運行grep例子,可以先在/usr/local/hadoop目錄下創建一個文件夾input,並復製一些文件到該文件夾下;然後,運行grep程序,將 input文件夾中的所有文件作為grep的輸入,讓grep程序從所有文件中篩選齣符閤正則錶達式“dfs[a�瞶.]+”的單詞,並統計單詞齣現的次數,最後,把統計結果輸齣到/usr/local/hadoop/output文件夾中。完成上述操作的具體命令如下:$cd /usr/local/hadoop
$mkdir input
$ cp ./etc/hadoop/��.xml ./input #將配置文件復製到input目錄下
$./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-��.jar grep ./input ./output 'dfs[a-z.]+'
$ cat ./output/��#查看運行結果
執行成功後結果如圖3��3所示,輸齣瞭作業的相關信息,輸齣的結果是符閤正則錶達式的單詞dfsadmin齣現瞭1次。
圖3��3grep程序運行結果
需要注意的是,Hadoop默認不會覆蓋結果文件,因此,再次運行上麵實例會提示齣錯。如果要再次運行,需要先使用如下命令把output文件夾刪除:$rm -r ./output
3.3.3僞分布式模式配置
Hadoop可以在單個節點(一颱機器)上以僞分布式的方式運行,同一個節點既作為名稱節點(Name Node),也作為數據節點(Data Node),讀取的是分布式文件係統 HDFS 中的文件。
1
……
前言/序言
建設瞭中國高校大數據課程公共服務平颱,成為全國高校大數據教學知名品牌。平颱為教師教學和學生學習大數據課程提供包括教學大綱、講義PPT、學習指南、備課指南、實驗指南、上機習題、授課視頻、技術資料等全方位、一站式免費服務,平颱年訪問量超過100萬次;同時提供麵嚮高校的大數據實驗平颱建設方案和大數據課程師資培訓服務。
掃一掃訪問平颱主頁
大數據帶來瞭信息技術的巨大變革,並深刻影響著社會生産和人民生活的方方麵麵。大數據專業人纔的培養是世界各國新一輪科技較量的基礎,高等院校承擔著大數據人纔培養的重任,需要及時建立大數據課程體係,為社會培養和輸送一大批具備大數據專業素養的高級人纔,滿足社會對大數據人纔日益旺盛的需求。
高質量的教材是推進高校大數據課程體係建設的關鍵支撐。2013年12月,筆者根據自己主講廈門大學計算機係研究生大數據課程的教學實踐,編寫瞭電子書《大數據技術基礎》,通過網絡免費發布,獲得瞭較好的反響。此後兩年多的時間裏,筆者繼續對大數據技術知識體係進行深入學習和係統梳理,並結閤教學實踐和大量調研,編著齣版瞭《大數據技術原理與應用》教材,該書第1版於2015年8月齣版發行,第2版於2017年2月齣版發行。《大數據技術原理與應用》一書側重於介紹大數據技術的實現原理,編程實踐內容較少,該教材定位為入門級大數據教材,以“構建知識體係、闡明基本原理、開展初級實踐、瞭解相關應用”為原則,旨在為讀者搭建起通嚮大數據知識空間的橋梁和紐帶,為讀者在大數據領域深耕細作奠定基礎、指明方嚮。教材係統論述瞭大數據的基本概念、大數據處理架構Hadoop、分布式文件係統HDFS、分布式數據庫HBase、NoSQL數據庫、雲數據庫、分布式並行編程模型MapReduce、大數據處理架構Spark、流計算、圖計算、數據可視化以及大數據在互聯網、生物醫學和物流等各個領域的應用。
《大數據技術原理與應用》一書齣版以後,獲得瞭讀者較高的認可,目前已經成為國內多所高校的大數據課程教材。與此同時,筆者在最近兩年通過各種形式助力全國高校加快推進大數據課程建設,包括建設全國高校大數據課程公共服務平颱、開展全國高校大數據公開課巡講計劃、組織全國高校大數據教學論壇、舉辦全國高校大數據課程教師培訓交流班等。通過這些活動,筆者與全國高校廣大大數據課程教師有瞭更深的接觸和交流,也收集到瞭廣大一綫教師的核心教學需求。很多高校教師在高度肯定《大數據技術原理與應用》教材的同時,也提齣瞭很多中肯的改進意見和建議,其中,有很多教師指齣,應該加強大數據實踐環節的訓練,提供實驗指導和綜閤案例。
為瞭更好地滿足高校教學實際需求,筆者帶領廈門大學數據庫實驗團隊,開展瞭大量的探索和實踐,並對實踐材料進行係統整理,在此基礎上編寫瞭本教程。本教程側重於介紹大數據軟件的安裝、使用和基礎編程方法,並提供大量實驗和案例。由於大數據軟件都是開源軟件,安裝過程一般比較復雜,也很耗費時間。為瞭盡量減少讀者搭建大數據實驗環境時的障礙,筆者在本書中詳細寫齣瞭各種大數據軟件的詳細安裝過程,可以確保讀者順利完成大數據實驗環境搭建。
〖2〗〖4〗大數據基礎編程、實驗和案例教程前言〖3〗本書共13章,詳細介紹係統和軟件的安裝、使用以及基礎編程方法。第1章介紹大數據的關鍵技術和代錶性軟件,幫助讀者形成對大數據技術及其代錶性軟件的總體性認識。第2章介紹Linux係統的安裝和使用方法,為後麵其他章節的學習奠定基礎。第3章介紹分布式計算框架Hadoop的安裝和使用方法。第4章介紹分布式文件係統HDFS的基礎編程方法。第5章介紹分布式數據庫HBase的安裝和基礎編程方法。第6章介紹典型NoSQL數據庫的安裝和使用方法,包括鍵值數據庫Redis和文檔數據庫MongoDB。第7章介紹如何編寫基本的MapReduce程序。第8章介紹基於Hadoop的數據倉庫Hive的安裝和使用方法。第9章介紹基於內存的分布式計算框架Spark的安裝和基礎編程方法。第10章介紹5種典型的可視化工具的安裝和使用方法,包括Easel.ly、D3、魔鏡、ECharts、Tableau等。第11章介紹數據采集工具的安裝和使用方法,包括Flume、Kafka和Sqoop。第12章介紹一個大數據課程綜閤實驗案例,即網站用戶購物行為分析。第13章通過5個實驗讓讀者加深對知識的理解。
本書麵嚮高校計算機和信息管理等相關專業的學生,可以作為專業必修課或選修課的輔助教材。本書是《大數據技術原理與應用》的“姊妹篇”,可以作為《大數據技術原理與應用》的輔助配套教程,兩本書組閤使用,可以達到更好的學習效果。此外,本書也可以和市場上現有的其他大數據教材配套使用,作為教學輔助用書。
本書由林子雨執筆。在撰寫過程中,廈門大學計算機科學係碩士研究生謝榮東、羅道文、鄧少軍、阮榕城、薛倩、魏亮、曾冠華等做瞭大量輔助性工作,在此,嚮這些同學的辛勤工作錶示衷心的感謝。
本書的官方網站是http://dblab.xmu.edu.cn/post/bigdatapractice/,免費提供瞭全部配套資源的在綫瀏覽和下載,並接受錯誤反饋和發布勘誤信息。同時,在學習大數據課程的過程中,歡迎讀者訪問廈門大學數據庫實驗室建設的國內高校首個大數據課程公共服務平颱(http://dblab.xmu.edu.cn/post/bigdata�瞭eaching�瞤latform/),該平颱為教師教學和學生學習大數據課程提供講義PPT、學習指南、備課指南、上機習題、技術資料、授課視頻等全方位、一站式免費服務。
本書在撰寫過程中,參考瞭大量網絡資料,對大數據技術及其典型軟件進行瞭係統梳理,有選擇地把一些重要知識納入本書。由於筆者能力有限,本書難免存在不足之處,望廣大讀者不吝賜教。
林子雨2017年2月於廈門大學計算機科學係數據庫實驗室