一、分析處理數據集
數據集描述:
2011年某天某搜索引擎的搜索情況
數據集一共6列,分別爲時間、UID、搜索關鍵詞、選擇第幾個入口、搜索次數、URL。
初級階段我的研究目標是對搜索關鍵詞(keyword)進行詞頻統計。
那麼首先我需要對數據集進行預處理,這裏我使用python編寫處理程序,僅提取出關鍵字一列的內容形成新文件,爲下一步存入Hadoop的HDFS中做準備。處理代碼如下:
#數據預處理
import sys
path = ".\sogou.500w.utf8" #數據來源
f = open(path,'r', encoding='UTF-8')
line = f.readline()
list = []
count = 0
while line:
a = line.split('\t')
b = a[2:3]
list.append(b)
line = f.readline()
count = count+1
f.close
with open('sougou.txt','w',encoding='UTF-8') as month_file: #提取後的數據文件
for tag in list:
for i in tag:
month_file.write(str(i))
month_file.write(' ')
month_file.write('\n')
print(count)
文件處理結束後顯示文件總條數如下圖,共計500萬條。
處理後的文件部分截圖如下:
二、將處理後的文件存入HDFS
1.開啓Hadoop各項服務
輸入命令開啓各項服務:start-all.sh
再使用jps命令查看節點運行狀況
各虛擬機正常啓動的節點個數如下
2.使用putty上載文件
在putty安裝根目錄下啓動cmd,使用命令:pscp sogou.txt root@LinuxIP:/
通過上述命令完成了文件上載到Linux系統根目錄。
進入hadoop目錄下輸入如下命令上傳文件至HDFS:hadoop fs -put /sogou.txt /input
查看文件:hadoop fs -ls /input
使用MapReduce自帶的wordcount詞頻統計jar包:
使用putty下載統計出的數據: