版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【課程內容】開學第一課(理論1學時)第1章部署全分布模式Hadoop集群(理論3學時+實驗2學時)第2章HDFS實戰(zhàn)(理論4學時+實驗2學時)第3章MapReduce編程(理論4學時+實驗2學時)第4章部署ZooKeeper集群和ZooKeeper實戰(zhàn)(理論4學時+實驗2學時)第5章部署本地模式Hive和Hive實戰(zhàn)(理論4學時+實驗2學時)第6章Flume實戰(zhàn)(理論4學時+實驗2學時)第7章Kafka實戰(zhàn)(理論4學時+實驗2學時)第8章Spark集群部署和基本編程(理論4學時+實驗2學時)第9章Flink集群部署和基本編程(選修)第1章部署全分布模式Hadoop集群1.1初識Hadoop1.2Hadoop生態(tài)系統(tǒng)(重點)1.3Hadoop體系架構(重點)1.4Hadoop部署要點(重點)1.5綜合實戰(zhàn):部署全分布模式Hadoop集群(實驗)1.1初識Hadoop官方網(wǎng)站:/
1.1初識HadoopHadoop是Apache開源組織提供的一個分布式存儲和計算的軟件框架,它具有高可用、彈性可擴展的特點,非常適合處理海量數(shù)據(jù)。1.1初識Hadoop1.1初識HadoopHDFS是谷歌文件系統(tǒng)GFS的開源實現(xiàn),是面向普通硬件環(huán)境的分布式文件系統(tǒng),適用于大數(shù)據(jù)場景的數(shù)據(jù)存儲,提供了高可靠、高擴展、高吞吐率的數(shù)據(jù)存儲服務。MapReduce是谷歌MapReduce的開源實現(xiàn),是一種簡化的分布式應用程序開發(fā)的編程模型,允許開發(fā)人員在不了解分布式系統(tǒng)底層細節(jié)和缺少并行應用開發(fā)經(jīng)驗的情況下,能快速輕松地編寫出分布式并行程序,將其運行于計算機集群上,完成對大規(guī)模數(shù)據(jù)集的存儲和計算。YARN是將MapReduce1.0中JobTracker的資源管理功能單獨剝離出來而形成,它是一個純粹的資源管理和調度框架,并解決了Hadoop1.0中只能運行MapReduce框架的限制,可在YARN上運行各種不同類型計算框架包括MapReduce、Spark、Storm等。1.1初識HadoopHadoop的發(fā)行版本有兩類,一類是由社區(qū)維護的免費開源的ApacheHadoop,另一類是一些商業(yè)公司如Cloudera、Hortonworks、MapR等推出的Hadoop商業(yè)版。1.1初識HadoopHadoop商業(yè)版主要是提供對各項服務的支持,高級功能要收取一定費用,這對一些研發(fā)能力不太強的企業(yè)來說是非常有利的,公司只要出一定的費用就能使用到一些高級功能,每個發(fā)行版都有自己的特點。(1)ClouderaDistributionHadoop(CDH)ClouderaCDH版本的Hadoop是現(xiàn)在國內公司使用最多的。其優(yōu)點為ClouderaManager(簡稱CM)配置簡單,升級方便,資源分配設置方便,非常有利于整合Impala,官方文檔詳細,與Spark整合非常好。在CM基礎上,我們通過頁面就能完成對Hadoop生態(tài)系統(tǒng)各種環(huán)境的安裝、配置和升級。其缺點為CM不開源,Hadoop某些功能與社區(qū)版有出入。目前,CDH的最新版本為CDH5和CDH6,讀者可到官網(wǎng)獲取更多信息。(2)HortonworksDataPlatform(HDP)HortonworksHDP優(yōu)點為原裝Hadoop、純開源,版本與社區(qū)版一致,支持Tez,集成開源監(jiān)控方案Ganglia和Nagios;缺點為安裝、升級、添加節(jié)點、刪除節(jié)點比較麻煩。目前,HDP的最新版本為HDP2和HDP3,讀者可到官網(wǎng)獲取更多信息。1.2Hadoop生態(tài)系統(tǒng)Hadoop2.0主要由三部分構成:分布式文件系統(tǒng)HDFS、統(tǒng)一資源管理和調度框架YARN、分布式計算框架MapReduce;但廣義上來講,Hadoop是指以Hadoop為基礎的生態(tài)系統(tǒng),是一個龐大體系,Hadoop僅是其中最基礎、最重要的部分,生態(tài)系統(tǒng)中每個組件只負責解決某一特定問題。HiveMapReduceSparkImpalaZooKeeperKafkaFlumeYARNHDFSCommonPigMahoutSparkSQLSqoopHBaseAmbari1.HadoopCommonHadoopCommon是Hadoop體系中最底層的一個模塊,為Hadoop各子項目提供各種工具,如系統(tǒng)配置工具Configuration、遠程過程調用RPC、序列化機制和日志操作,是其他模塊的基礎。2.HDFSHDFS(HadoopDistributedFileSystem)是Hadoop分布式文件系統(tǒng),是Hadoop三大核心之一,是針對谷歌文件系統(tǒng)GFS(GoogleFileSystem)的開源實現(xiàn)(TheGoogleFileSystem,2003)。HDFS是一個具有高容錯性的文件系統(tǒng),適合部署在廉價的機器上,HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應用。大數(shù)據(jù)處理框架如MapReduce、Spark等要處理的數(shù)據(jù)源大部分都存儲在HDFS上,Hive、HBase等框架的數(shù)據(jù)通常也存儲在HDFS上。簡而言之,HDFS為大數(shù)據(jù)的存儲提供了保障。3.YARNYARN(YetAnotherResourceNegotiator)是統(tǒng)一資源管理和調度框架,它解決了Hadoop1.0資源利用率低和不能兼容異構計算框架等多種問題,它提供了資源隔離方案和雙調度器的實現(xiàn),可在YARN上運行各種不同類型計算框架包括MapReduce、Spark、Storm、Tez等。HadoopMapReduce是一個分布式的、并行處理的編程模型,是針對GoogleMapReduce的開源實現(xiàn)(MapReduce:SimplifiedDataProcessingonLargeClusters,2004)。開發(fā)人員可以在不了解分布式系統(tǒng)底層設計原理和缺少并行應用開發(fā)經(jīng)驗的情況下,就能使用MapReduce計算框架快速輕松地編寫出分布式并行程序,完成對大規(guī)模數(shù)據(jù)集(大于1TB)的并行計算。MapReduce利用函數(shù)式編程思想,將復雜的、運行于大規(guī)模集群上的并行計算過程高度抽象為兩個函數(shù):Map和Reduce,其中Map是對可以并行處理的小數(shù)據(jù)集進行本地計算并輸出中間結果,Reduce是對各個Map的輸出結果進行匯總計算得到最終結果。4.MapReduce5.SparkSpark是加州伯克利大學AMP實驗室開發(fā)的新一代計算框架,對迭代計算很有優(yōu)勢,和MapReduce計算框架相比性能提升明顯,并且都可以與YARN進行集成。官方網(wǎng)站:/
6.HBaseHBase是一個分布式的、面向列族的開源數(shù)據(jù)庫,一般采用HDFS作為底層存儲。HBase是針對GoogleBigtable的開源實現(xiàn)(Bigtable:ADistributedStorageSystemforStructuredData,2006),二者采用相同數(shù)據(jù)模型,具有強大的非結構化數(shù)據(jù)存儲能力。HBase使用ZooKeeper進行管理,它保障查詢速度的一個關鍵因素就是RowKey的設計是否合理。官方網(wǎng)站:/
7.ZooKeeperZooKeeper是GoogleChubby的開源實現(xiàn),是一個分布式的、開放源碼的分布式應用程序協(xié)調框架,為大型分布式系統(tǒng)提供了高效且可靠的分布式協(xié)調服務,提供了諸如統(tǒng)一命名服務、配置管理、分布式鎖等分布式基礎服務,并廣泛應用于大型分布式系統(tǒng)如Hadoop、HBase、Kafka等開源系統(tǒng),例如HDFSNameNodeHA自動切換、HBase高可用、SparkStandalone模式下MasterHA機制都是通過ZooKeeper來實現(xiàn)的。官方網(wǎng)站:/
8.HiveHive是一個基于Hadoop的數(shù)據(jù)倉庫工具,最早由Facebook開發(fā)并使用。Hive讓不熟悉MapReduce的開發(fā)人員直接編寫SQL語句來實現(xiàn)對大規(guī)模數(shù)據(jù)的統(tǒng)計分析操作,Hive可以將SQL語句轉換為MapReduce作業(yè),并提交到Hadoop集群上運行。Hive大大降低了學習門檻,同時也提升了開發(fā)效率。官方網(wǎng)站:/
9.PigPig與Hive類似,也是對大型數(shù)據(jù)集進行分析和評估的工具,不過與Hive提供SQL接口不同的是,它提供了一種高層的、面向領域的抽象語言PigLatin,和SQL相比,PigLatin更加靈活,但學習成本稍高。官方網(wǎng)站:/
10.ImpalaImpala由Cloudera公司開發(fā),提供了與存儲在HDFS、HBase上的海量數(shù)據(jù)進行交互式查詢的SQL接口,其優(yōu)點是查詢非常迅速,其性能大幅領先于Hive,Impala并沒有基于MapReduce計算框架,這也是Impala可以大幅領先Hive的原因。官方網(wǎng)站:/
11.MahoutMahout是一個機器學習和數(shù)據(jù)挖掘庫,它包含許多實現(xiàn),包括聚類、分類、推薦過濾等。官方網(wǎng)站:/
12.FlumeFlume是由Cloudera提供的一個高可用、高可靠、分布式的海量日志采集、聚合和傳輸?shù)目蚣?。Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù),同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理并寫到各種數(shù)據(jù)接收方。官方網(wǎng)站:/
13.SqoopSqoop是SQLtoHadoop的縮寫,主要用于關系數(shù)據(jù)庫和Hadoop之間的數(shù)據(jù)雙向交換??梢越柚鶶qoop完成關系型數(shù)據(jù)庫如MySQL、Oracle、PostgreSQL等到Hadoop生態(tài)系統(tǒng)中HDFS、HBase、Hive等的數(shù)據(jù)導入導出操作,整個導入導出過程都是由MapReduce計算框架實現(xiàn),非常高效。Sqoop項目開始于2009年,最早是作為Hadoop的一個第三方模塊存在,后來為了讓使用者能夠快速部署,也為了讓開發(fā)人員能夠更快速地迭代開發(fā),Sqoop就獨立成為一個Apache項目。官方網(wǎng)站:/
14.KafkaKafka是一種高吞吐量的、分布式的發(fā)布訂閱消息系統(tǒng),可以處理消費者在網(wǎng)站中的所有動作流數(shù)據(jù)。Kafka最初由LinkedIn公司開發(fā),于2010年貢獻給Apache基金會,并于2012年成為Apache頂級開源項目,它采用Scala和Java語言編寫,是一個分布式、支持分區(qū)的、多副本的、基于ZooKeeper協(xié)調的分布式消息系統(tǒng),它適合應用于以下兩大類別場景:構造實時流數(shù)據(jù)管道,在系統(tǒng)或應用之間可靠地獲取數(shù)據(jù);構建實時流式應用程序,對這些流數(shù)據(jù)進行轉換。官方網(wǎng)站:/
15.AmbariApacheAmbari是一個基于Web的工具,支持ApacheHadoop集群的安裝、部署、配置和管理,目前已支持大多數(shù)Hadoop組件,包括HDFS、MapReduce、Hive、Pig、HBase、ZooKeeper、Oozie、Sqoop等。Ambari由Hortonworks主導開發(fā),具有Hadoop集群自動化安裝、中心化管理、集群監(jiān)控、報警等功能,使得安裝集群從幾天縮短在幾小時以內,運維人員也從數(shù)十人降低到幾人以內,極大的提高集群管理的效率。官方網(wǎng)站:/
1.3Hadoop體系架構Hadoop集群采用主從架構(Master/Slave),NameNode與ResourceManager為Master,DataNode與NodeManager為Slaves,守護進程NameNode和DataNode負責完成HDFS的工作,守護進程ResourceManager和NodeManager則負責完成YARN工作。NameNodeResourceManagerDataNodeNodeManagerDataNodeNodeManagerDataNodeNodeManager…1.4Hadoop部署要點1.4.1Hadoop運行環(huán)境1.4.2Hadoop運行模式1.4.3Hadoop配置文件1.4.1Hadoop運行環(huán)境1)操作系統(tǒng)Hadoop運行平臺支持以下兩種:(1)Windows:Hadoop支持Windows,但由于Windows操作系統(tǒng)本身不太適合作為服務器操作系統(tǒng),所以編者不介紹Windows下安裝和配置Hadoop,讀者可自行參考網(wǎng)址/hadoop/Hadoop2OnWindows。(2)GNU/Linux:Hadoop的最佳運行環(huán)境無疑是開源操作系統(tǒng)Linux,Linux的發(fā)行版本眾多,常見的有CentOS、Ubuntu、RedHat、Debian、Fedora、SUSE、openSUSE等。2)Java環(huán)境Hadoop使用Java語言編寫,因此它的運行環(huán)境需要Java環(huán)境的支持。Hadoop3.x需要Java8,Hadoop2.7及以后版本需要Java7或Java8,Hadoop2.6及早期版本需要Java6。本書采用的Java為OracleJDK1.8。3)SSHHadoop集群若想運行,其運行平臺Linux必須安裝SSH,且sshd服務必須運行,只有這樣,才能使用Hadoop腳本管理遠程Hadoop守護進程。1.4.2Hadoop運行模式(1)單機模式(Local/StandaloneMode)只在一臺計算機上運行,不需任何配置,在這種模式下,Hadoop所有的守護進程都變成了一個Java進程,存儲采用本地文件系統(tǒng),沒有采用分布式文件系統(tǒng)HDFS。(2)偽分布模式(Pseudo-DistributedMode)只在一臺計算機上運行,在這種模式下,Hadoop所有守護進程都運行在一個節(jié)點上,在一個節(jié)點上模擬了一個具有Hadoop完整功能的微型集群,存儲采用分布式文件系統(tǒng)HDFS,但是HDFS的名稱節(jié)點和數(shù)據(jù)節(jié)點都位于同一臺計算機上。(3)全分布模式(Fully-DistributedMode)在多臺計算機上運行,在這種模式下,Hadoop的守護進程運行在多個節(jié)點上,形成一個真正意義上的集群,存儲采用分布式文件系統(tǒng)HDFS,且HDFS的名稱節(jié)點和數(shù)據(jù)節(jié)點位于不同計算機上。1.4.3Hadoop配置文件1.4.3Hadoop配置文件文件名稱格式描述hadoop-env.shBash腳本記錄運行Hadoop要用的環(huán)境變量yarn-env.shBash腳本記錄運行YARN要用的環(huán)境變量(覆蓋hadoop-env.sh中設置的變量)mapred-env.shBash腳本記錄運行MapReduce要用的環(huán)境變量覆蓋hadoop-env.sh中設置的變量)core-site.xmlHadoop配置XMLHadoopCore的配置項,包括HDFS、MapReduce和YARN常用的I/O設置等hdfs-site.xmlHadoop配置XMLHDFS守護進程的配置項,包括NameNode、SecondaryNameNode、DataNode等yarn-site.xmlHadoop配置XMLYARN守護進程的配置項,包括ResourceManager、NodeManager等mapred-site.xmlHadoop配置XMLMapReduce守護進程的配置項,包括JobHistoryServerslaves純文本運行DataNode和NodeManager的從節(jié)點機器列表,每行1個主機名1.4.3Hadoop配置文件配置文件名稱默認配置文件所在位置core-site.xml$HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xmlhdfs-site.xml$HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xmlyarn-site.xml$HADOOP_HOME/share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xmlmapred-site.xml$HADOOP_HOME/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapreduce-default.xml1.5綜合實戰(zhàn):部署全分布模式Hadoop集群規(guī)劃部署準備機器準備軟件環(huán)境獲取和安裝Hadoop配置全分布模式Hadoop集群關閉防火墻格式化文件系統(tǒng)啟動和驗證Hadoop關閉Hadoop1.5.1規(guī)劃部署master30slave131slave232NameNodeSecondaryNameNodeResourceManagerJobHistoryServerDataNodeNodeManagerDataNodeNodeManager1.5.1規(guī)劃部署主機名IP地址運行服務軟硬件配置master(主節(jié)點)30NameNodeSecondaryNameNodeResourceManagerJobHistoryServer操作系統(tǒng):CentOS7.6.1810Java:OracleJDK8u191Hadoop:Hadoop2.9.2內存:4GCPU:1個2核硬盤:40Gslave1(從節(jié)點1)31DataNodeNodeManager操作系統(tǒng):CentOS7.6.1810Java:OracleJDK8u191Hadoop:Hadoop2.9.2內存:1GCPU:1個1核硬盤:20Gslave2(從節(jié)點2)32DataNodeNodeManager操作系統(tǒng):CentOS7.6.1810Java:OracleJDK8u191Hadoop:Hadoop2.9.2內存:1GCPU:1個1核硬盤:20G1.5.1規(guī)劃部署軟件名稱軟件版本發(fā)布日期下載地址VMwareWorkstationProVMwareWorkstation12.5.7ProforWindows2017年6月22日/products/workstation-pro.htmlCentOSCentOS7.6.18102018年11月26日/download/JavaOracleJDK8u1912018年10月16日/technetwork/java/javase/downloads/index.htmlHadoopHadoop2.9.22018年11月19日/releases.html1.5.2準備機器安裝3臺CentOS虛擬機hadoop2.9.2-master:內存為4096MB,CPU為1個2核,硬盤40G。hadoop2.9.2-slave1、hadoop2.9.2-slave2:內存均為1024MB,CPU為1個1核,硬盤20G。1.5.3準備軟件環(huán)境1.配置靜態(tài)IP(1)切換到root用戶,使用命令“vim/etc/sysconfig/network-scripts/ifcfg-ens33”修改網(wǎng)卡配置文件,設置靜態(tài)IP地址。1.5.3準備軟件環(huán)境1.配置靜態(tài)IP(2)使用“reboot”命令重啟機器或者“systemctlrestartnetwork.service”命令重啟網(wǎng)絡方可使得配置生效。同理,將虛擬機hadoop2.9.2-slave1和hadoop2.9.2-slave2的IP地址依次設置為靜態(tài)IP“31”、“32”。1.5.3準備軟件環(huán)境2.修改主機名切換到root用戶,通過修改配置文件/etc/hostname,可以修改Linux主機名,該配置文件中原始內容為:localhost.localdomain將配置文件/etc/hostname中原始內容替換為:master使用“reboot”命令重啟機器方可使得配置生效,使用命令“hostname”可以驗證當前主機名。同理,將虛擬機hadoop2.9.2-slave1和hadoop2.9.2-slave2的主機名依次設置為“slave1”、“slave2”。1.5.3準備軟件環(huán)境3.編輯域名映射為協(xié)助用戶便捷訪問該機器而無需記住IP地址串,需要編輯域名映射文件/etc/hosts,在原始內容最后追加如下3行內容:
30master31slave132slave2使用“reboot”命令重啟機器方可使得配置生效。同理,編輯虛擬機hadoop2.9.2-slave1和hadoop2.9.2-slave2的域名映射文件,內容同虛擬機hadoop2.9.2-master。1.5.3準備軟件環(huán)境至此,3臺CentOS虛擬機的靜態(tài)IP、主機名、域名映射均已修改完畢,用ping命令來檢測各節(jié)點間是否通訊正常。1.5.3準備軟件環(huán)境4.安裝和配置Java(1)卸載OracleOpenJDK。首先,通過命令“java-version”查看是否已安裝Java,由于CentOS7自帶的Java是OracleOpenJDK,而更建議使用OracleJDK,因此將OracleOpenJDK卸載。其次,使用“rpm-qa|grepjdk”命令查詢jdk軟件。1.5.3準備軟件環(huán)境4.安裝和配置Java(1)卸載OracleOpenJDK。最后,切換到root用戶下,分別使用命令“yum-yremovejava-1.8.0*”和“yum-yremovejava-1.7.0*”卸載openjdk1.8和openjdk1.7。同理,卸載節(jié)點slave1和slave2上的OracleOpenJDK。1.5.3準備軟件環(huán)境4.安裝和配置Java(2)下載OracleJDK。需要根據(jù)機器所安裝的操作系統(tǒng)和位數(shù)選擇相應JDK安裝包下載,可以使用命令“getconfLONG_BIT”來查詢Linux操作系統(tǒng)是32還是64位;也可以使用命令“file/bin/ls”來顯示Linux版本號。OracleJDK的下載地址為/technetwork/java/javase/downloads/index.html,本書下載的JDK安裝包文件名為2018年10月16日發(fā)布的jdk-8u191-linux-x64.tar.gz,并存放在目錄/home/xuluhui/Downloads下。同理,在節(jié)點slave1和slave2上也下載相同版本的OracleJDK,并存放在目錄/home/xuluhui/Downloads下。1.5.3準備軟件環(huán)境4.安裝和配置Java(3)安裝OracleJDK。使用tar命令解壓進行安裝,例如安裝到目錄/usr/java下,首先在/usr下創(chuàng)建目錄java,然后解壓,依次使用的命令如下所示:
cd/usr mkdirjava cdjava tar-zxvf/home/xuluhui/Downloads/jdk-8u191-linux-x64.tar.gz同理,在節(jié)點slave1和slave2上也安裝OracleJDK。1.5.3準備軟件環(huán)境4.安裝和配置Java(4)配置Java環(huán)境。通過修改/etc/profile文件完成環(huán)境變量JAVA_HOME、PATH和CLASSPATH的設置,在配置文件/etc/profile的最后添加如下內容:#setjavaenvironmentexportJAVA_HOME=/usr/java/jdk1.8.0_191exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar使用命令“source/etc/profile”重新加載配置文件或者重啟機器,使配置生效。同理,在節(jié)點slave1和slave2上也配置Java環(huán)境。1.5.3準備軟件環(huán)境4.安裝和配置Java(5)驗證Java。再次使用命令“java-version”,查看Java是否安裝配置成功及其版本。1.5.3準備軟件環(huán)境5.安裝和配置SSH免密登錄(1)安裝SSH。使用命令“rpm-qa|grepssh”查詢SSH是否已經(jīng)安裝。若沒有安裝好,用yum安裝,命令如下所示。yum-yinstallopensshyum-yinstallopenssh-serveryum-yinstallopenssh-clients1.5.3準備軟件環(huán)境5.安裝和配置SSH免密登錄(2)修改sshd配置文件。使用命令“vim/etc/ssh/sshd_config”修改sshd配置文件,原始第43行內容為:#PubkeyAuthenticationyes將其注釋符號“#”刪掉并添加一行內容,修改后的內容為:RSAAuthenticationyesPubkeyAuthenticationyes同理,在節(jié)點slave1和slave2上也修改sshd配置文件。(3)重啟sshd服務。使用命令“systemctlrestartsshd.service”重啟sshd服務。同理,在節(jié)點slave1和slave2上也需要重啟sshd服務。1.5.3準備軟件環(huán)境5.安裝和配置SSH免密登錄(4)生成公鑰和私鑰。切換到普通用戶xuluhui下,利用“cd~”命令切換回到用戶xuluhui的家目錄下,首先使用命令“ssh-keygen”在家目錄中生成公鑰和私鑰。其中,id_rsa是私鑰,id_rsa.pub是公鑰。1.5.3準備軟件環(huán)境5.安裝和配置SSH免密登錄(4)生成公鑰和私鑰。其次使用如下命令把公鑰id_rsa.pub的內容追加到authorized_keys授權密鑰文件中。cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys最后使用如下命令修改密鑰文件的相應權限。chmod0600~/.ssh/authorized_keys1.5.3準備軟件環(huán)境5.安裝和配置SSH免密登錄(5)共享公鑰。經(jīng)過共享公鑰后,就不再需要輸入密碼。因為只有1主2從節(jié)點,所以直接復制公鑰比較方便,將master的公鑰直接復制給slave1、slave2就可以解決連接從節(jié)點時需要密碼的問題。將master的公鑰通過命令“ssh-copy-id-i~/,ssh/id_rsa.pubxuluhui@slave1”復制給slave1,同理復制給slave2。1.5.3準備軟件環(huán)境5.安裝和配置SSH免密登錄(5)共享公鑰。為了使主節(jié)點master能ssh免密登錄自身,使用“sshmaster”命令嘗試登錄自身,第1次連接時需要人工干預輸入“yes”,然后會自動將master的key加入/home/xuluhui/.ssh/know_hosts文件中,此時即可登錄到自身。第2次“sshmaster”時就可以免密登錄到自身。1.5.3準備軟件環(huán)境5.安裝和配置SSH免密登錄(5)共享公鑰。至此,可以從master節(jié)點ssh免密登錄到自身、slave1和slave2了,這對Hadoop已經(jīng)足夠,但是若想達到所有節(jié)點之間都能免密登錄的話,還需要在slave1、slave2上各執(zhí)行3次,也就是說兩兩共享密鑰,這樣累計共執(zhí)行9次。1.5.4獲取和安裝Hadoop1.獲取HadoopHadoop官方下載地址為/releases.html,本書選用的Hadoop版本是2018年11月19日發(fā)布的穩(wěn)定版Hadoop2.9.2,其安裝包文件hadoop-2.9.2.tar.gz例如存放在/home/xuluhui/Downloads中。2.安裝Hadoop(1)切換到root用戶,將hadoop-2.9.2.tar.gz解壓到目錄/usr/local下,具體命令如下所示。surootcd/usr/localtar-zxvf/home/xuluhui/Downloads/hadoop-2.9.2.tar.gz(2)將Hadoop安裝目錄的權限賦給xuluhui用戶,輸入以下命令。chown-Rxuluhui/usr/local/hadoop-2.9.21.5.5配置全分布模式Hadoop集群1.在系統(tǒng)配置文件目錄/etc/profile.d下新建hadoop.sh切換到root用戶,使用“vim/etc/profile.d/hadoop.sh”命令在/etc/profile.d文件夾下新建文件hadoop.sh,添加如下內容。exportHADOOP_HOME=/usr/local/hadoop-2.9.2exportPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH使用命令“source/etc/profile.d/hadoop.sh”重新加載配置文件或者重啟機器,使之生效。需要說明的是,此步驟可以省略,之所以將Hadoop安裝目錄下bin和sbin加入到系統(tǒng)環(huán)境變量PATH中,是因為當輸入啟動和管理Hadoop集群命令時,無需再切換到Hadoop安裝目錄下的bin目錄或者sbin目錄,否則會出現(xiàn)錯誤信息“bash:****:commandnotfound...”。接下來的2-9步驟均在普通用戶例如xuluhui下完成。1.5.5配置全分布模式Hadoop集群2.配置hadoop-env.sh環(huán)境變量配置文件hadoop-env.sh主要配置Java的安裝路徑JAVA_HOME、Hadoop日志存儲路徑HADOOP_LOG_DIR及添加SSH的配置選項HADOOP_SSH_OPTS等。(1)第25行“exportJAVA_HOME=${JAVA_HOME}”修改為:exportJAVA_HOME=/usr/java/jdk1.8.0_1911.5.5配置全分布模式Hadoop集群2.配置hadoop-env.sh(2)第26行空行處加入:exportHADOOP_SSH_OPTS='-oStrictHostKeyChecking=no’這里要說明的是,ssh的選項“StrictHostKeyChecking”用于控制當目標主機尚未進行過認證時,是否顯示信息“Areyousureyouwanttocontinueconnecting(yes/no)?”。所以當?shù)卿浧渌鼨C器時,只需要ssh-oStrictHostKeyChecking=no就可以直接登錄,不會有上面的提示信息,不需要人工干預輸入“yes”,而且還會將目標主機key加到~/.ssh/known_hosts文件里。1.5.5配置全分布模式Hadoop集群2.配置hadoop-env.sh(3)第113行“exportHADOOP_PID_DIR=${HADOOP_PID_DIR}”指定HDFS守護進程號的保存位置,默認為“/tmp”,由于該文件夾用以存放臨時文件,系統(tǒng)定時會自動清理,因此本書將“HADOOP_PID_DIR”設置為Hadoop安裝目錄下的目錄pids,如下所示,其中目錄pids會隨著HDFS守護進程的啟動而由系統(tǒng)自動創(chuàng)建,無需用戶手工創(chuàng)建。exportHADOOP_PID_DIR=${HADOOP_HOME}/pids1.5.5配置全分布模式Hadoop集群3.配置mapred-env.sh(1)第16行注釋“#exportJAVA_HOME=/home/y/libexec/jdk1.6.0/”修改為:exportJAVA_HOME=/usr/java/jdk1.8.0_191(2)
第28行指定MapReduce守護進程號的保存位置。exportHADOOP_MAPRED_PID_DIR=${HADOOP_HOME}/pids1.5.5配置全分布模式Hadoop集群4.配置yarn-env.sh(1)第23行注釋“#exportJAVA_HOME=/home/y/libexec/jdk1.6.0/”修改為:exportJAVA_HOME=/usr/java/jdk1.8.0_191(2)文件最后添加一行exportYARN_PID_DIR=${HADOOP_HOME}/pids1.5.5配置全分布模式Hadoop集群5.配置core-site.xmlcore-site.xml是hadoopcore配置文件,如HDFS和MapReduce常用的I/O設置等,其中包括很多配置項,大多數(shù)配置項都有默認項,只是在特定場合下,有些默認值無法工作,這時再找出來配置特定值。<configuration><property><name>fs.defaultFS</name><value>hdfs://30:9000</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop-2.9.2/hdfsdata</value></property><property><name>io.file.buffer.size</name><value>131072</value></property><configuration>1.5.5配置全分布模式Hadoop集群5.配置core-site.xml配置項參數(shù)名功能默認值本書設置值fs.defaultFSHDFS的文件URIfile:///hdfs://30:9000io.file.buffer.sizeIO文件的緩沖區(qū)大小4096131072hadoop.tmp.dirHadoop的臨時目錄/tmp/hadoop-${}/usr/local/hadoop-2.9.2/hdfsdata1.5.5配置全分布模式Hadoop集群6.配置hdfs-site.xml主要配置HDFS分項數(shù)據(jù),如字空間元數(shù)據(jù)、數(shù)據(jù)塊、輔助節(jié)點的檢查點的存放路徑等,不修改配置項的采用默認值即可,本書未做任何修改。配置項參數(shù)名功能默認值本書設置值.dir元數(shù)據(jù)存放位置file://${hadoop.tmp.dir}/dfs/name未修改dfs.datanode.data.dir數(shù)據(jù)塊存放位置file://${hadoop.tmp.dir}/dfs/data未修改node.checkpoint.dir輔助節(jié)點的檢查點存放位置file://${hadoop.tmp.dir}/dfs/namesecondary未修改dfs.blocksizeHDFS文件塊大小134217728未修改dfs.replicationHDFS文件塊副本數(shù)3未修改node.http-addressNameNodeWebUI地址和端口:50070未修改1.5.5配置全分布模式Hadoop集群7.配置mapred-site.xml關于MapReduce計算框架的配置信息,Hadoop配置文件中沒有mapred-site.xml,但有mapred-site.xml.template。<configuration><property><name></name><value>yarn</value></property></configuration>1.5.5配置全分布模式Hadoop集群8.配置yarn-site.xmlyarn-site.xml是有關資源管理器的YARN配置信息。<configuration><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>1.5.5配置全分布模式Hadoop集群8.配置yarn-site.xml配置項參數(shù)名功能默認值本書設置值yarn.resourcemanager.hostname提供ResourceManager服務的主機名masteryarn.resourcemanager.scheduler.class啟用的資源調度器主類org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler未修改yarn.resourcemanager.webapp.addressResourceManagerWebUIhttp地址${yarn.resourcemanager.hostname}:8088未修改yarn.nodemanager.local-dirs中間結果存放位置${hadoop.tmp.dir}/nm-local-dir未修改yarn.nodemanager.aux-servicesNodeManager上運行的附屬服務
mapreduce_shuffle1.5.5配置全分布模式Hadoop集群9.配置slaves用于指定從節(jié)點主機名列表,添加所有的從節(jié)點主機名,每一個主機名占一行。slave1slave2需要注意的是,在slaves文件里,有一個默認值localhost,一定要刪除,若不刪除,雖然后面添加了所有的從節(jié)點主機名,Hadoop還是無法逃脫“偽分布模式”的命運。1.5.5配置全分布模式Hadoop集群10.同步配置文件(1)同步hadoop.sh切換到root用戶下,將master節(jié)點上的文件hadoop.sh同步到其他2臺從節(jié)點上。scp/etc/profile.d/hadoop.shroot@slave1:/etc/profile.d/scp/etc/profile.d/hadoop.shroot@slave2:/etc/profile.d/(2)同步Hadoop配置文件切換到普通用戶xuluhui下,將master上/usr/local/hadoop-2.9.2/etc/hadoop下的配置文件同步到其他2個從節(jié)點上。scp-r/usr/local/hadoop-2.9.2/etc/hadoop/*xuluhui@slave1:/usr/local/hadoop-2.9.2/etc/hadoop/scp-r/usr/local/hadoop-2.9.2/etc/hadoop/*xuluhui@slave2:/usr/local/hadoop-2.9.2/etc/hadoop/至此,1主節(jié)點2從節(jié)點的Hadoop全分布模式集群全部配置結束,重啟3臺機器,使得上述配置生效。1.5.6關閉防火墻為了避免不必要的麻煩,建議關閉防火墻,若防火墻沒有關閉,可能會導致Hadoop雖然可以啟動,但是數(shù)據(jù)節(jié)點DataNode無法連接名稱節(jié)點NameNode,如圖所示,Hadoop集群啟動正常,但數(shù)據(jù)容量為0B,數(shù)據(jù)節(jié)點數(shù)量也是0。1.5.6關閉防火墻CentOS7下關閉防火墻的方式有兩種:命令“systemctlstopfirewalld.service”用于臨時關閉防火墻,重啟機器后又會恢復到默認狀態(tài);命令“systemctldisablefirewalld.service”用于永久關閉防火墻。1.5.6關閉防火墻重啟機器,使用命令“systemctlstatusfirewalld.service”查看防火墻狀態(tài),確定防火墻狀態(tài)為“inactive(dead)”。同理,關閉所有從節(jié)點slave1、slave2的防火墻。1.5.7格式化文件系統(tǒng)在主節(jié)點master上以普通用戶xuluhui身份輸入命令“hdfsnamenode-format”,進行HDFS文件系統(tǒng)的格式化。注意,此命令必須在主節(jié)點master上執(zhí)行,切勿在從節(jié)點上執(zhí)行。1.5.7格式化文件系統(tǒng)值得注意的是,HDFS格式化命令執(zhí)行成功后,按照以上Hadoop配置,會在主節(jié)點master的Hadoop安裝目錄下自動生成hdfsdata/dfs/name這個HDFS元數(shù)據(jù)目錄。此時,2個從節(jié)點上Hadoop安裝目錄下的文件不發(fā)生變化。1.5.8啟動和驗證Hadoop啟動全分布模式Hadoop集群的守護進程,只需在主節(jié)點master上依次執(zhí)行以下3條命令即可。start-dfs.shstart-yarn.shmr-jobhistory-daemon.shstarthistoryserverstart-dfs.sh命令會在節(jié)點上啟動NameNode、DataNode和SecondaryNameNode服務。start-yarn.sh命令會在節(jié)點上啟動ResourceManager、NodeManager服務。mr-jobhistory-daemon.sh命令會在節(jié)點上啟動JobHistoryServer服務。請注意,即使對應的守護進程沒有啟動成功,Hadoop也不會在控制臺顯示錯誤消息,讀者可以利用jps命令一步一步查詢,逐步核實對應的進程是否啟動成功。1.5.8啟動和驗證Hadoop驗證Hadoop集群方法一:jps查看進程1.執(zhí)行命令start-dfs.sh若全分布模式Hadoop集群部署成功,執(zhí)行命令start-dfs.sh后,NameNode和SecondaryNameNode會出現(xiàn)在主節(jié)點master上,DataNode會出現(xiàn)在所有從節(jié)點slave1、slave2上。這里需要注意的是,第一次啟動HDFS集群時,由于之前步驟中在配置文件hadoop-env.sh中添加了一行“HADOOP_SSH_OPTS='-oStrictHostKeyChecking=no'”,所以在連接主機時并未出現(xiàn)提示信息“Areyousureyouwanttocontinueconnecting(yes/no)?”,而且還會將目標主機key加到/home/xuluhui/.ssh/known_hosts文件里。1.5.8啟動和驗證Hadoop驗證Hadoop集群方法一:jps查看進程1.執(zhí)行命令start-dfs.sh執(zhí)行命令start-dfs.sh后,按照本書以上關于全分布模式Hadoop的配置,會在主節(jié)點的Hadoop安裝目錄/hdfsdata/dfs下自動生成namesecondary這個檢查點目錄及文件,同時會在所有從節(jié)點的Hadoop安裝目錄/hdfsdata/dfs下自動生成data這個HDFS數(shù)據(jù)塊目錄及文件。執(zhí)行命令start-dfs.sh后,還會在所有主、從節(jié)點的Hadoop安裝目錄下自動生成logs日志文件目錄及各日志文件*.log、*.out,以及pids守護進程號文件目錄及各進程號文件*.pid。1.5.8啟動和驗證Hadoop驗證Hadoop集群方法一:jps查看進程2.執(zhí)行命令start-yarn.sh若全分布模式Hadoop集群部署成功,執(zhí)行命令start-yarn.sh后,在主節(jié)點的守護進程列表中多了ResourceManager,從節(jié)點中則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版通訊器材購銷合同3篇
- 2025年度大型活動場地租賃及服務合同4篇
- 2025年PVC管道產品檢測與質量保證服務合同范本3篇
- 2025年消防給水系統(tǒng)設備及工程安全防護合同3篇
- 2025年度餐飲股份合作人力資源合作協(xié)議3篇
- 2024版跨國投資風險共保協(xié)議版B版
- 二零二五版國有控股企業(yè)股權置換與混合所有制改革合同3篇
- 2025年度消防安全通道維護外包服務合同3篇
- 2024移動支付技術服務合同
- 2024版暫定協(xié)議總價協(xié)議樣本版B版
- 校園安全培訓課件
- 化工廠施工安全質量冬季施工措施
- 移動商務內容運營(吳洪貴)項目五 運營效果監(jiān)測
- 2023-2024學年廣西壯族自治區(qū)玉林市小學語文一年級期末評估測試題詳細參考答案解析
- 青少年自殺自傷行為預防與干預專家講座
- 比較思想政治教育學
- 職業(yè)技能大賽:電工(五級)理論知識考核要素細目表(征求意見稿)
- 阿特拉斯擰緊工具維修培訓
- 萊州市石材產業(yè)園控制性詳細規(guī)劃環(huán)境影響報告書
- GB/T 4882-2001數(shù)據(jù)的統(tǒng)計處理和解釋正態(tài)性檢驗
- POCT血糖儀項目培訓記錄表、資質授權申請表
評論
0/150
提交評論