1.實驗目的
• 為后續上機實驗做准備,熟悉常用的Linux操作和Hadoop操作。
2.實驗平台
操作系統:Linux
Hadoop版本:2.7.1
3.實驗內容和要求
(一)熟悉常用的Linux操作
請按要求上機實踐如下linux基本命令。
cd命令:切換目錄
(1) 切換到目錄 /usr/local
(2) 去到目前的上層目錄
(3) 回到自己的主文件夾
ls命令:查看文件與目錄
(4) 查看目錄/usr下所有的文件
mkdir命令:新建新目錄
(5) 進入/tmp目錄,創建一個名為a的目錄,並查看有多少目錄存在
(6) 創建目錄a1/a2/a3/a4
rmdir命令:刪除空的目錄
(7) 將上例創建的目錄a(/tmp下面)刪除
(8) 刪除目錄a1/a2/a3/a4,查看有多少目錄存在
cp命令:復制文件或目錄
(9) 將主文件夾下的.bashrc復制到/usr下,命名為bashrc1
(10) 在/tmp下新建目錄test,再復制這個目錄內容到/usr
mv命令:移動文件與目錄,或更名
(11) 將上例文件bashrc1移動到目錄/usr/test
(12) 將上例test目錄重命名為test2
rm命令:移除文件或目錄
(13) 將上例復制的bashrc1文件刪除
(14) 將上例的test2目錄刪除
cat命令:查看文件內容
(15) 查看主文件夾下的.bashrc文件內容
tac命令:反向列示
(16) 反向查看主文件夾下.bashrc文件內容
more命令:一頁一頁翻動查看
(17)翻頁查看主文件夾下.bashrc文件內容
head命令:取出前面幾行
(17) 查看主文件夾下.bashrc文件內容前20行
(19)查看主文件夾下.bashrc文件內容,后面50行不顯示,只顯示前面幾行
tail命令:取出后面幾行
(20)查看主文件夾下.bashrc文件內容最后20行
(21)查看主文件夾下.bashrc文件內容,只列出50行以后的數據
chown命令:修改文件所有者權限
(22)將hello文件所有者改為root帳號,並查看屬性
Vim/gedit/文本編輯器:新建文件
(23)在主文件夾下創建文本文件my.txt,輸入文本保存退出。
tar命令:壓縮命令
(24)將my.txt打包成test.tar.gz
(25)解壓縮到~/tmp目錄
(二)熟悉使用MySQL shell操作
(26)顯示庫:show databases;
(27)進入到庫:use 庫名;
(28)展示庫里表格:show tables;
(29)顯示某一個表格屬性:desc 表格名;
(30)顯示某一個表格內的具體內容:select *form 表格名;
(31)創建一個數據庫:create databases sc;
(32)在sc中創建一個表格:create table if not exists student( );
(33)向表格student中插入具體內容:insert into 表格名(名)values(value);
插入記錄包含自己的學號姓名。
顯示表的內容。
三.hadoop
1.hadoop是什么
是什么呢?就是一個棕黃色玩具大象的名字。這是真的!hadoop的作者Doug Cutting說的,這是他兒子的玩具的名字。(是不是太隨意了,想想國人取名字的場景。。。)我們回到正軌,hadoop是世界上最大的富豪Apache捐助的分布式系統基礎架構。該框架由java語言設計實現,用以實現在大量計算機組成的集群中對海量數據進行分布式計算。Hadoop得以在大數據處理應用中廣泛應用得益於其自身在數據提取、變形和加載(ETL)方面上的天然優勢。Hadoop的分布式架構,將大數據處理引擎盡可能的靠近存儲。
不知道大家有沒有聽說Nutch這個框架。如果有人使用java做爬蟲就應該知道!該框架的作者就是Doug Cutting。hadoop也起源於Nutch並且借鑒了Google於2003年發表的GFS和MapReduce相關論文。有興趣的可以翻出去看一下。
1.1 hadoop簡介
我們先看一下hadoop1.x的生態系統:
我們對上面各個模塊做一些簡要說明:
- Ambari:基於web的Hadoop集群安裝,部署,管理,監控工具。
- HDFS:分布式文件系統,提供數據容錯和對數據的高吞吐率訪問。
- MapReduce:分布式,並行編程模型。將任務分為map和reduce兩個階段,從而實現每個階段對數據的並行處理。
- ZooKeeper:高性能的分布式應用程序協調服務,是google的chubby的一個開源實現。
- HBase:基於HDFS的面向列存儲的分布式數據庫,用於快速讀寫大量數據。
- Hive:以類SQL語言提供實時大規模數據實時查詢的數據倉庫。
- Pig:提供高級數據流語言和計算框架來代替mapreduce任務的編寫。
- Mahout:可擴展的基於mapreduce的機器學習和數據挖掘庫。
- Flume:高可用,高可靠,分布式的海量日志采集、聚合和傳輸的系統。提供對數據進行簡單處理,並寫到各種數據接收方的能力。
- Sqoop:用於在關系數據庫,數據倉庫和Hadoop文件系統之間轉移數據的工具。
我們再來看一下hadoop2.x系統架構:
3.2文件系統對比
1.windows
2.linux
3.hdfs
4.web
啟動hdfs
查看與創建hadoop用戶目錄。
在用戶目錄下創建與查看input目錄。
將hadoop的配置文件上傳到hdfs上的input目錄下。
運行MapReduce示例作業,輸出結果放在output目錄下。
查看output目錄下的文件。
查看輸出結果
將輸出結果文件下載到本地。
查看下載的本地文件。
停止hdfs