郭建磊
[摘 ? ? ? ? ? 要] ?如今,我國已從互聯(lián)網(wǎng)時(shí)代進(jìn)入大數(shù)據(jù)時(shí)代,在這個(gè)時(shí)代背景下,人們的一切活動(dòng)都可以用數(shù)據(jù)來體現(xiàn)、分析。Hadoop大數(shù)據(jù)平臺(tái)為海量數(shù)據(jù)的存儲(chǔ)和分析提供了基礎(chǔ)?;贏pache基金會(huì)下的Hadoop開源框架,講解并演示大數(shù)據(jù)平臺(tái)分布式集群的搭建方法和詳細(xì)搭建步驟。以大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)教學(xué)為例,總結(jié)和展示了Hadoop集群部署搭建的教學(xué)方法探索和應(yīng)用實(shí)踐,為大數(shù)據(jù)相關(guān)專業(yè)開展大數(shù)據(jù)平臺(tái)集群搭建的教學(xué)提供借鑒經(jīng)驗(yàn)。
[關(guān) ? ?鍵 ? 詞] ?Hadoop;開源框架;教學(xué)方法;實(shí)踐
[中圖分類號(hào)] ?G712 ? ? ? ? ? ? ? ? ? [文獻(xiàn)標(biāo)志碼] ?A ? ? ? ? ? ? ? ? ? ?[文章編號(hào)] ?2096-0603(2019)14-0144-02
一、引言
隨著云計(jì)算、大數(shù)據(jù)、人工智能技術(shù)的快速發(fā)展,社會(huì)進(jìn)入了大數(shù)據(jù)時(shí)代。大數(shù)據(jù)人才的需求量越來越大,大數(shù)據(jù)專業(yè)人才的缺口也越來越大。大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)是高職院校的新興專業(yè)方向,專業(yè)核心課程的教學(xué)和實(shí)踐方法在不斷探索實(shí)踐中。Hadoop2是目前大數(shù)據(jù)領(lǐng)域應(yīng)用最廣泛的大數(shù)據(jù)存儲(chǔ)和處理平臺(tái)之一,是大數(shù)據(jù)專業(yè)學(xué)生必須掌握的核心專業(yè)知識(shí)。本文討論的是基于開源框架的大數(shù)據(jù)平臺(tái)集群搭建方法,以及如何這種集群搭建方法應(yīng)用到學(xué)生的教學(xué)中,采取怎樣的教學(xué)措施與方法,也是本文討論的問題。
二、Hadoop集群搭建及教學(xué)實(shí)踐
(一)Hadoop介紹
Hadoop是一個(gè)由Apache基金會(huì)開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),而MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。
(二)Hadoop分布式集群規(guī)劃
Hadoop分布式集群搭建課程內(nèi)容在機(jī)房授課,能讓學(xué)生更深入地體會(huì)大數(shù)據(jù)平臺(tái)集群搭建和部署的過程,從而充分掌握大數(shù)據(jù)平臺(tái)部署、維護(hù)和應(yīng)用的方法和步驟。在開展教學(xué)內(nèi)容前,先將學(xué)生劃分學(xué)習(xí)小組,可以3~5位同學(xué)一組,每小組內(nèi)部進(jìn)行集群規(guī)劃。例如,下表是一個(gè)小組的集群規(guī)劃,本小組有3名同學(xué),搭建3個(gè)節(jié)點(diǎn)的集群,每個(gè)成員負(fù)責(zé)一個(gè)節(jié)點(diǎn),完成集群的搭建任務(wù)。
(三)“六步法”搭建Hadoop集群及教學(xué)過程
為方便學(xué)生搭建集群,將Hadoop集群搭建劃分為六個(gè)步驟,總結(jié)為“六步法”。學(xué)生以小組為單位按照“六步法”實(shí)施搭建,規(guī)范大數(shù)據(jù)平臺(tái)搭建過程,便于發(fā)現(xiàn)集群搭建過程中產(chǎn)生的問題并有利于快速解決問題?!傲椒ā钡木唧w步驟如下:
1.集群中每個(gè)節(jié)點(diǎn)關(guān)閉selinux
關(guān)閉selinux的方法有兩種,一種是臨時(shí)關(guān)閉selinux,不用重啟機(jī)器,命令為:setenforce 0;第二種是在配置文件中永久關(guān)閉selinux,編輯文件/etc/sysconfig/selinux,將文件中的元素SELINUX修改為disabled,即:SELINUX=disabled,即可永久關(guān)閉,重啟機(jī)器生效。
2.修改三個(gè)節(jié)點(diǎn)主機(jī)名分別為node1、node2和node3,并配置主機(jī)名和ip地址的映射
以node1為例介紹過程。修改主機(jī)名的命令為:hostnamectl set-hostname node1。接下來需要在node1節(jié)點(diǎn)的/etc/hosts文件中配置集群中所有主機(jī)與IP地址的映射。node2和node3節(jié)點(diǎn)的配置過程和node1相同。
3.配置SSH免密碼登錄
首先實(shí)現(xiàn)每個(gè)節(jié)點(diǎn)免密碼登錄本機(jī),然后集群中多個(gè)節(jié)點(diǎn)兩兩實(shí)現(xiàn)免密碼登錄,使用ssh-copy-id 命令,將其他節(jié)點(diǎn)公鑰拷貝到其中一個(gè)節(jié)點(diǎn)(例如node1),使該節(jié)點(diǎn)的authorized_keys文件中包含其他各節(jié)點(diǎn)的公鑰。使用scp命令將node1節(jié)點(diǎn)的authorized_keys拷貝到其他節(jié)點(diǎn),最后執(zhí)行測(cè)試命令:#ssh主機(jī)名,可以實(shí)現(xiàn)集群各節(jié)點(diǎn)兩兩之間ssh免密碼登錄,表示操作成功。
4.每個(gè)節(jié)點(diǎn)安裝配置JDK1.8
將下載好的jdk安裝包拷貝到/usr/local目錄下,然后執(zhí)行解壓:tar zxvf jdk-8u112-linux-x64.tar.gz;為配置環(huán)境變量的方便,將解壓后的安裝包改為短名:mv jdk1.8.0_112 jdk,然后在/etc/profile文件中配置jdk環(huán)境變量JAVA_HOME,并在Path路徑上添加JAVA_HOME/bin路徑。
5.每個(gè)節(jié)點(diǎn)安裝配置Hadoop
將下載好的Hadoop安裝包hadoop-2.7.3.tar.gz拷貝到/usr/local目錄下,然后進(jìn)入此目錄解壓安裝包:tar zxvf hadoop-2.7.3.tar.gz;將解壓后的目錄修改為短名并配置HADOOP_HOME環(huán)境變量。mv hadoop-2.7.3 hadoop,在/etc/profile文件中配置環(huán)境變量。
接下來需要修改Hadoop的配置文件,主要有以下幾個(gè)配置文件需要修改:
(1)修改hadoop目錄下etc/hadoop/core-site.xml文件,配置HDFS的主節(jié)點(diǎn)及端口號(hào)等,具體配置信息如下所示:
(2)修改hadoop目錄下etc/hadoop/hdfs-site.xml文件,配置數(shù)據(jù)塊副本,具體配置信息如下所示:
(3)修改hadoop目錄下etc/hadoop/mapred-site.xml配置文件,配置MapReduce框架,具體配置信息如下:
(4)修改hadoop目錄下etc/hadoop/yarn-site.xml配置文件,配置yarn屬性和端口等參數(shù)。
(5)修改主機(jī)點(diǎn)的hadoop安裝目錄下etc/hadoop/slaves文件,將從節(jié)點(diǎn)主機(jī)名配置到此文件。
6.初始化并啟動(dòng)Hadoop
可以對(duì)Hadoop的兩大核心HDFS和MapReduce分別執(zhí)行啟動(dòng)。首先是格式化HDFS,執(zhí)行hadoop namenode-format命令格式化,執(zhí)行start-dfs.sh命令啟動(dòng)HDFS,通過jps命令查看java進(jìn)程:如果主節(jié)點(diǎn)的學(xué)生機(jī)器上上啟動(dòng)了NameNode、Secon-dary NameNode兩個(gè)進(jìn)程,從節(jié)點(diǎn)的學(xué)生機(jī)器上啟動(dòng)了DataNode進(jìn)程,說明HDFS啟動(dòng)成功。
接下來執(zhí)行start-yarn.sh命令啟動(dòng)Yarn+MapReduce2,然后通過jps命令查看java進(jìn)程:如果主節(jié)點(diǎn)的學(xué)生機(jī)器上啟動(dòng)了ResourceManager進(jìn)程,從節(jié)點(diǎn)學(xué)生機(jī)器上啟動(dòng)了NodeManager進(jìn)程,說明Yarn+MapReduce2啟動(dòng)成功。
(四)常見問題及解決辦法
在學(xué)生分組搭建Hadoop集群的過程中,最容易出現(xiàn)的問題有:(1)在ssh免密碼實(shí)現(xiàn)集群內(nèi)任意兩個(gè)節(jié)點(diǎn)ssh免密登錄不成功;(2)集群內(nèi)所有節(jié)點(diǎn)主機(jī)名和ip地址映射配置不全;(3)每個(gè)節(jié)點(diǎn)安裝配置Hadoop時(shí),配置文件的參數(shù)配置有誤;(4)主節(jié)點(diǎn)或從節(jié)點(diǎn)進(jìn)程啟動(dòng)不全等。最有效的解決辦法是要求學(xué)生嚴(yán)格按照“六步法”的步驟搭建集群,便于問題查找和追溯。讓學(xué)生掌握通過分析啟動(dòng)log日志找到問題原因,并掌握解決辦法。提高學(xué)生分析問題解決問題的能力。
三、總結(jié)
本文研究的是Hadoop大數(shù)據(jù)平臺(tái)集群搭建及教學(xué)方法的探索,通過研究大數(shù)據(jù)平臺(tái)集群搭建的原理和方法,確定科學(xué)規(guī)范的搭建步驟,分小組制定集群規(guī)劃,進(jìn)行教學(xué)實(shí)踐,總結(jié)規(guī)律?!傲椒ā盚adoop集群搭建已應(yīng)用到教學(xué)中,提高了學(xué)生的學(xué)習(xí)興趣和教學(xué)質(zhì)量。今后將進(jìn)一步在其他大數(shù)據(jù)平臺(tái)教學(xué)過程中總結(jié)應(yīng)用,進(jìn)一步提高學(xué)生學(xué)習(xí)的積極性和學(xué)習(xí)效果。
參考文獻(xiàn):
[1]秦杰儀,曾志,孫蕾,等.基于Hadoop的大數(shù)據(jù)平臺(tái)架設(shè)探討[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2018(8).
[2]游會(huì)迪,張振友.基于Hadoop大數(shù)據(jù)平臺(tái)的搭建及其測(cè)試研究[J].電腦知識(shí)與技術(shù),2017(19).
[3]劉雍潛,楊現(xiàn)民.大數(shù)據(jù)時(shí)代區(qū)域教育均衡發(fā)展新思路[J].電化教育研究,2014(5).
[4]教育部辦公廳關(guān)于印發(fā)《2014年教育信息化工作要點(diǎn)》的通知[EB],2014-03-12.
編輯 趙瑞峰