博主介紹:?全網(wǎng)粉絲6W+,csdn特邀作者、博客專家、Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于大數(shù)據(jù)技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn)?
??文末獲取項(xiàng)目聯(lián)系??
基于Hadoop的2019年11月至2020年2月寧波天氣數(shù)據(jù)分析
2019—2020 學(xué)年第二學(xué)期《分布式系統(tǒng)原理與技術(shù)》期末大作業(yè)評(píng)分表 | ||||
---|---|---|---|---|
評(píng)價(jià)內(nèi)容 | 評(píng)價(jià)標(biāo)準(zhǔn) | 占比 | 得分 | |
課程期末作業(yè) | 文檔內(nèi)容規(guī)范 | 文章結(jié)構(gòu)嚴(yán)謹(jǐn),邏輯性強(qiáng),表達(dá)層次清晰,語(yǔ)言準(zhǔn)確,文字流暢,內(nèi)容翔實(shí)。 | 30 | |
分布式集群搭建 | Hadoop 集群搭建成功,可在瀏覽器查看其啟動(dòng)情況。MAVEN、IDEA 等軟件安裝與配置合理。 | 20 | ||
分布式計(jì)算 | 生成 Mapreduce 的 Jar 包,可在虛擬機(jī)的主節(jié)點(diǎn)或本地計(jì)算機(jī)上進(jìn)行分布式計(jì)算。 | 20 | ||
大數(shù)據(jù)采集 | 使用數(shù)據(jù)爬蟲(chóng)采集的數(shù)據(jù)至少 100 條 | 10 | ||
運(yùn)行的流暢性 | 整個(gè)分布式計(jì)算過(guò)程,運(yùn)行時(shí)沒(méi)有產(chǎn)生什么邏輯錯(cuò)誤或系統(tǒng)錯(cuò)誤。 | 10 | ||
格式 | 符合各項(xiàng)格式規(guī)范要求,且達(dá)到規(guī)定篇幅要求。 | 10 | ||
總分 | ||||
教師評(píng)語(yǔ) | 教師簽名: | |||
2020 年 6 月 日 |
目 錄
1 分布式集群搭建 1
1.1 Hadoop 集群搭建與配置 1
1.1.1 Hadoop 簡(jiǎn)介 1
1.1.2 Hadoop 集群搭建 2
1.2 Maven 安裝與配置 11
1.2.1 Maven 簡(jiǎn)介 11
1.2.2 Maven 工程的創(chuàng)建 12
1.3 windows 搭建 hadoop 開(kāi)發(fā)環(huán)境 15
1.3.1 在 windows 上搭建 hadoop 開(kāi)發(fā)環(huán)境的原因 15
1.3.2 windows 搭建 hadoop 開(kāi)發(fā)環(huán)境 16
2 2019 年 11 月至 2020 年 2 月寧波天氣數(shù)據(jù)準(zhǔn)備 18
2.1 數(shù)據(jù)選取 18
2.2 網(wǎng)頁(yè)結(jié)構(gòu)分析 18
2.3 爬取數(shù)據(jù) 20
3 2019 年 11 月至 2020 年 2 月寧波天氣數(shù)據(jù)分析 21
3.1 詞頻統(tǒng)計(jì) 21
3.1.1 最高溫度分析 23
3.1.2 最低溫度分析 24
3.1.3 天氣分析 25
3.1.4 風(fēng)向分析 25
3.2 排序 26
3.2.1 最高溫度分析 29
3.2.2 最低溫度分析 29
3.3 總結(jié) 30
4 附錄 30
1 分布式集群搭建
1.1Hadoop集群搭建與配置
1.1.1Hadoop簡(jiǎn)介
Hadoop 是一個(gè)由 Apache 基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。它的目的是從單一的服務(wù)器擴(kuò)展到成千上萬(wàn)的機(jī)器,將集群部署在多臺(tái)機(jī)器,每個(gè)機(jī)器提供本地計(jì)算和存儲(chǔ)。Hadoop 框架最核心的設(shè)計(jì)是 HDFS 和 MapReduce。
Hadoop 為在多個(gè)節(jié)點(diǎn)集群上處理數(shù)據(jù)提供了有效的框架,可以在多臺(tái)機(jī)器上運(yùn)行,提供數(shù)據(jù)的并行處理。Hadoop 可以處理海量數(shù)據(jù)量;可以處理繁多的數(shù)據(jù)類型,包括文本、網(wǎng)頁(yè)、語(yǔ)音、圖片、視頻等;可以進(jìn)行數(shù)據(jù)分析,提取有價(jià)值信息;處理速度快、時(shí)效高。Hadoop 有開(kāi)源、分布式處理、可靠性和高容錯(cuò)性、可擴(kuò)展性、費(fèi)用低、數(shù)據(jù)本地化、傳統(tǒng)數(shù)據(jù)處理系統(tǒng)等特點(diǎn)。
Hadoop 的核心組件有:Common、HDFS、MapReduce 等。其中,HDFS 為分布式文件系統(tǒng),是 Hadoop 的主要存儲(chǔ)系統(tǒng),由主節(jié)點(diǎn) Namenode 和從節(jié)點(diǎn) Datanode 組成;MapReduce 是一種編程模型,主要用于海量數(shù)據(jù)的
圖 1.1 Hadoop 生態(tài)系統(tǒng)
1.1.2Hadoop集群搭建
(1) 準(zhǔn)備工作
- 安裝包
? CentOS-6.10
? Java
? Hadoop
圖 1.2 CentOS-6.10
圖 1.3 Java 安裝包
圖 1.4 Hadoop 安裝包
- 軟件
?
![]() |
Vmware 15
圖 1.5 Vmware 15 界面
Vmware 用于虛擬機(jī)的安裝和運(yùn)行等操作。
? Xshell
![]() |
圖 1.6 Xshell 界面
Xshell 是 Windows 的 SSH 客戶端,可以跟虛擬機(jī)進(jìn)行遠(yuǎn)程連接。
?
![]() |
WinSCP
圖 1.7 WinSCP 界面
WinSCP 用于傳輸 Windows 和虛擬機(jī)上的文件。
? Notepad++
![]() |
圖 1.8 Notepad++界面Notepad++用于修改虛擬中的文件。
(2) 新建虛擬機(jī)
在已經(jīng)安裝好的 Vmware 中新建虛擬機(jī),安裝 CentOS-6.10。
![]() |
圖 1.9 新建虛擬機(jī)
![]() |
圖 1.10 虛擬機(jī)安裝完成界面
(3) 建立主節(jié)點(diǎn)
- 以 root 用戶登錄 namenode,更改 namenode 的主機(jī)名
圖 1.11 更改 namenode 的主機(jī)名
- 關(guān)閉防火墻
![]() |
圖 1.12 關(guān)閉防火墻
- 關(guān)閉主機(jī)防火墻
圖 1.13 關(guān)閉主機(jī)防火墻
- 查看主機(jī)和虛擬機(jī)的 IP 地址
![]() |
圖 1.14 虛擬機(jī) IP 地址
![]() |
圖 1.15 VMnet8 在主機(jī)上產(chǎn)生的 IP 地址
- 測(cè)試主機(jī)和虛擬機(jī)網(wǎng)絡(luò)的連通性
![]() |
圖 1.16 主機(jī)連通虛擬網(wǎng)
![]() |
圖 1.17 虛擬網(wǎng)連通主機(jī)
- SSH 連接
![]() |
打開(kāi) Xshell,新建 Session,選擇 SSH 協(xié)議。連接成功后,可在主機(jī)中控制虛擬機(jī)。
圖 1.18 SSH 連接
- SFTP 連接
![]() |
打開(kāi) WinSCP,文件協(xié)議選擇 SFTP。連接成功后,可以實(shí)現(xiàn)主機(jī)與虛擬機(jī)的文件互傳。
圖 1.19 WinSCP 連接
圖 1.20 傳輸 Hadoop 和 JDK 安裝包
(4) 建立從節(jié)點(diǎn)
新建虛擬機(jī) datanode1,重復(fù)建立主節(jié)點(diǎn)的 1-5 步后,關(guān)閉虛擬機(jī)。對(duì) datanode1 進(jìn)行完整克隆,并將克隆虛擬機(jī)名稱改為 namenode2。
圖 1.21 克隆虛擬機(jī)
完成克隆后,使用 Xshell 建立兩臺(tái)新建虛擬機(jī)的連接,并建立免密 SSH 互訪。
![]() |
圖 1.22 namenode 測(cè)試連通性
![]() |
圖 1.23 datanode1 測(cè)試連通性
![]() |
圖 1.24 datanode2 測(cè)試連通性
(5) 安裝 Hadoop
- 安裝 JDK
將之前通過(guò) WinSCP 傳入 namenode 的 JDK 壓縮包解壓到 opt 目錄中,并修改文件名為 jdk。
圖 1.25 JDK 壓縮包解壓至 opt 文件夾中
配置 JDK 環(huán)境,編輯/etc/profile 文件,并加載使其立即生效。
![]() |
圖 1.26 配置 JDK 環(huán)境變量
![]() |
圖 1.27 測(cè)試 JDK 是否正常工作
- 安裝 Hadoop
? 在 hadoop-env.sh 中配置 java 環(huán)境
![]() |
圖 1.28 hadoop-env.sh 中配置 java 環(huán)境
? 在 yarn-env.sh 中配置 java 環(huán)境
![]() |
圖 1.29 yarn-env.sh 中配置 java 環(huán)境
? 配置 slave 節(jié)點(diǎn)
![]() |
圖 1.30 slave 節(jié)點(diǎn)
? 使用 Notepad++軟件配置 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
文件
![]() |
圖 1.31 namenode 文件修改
(6) 建立分布式集群
-
從節(jié)點(diǎn)上安裝 JDK 和 Hadoop
-
啟動(dòng) Hadoop
![]() |
輸入start-all.sh 命令啟動(dòng)hadoop 的各個(gè)監(jiān)護(hù)進(jìn)程;輸入stop-all.sh 可以關(guān)閉hadoop 的各個(gè)監(jiān)護(hù)進(jìn)程。輸入 jps 命令查看 hadoop 是否配置和啟動(dòng)成功。
圖 1.32 查看 namenode、datanode1、datanode2 的 hadoop 配置和啟動(dòng)狀態(tài)
- 登錄查看
![]() |
圖 1.33 hadoop 啟動(dòng)成功界面可以用本地瀏覽器打開(kāi) 50070,則代表 hadoop 安裝成功。
1.2Maven安裝與配置
1.2.1Maven簡(jiǎn)介
Maven 是用于項(xiàng)目管理和構(gòu)建的工具,它可以對(duì)項(xiàng)目進(jìn)行快速簡(jiǎn)單的構(gòu)建。因?yàn)槭褂肐DEA 或 Eclips 對(duì)項(xiàng)目進(jìn)行構(gòu)建,步驟比較零散,不好操作。為了讓項(xiàng)目管理和構(gòu)建更加簡(jiǎn)便,本文使用 Maven 對(duì)項(xiàng)目進(jìn)行管理和構(gòu)建。在 Maven 中,Ant 是專門的項(xiàng)目構(gòu)建工具,配置需要明確源碼包、class 文件和資源文件的位置。
1.2.2Maven工程的創(chuàng)建
(1) 下載 Maven(本文選擇 Maven-3.3.3 版本)
圖 1.34 Maven 目錄
(2) 配置 Maven 的環(huán)境變量
![]() |
圖 1.35 Maven 環(huán)境變量的配置
(3) 啟動(dòng)并查看 Maven
![]() |
圖 1.36 cmd 中查看 Maven 是否安裝成功
(4) 下載 IntelliJ IDEA,并在 IDEA 中安裝 Maven
圖 1.34 IntelliJ IDEA 界面
- 在“設(shè)置”的 Maven 目錄下設(shè)置 Maven home 的路徑
圖 1.35 設(shè)置 maven home 的路徑
- 配置 Settings.xml 文件的本地倉(cāng)庫(kù)和鏡像
![]() |
圖 1.36 Settings.xml 鏡像配置
(5) 新建 Maven 工程
- 新建 Maven 項(xiàng)目
![]() |
圖 1.37 新建 Maven 項(xiàng)目
- 導(dǎo)入第三方庫(kù)
![]() |
圖 1.38 在 pom.xml 文件中導(dǎo)入第三方庫(kù)
- 自動(dòng)下載 jar 包
jar 包下載成功后,Maven 工程即可使用。
1.3windows搭建hadoop開(kāi)發(fā)環(huán)境
1.3.1在windows上搭建hadoop開(kāi)發(fā)環(huán)境的原因
上文中已經(jīng)創(chuàng)建好了 Maven 工程,本文在使用分布式計(jì)算框架 MapReduce 編程時(shí),需要將 Java 工程打包,提交到 Yarn 上才可以在 hadoop 虛擬環(huán)境中運(yùn)行。當(dāng) MapReduce 修改之后,Java 工程需要構(gòu)建、打包,再次提交到 Yarn 上運(yùn)行,步驟比較繁瑣。
![]() |
圖 1.39 MapReduce 作業(yè)運(yùn)行機(jī)制
因此為了簡(jiǎn)化這個(gè)過(guò)程,需要在 windows 上搭建 hadoop 開(kāi)發(fā)環(huán)境,使程序可以直接在本地運(yùn)行。
1.3.2windows搭建hadoop開(kāi)發(fā)環(huán)境
(1) 下載 Hadoop
![]() |
圖 1.40 windows 上下載 hadoop-2.7.1 壓縮包并解壓
(2) 下載 winutils
圖 1.41 windows 上下載 winutils 對(duì)應(yīng)的 hadoop-2.7.1 版本
將 winutils 中的 winutils.exe 和 hadoop.dll 復(fù)制到 hadoop-2.7.1\bin 目錄下:
圖 1.42 添加文件
(3) 配置環(huán)境變量
在 windows 中配置 HADOOP_HOME,完成 hadoop 開(kāi)發(fā)環(huán)境在 windows 上的搭建。
![]() |
圖 1.43 Hadoop 環(huán)境變量配置
(4) 查看 Hadoop 是否安裝成功
![]() |
圖 1.44 Hadoop 開(kāi)發(fā)環(huán)境安裝成功
2 2019 年 11 月至 2020 年 2 月寧波天氣數(shù)據(jù)準(zhǔn)備
2.1數(shù)據(jù)選取
由于自 2020 年 11 月以來(lái),寧波氣溫時(shí)高時(shí)低。因此本文選取 2019 年 11 月-2020 年 2 月
的天氣數(shù)據(jù),進(jìn)行統(tǒng)計(jì)分析,再與 2020 年 11 月-2021 年 1 月的天氣數(shù)據(jù)進(jìn)行比較,得出最終的數(shù)據(jù)分析。
2.2網(wǎng)頁(yè)結(jié)構(gòu)分析
本文使用的數(shù)據(jù)來(lái)自天氣+(http://lishi.tianqi.com),其中寧波 2019 年 11 月-2020 年 2 月的天氣鏈接如下表所示:
表 2.1 寧波 2019 年 11 月-2020 年 2 月天氣數(shù)據(jù)鏈接
時(shí)間 | 鏈接 |
---|---|
2019 年 11 月 | http://lishi.tianqi.com/ningbo/201911.html |
2019 年 12 月 | http://lishi.tianqi.com/ningbo/201912.html |
2020 年 1 月 | http://lishi.tianqi.com/ningbo/202001.html |
2020 年 2 月 | http://lishi.tianqi.com/ningbo/202002.html |
為準(zhǔn)確爬取天氣網(wǎng)上寧波 2019 年 11 月-2020 年 2 月的天氣數(shù)據(jù),需要先對(duì)網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行
分析。本文先打開(kāi) 2019 年 11 月的天氣頁(yè)面,如下圖所示:
![]() |
圖 2.1 2019 年 11 月寧波天氣頁(yè)面
![]() |
根據(jù)網(wǎng)頁(yè),本文需要爬取的數(shù)據(jù)為以“日期、最高氣溫、最低氣溫、天氣、風(fēng)向”為表頭的整張表。為的到這一部分的網(wǎng)頁(yè)結(jié)構(gòu),本文通過(guò)瀏覽器打開(kāi)“開(kāi)發(fā)者調(diào)試工具(F12)”,通過(guò) Elements 獲取該表的結(jié)構(gòu)如下所示:
圖 2.2 2019 年 11 月寧波天氣主體表格網(wǎng)頁(yè)結(jié)構(gòu)根據(jù)該網(wǎng)頁(yè)信息,可以獲取本文需要提取數(shù)據(jù)的大體結(jié)構(gòu):
圖 2.3 網(wǎng)頁(yè)天氣歷史數(shù)據(jù)大體結(jié)構(gòu)
2.3爬取數(shù)據(jù)
通過(guò) 2.2,本文對(duì) 2019 年 11 月數(shù)據(jù)所在位置的網(wǎng)頁(yè)進(jìn)行了大體的結(jié)構(gòu)分析,再通過(guò)查看
![]() |
2019 年 12 月-2020 年 2 月的數(shù)據(jù),發(fā)現(xiàn)網(wǎng)頁(yè)結(jié)構(gòu)并沒(méi)有改變,主體都是一致的。因此,本文使用 python 先對(duì) 2019 年 11 月的天氣數(shù)據(jù)進(jìn)行爬取,代碼如下所示(具體代碼放在附錄中):
圖 2.4 2019 年 11 月天氣數(shù)據(jù)爬取代碼
![]() |
爬取好的數(shù)據(jù)放入 weather.csv 文件中,接下來(lái)對(duì) 2019 年 12 月-2020 年 2 月的數(shù)據(jù)進(jìn)行爬取,也加入至 weather.csv 文件中,代碼如下所示:
圖 2.5 2019 年 12 月-2020 年 2 月天氣數(shù)據(jù)爬取代碼
最終共得到 119 條數(shù)據(jù)。
3 2019 年 11 月至 2020 年 2 月寧波天氣數(shù)據(jù)分析
略文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-740447.html文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-740447.html
4 附錄
略
到了這里,關(guān)于【大數(shù)據(jù)實(shí)訓(xùn)】基于Hadoop的2019年11月至2020年2月寧波天氣數(shù)據(jù)分析(五)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!