Hadoop第8周練習—Pig部署及統計訪問日志例子


1    運行環境說明... 3

1.1     硬軟件環境... 3

1.2     機器網絡環境... 3

2    書面作業0:搭建Pig環境... 3

2.1     Pig介紹... 3

2.2     部署過程... 4

2.2.1   下載Pig. 4

2.2.2   上傳Pig. 4

2.2.3   解壓縮... 5

2.2.4   設置環境變量... 6

2.2.5   驗證安裝完成... 6

3    書面作業1:計算每個IP點擊次數... 7

3.1     書面作業1內容... 7

3.2     程序代碼... 7

3.3     准備數據... 7

3.4     實現過程... 8

3.4.1   輸入代碼... 8

3.4.2   運行過程... 8

3.4.3   運行結果... 9

 

1    運行環境說明

1.1     硬軟件環境

l  主機操作系統:Windows 64 bit,雙核4線程,主頻2.2G6G內存

l  虛擬軟件:VMware® Workstation 9.0.0 build-812388

l  虛擬機操作系統:CentOS 64位,單核,1G內存

l  JDK1.7.0_55 64 bit

l  Hadoop1.1.2

1.2     機器網絡環境

集群包含三個節點:1namenode2datanode,其中節點之間可以相互ping通。節點IP地址和主機名分布如下:

序號

IP地址

機器名

類型

用戶名

運行進程

1

10.88.147.221

hadoop1

名稱節點

hadoop

NNSNNJobTracer

2

10.88.147.222

hadoop2

數據節點

hadoop

DNTaskTracer

3

10.88.147.223

hadoop3

數據節點

hadoop

DNTaskTracer

所有節點均是CentOS6.5 64bit系統,防火牆均禁用,所有節點上均創建了一個hadoop用戶,用戶主目錄是/usr/hadoop。所有節點上均創建了一個目錄/usr/local/hadoop,並且擁有者是hadoop用戶。

2    書面作業0:搭建Pig環境

2.1     Pig介紹

Pigyahoo捐獻給apache的一個項目,使用SQL-like語言,是在MapReduce上構建的一種高級查詢語言,把一些運算編譯進MapReduce模型的MapReduce中。Pig 有兩種運行模式: Local 模式和 MapReduce 模式

l  本地模式:Pig運行於本地模式,只涉及到單獨的一台計算機

l  MapReduce模式:Pig運行於MapReduce模式,需要能訪問一個Hadoop集群,並且需要裝上HDFS

Pig的調用方式:

l  Grunt shell方式:通過交互的方式,輸入命令執行任務;

l  Pig script方式:通過script腳本的方式來運行任務;

l  嵌入式方式:嵌入java源代碼中,通過java調用來運行任務。

2.2     部署過程

2.2.1下載Pig

Apache下載最新的Pig軟件包,點擊下載會推薦最快的鏡像站點,以下為下載地址:http://mirror.bit.edu.cn/apache/pig/

clip_image002

2.2.2上傳Pig

把下載的pig-0.13.0.tar.gz安裝包,使用SSH Secure File Transfer工具(第12作業周2.1.3.1介紹)上傳到/home/hadoop/Downloads 目錄下

clip_image004

2.2.3解壓縮

Downloads目中將pig解壓縮

cd /home/hadoop/Downloads/

tar -xzvf pig-0.13.0.tar.gz

clip_image006

pig-0.13.0目錄移到/usr/local目錄下

sudo mv pig-0.13.0 /usr/local

cd /usr/local

ls /usr/local

clip_image008

2.2.4設置環境變量

使用如下命令編輯/etc/profile文件:

sudo vi /etc/profile

clip_image010

設置pigclass路徑和在path加入pig的路徑,其中PIG_CLASSPATH參數是設置pigMapReduce工作模式:

export PIG_HOME=/usr/local/pig-0.13.0

export PIG_CLASSPATH=/usr/local/hadoop-1.1.2/conf

export PATH=$PATH:/usr/local/hadoop-1.1.2/bin:$PIG_HOME/bin

clip_image012

編譯配置文件/etc/profile,並確認生效

source /etc/profile

2.2.5驗證安裝完成

重新登錄終端,確保hadoop集群啟動,鍵入pig命令,應該能看到pig連接到hadoop集群的信息並且進入了grunt shell命令行模式:

clip_image014

3    書面作業1:計算每個IP點擊次數

3.1     書面作業1內容

在課程資源下載本周的作業素材access_log.rar,是一段dataguru的網站訪問日志 請大家使用pig處理這個日志,計算出每個ip的點擊次數,例如 123.24.56.57 13 24.53.23.123 7 34.56.78.120 20 .... 等等

3.2     程序代碼

// 加載HDFS中訪問日志,使用空格進行分割,只加載ip

records = LOAD 'hdfs://hadoop1:9000/usr/hadoop/in/access_log.txt' USING PigStorage(' ') AS (ip:chararray);

 

// 按照ip進行分組,統計每個ip點擊數

records_b = GROUP records BY ip;

records_c = FOREACH records_b GENERATE group,COUNT(records) AS click;

 

// 按照點擊數排序,保留點擊數前10個的ip數據

records_d = ORDER records_c by click DESC;

top10 = LIMIT records_d 10;

 

// 把生成的數據保存到HDFSweek8目錄中

STORE top10 INTO 'hdfs://hadoop1:9000/usr/hadoop/week8';

3.3     准備數據

使用SSH工具(參見第122.1.3.1Linux文件傳輸工具所描述)把提供的測試數據access_log.txt上傳到本地目錄/usr/local/hadoop-1.1.2/input中,然后調用hadoop上傳本地文件命令把該文件傳到/usr/hadoop/in目錄中,如下圖所示:

clip_image016

access_log.txt日志內容如下:

clip_image018

3.4     實現過程

3.4.1輸入代碼

進入pig shell 命令行模式:

clip_image014[1]

輸入代碼:

clip_image020

3.4.2運行過程

在執行過程中在JobTracker頁面觀察運行情況,鏈接地址為:http://hadoop1:50030/jobtracker.jsp

clip_image022

點擊查看具體作業信息

clip_image024

可以觀察到本次任務分為4個作業,每個作業一次在上一次作業的結果上進行計算

clip_image026

clip_image028

3.4.3運行結果

通過以下命令查看最后的結果:

hadoop fs -ls /usr/hadoop/week8

hadoop fs -cat /usr/hadoop/week8/part-r-00000

clip_image030


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM