當(dāng)前位置: 首頁(yè) > 綜合 >

      大數(shù)據(jù)必知必會(huì):Hadoop(3)集群環(huán)境安裝

      2023-02-10 03:04:31 來(lái)源:騰訊云

      安裝前準(zhǔn)備

      集群環(huán)境下,至少需要3臺(tái)服務(wù)器。

      IP地址

      主機(jī)名稱


      (資料圖片僅供參考)

      10.0.0.5

      node1

      10.0.0.6

      node2

      10.0.0.7

      node3

      需要保證每臺(tái)服務(wù)器的配置都一致,以下步驟在3臺(tái)服務(wù)器上都需要做一次。

      操作系統(tǒng)準(zhǔn)備

      本次安裝采用的操作系統(tǒng)是Ubuntu 20.04。

      更新一下軟件包列表。

      sudo apt-get update

      安裝Java 8+

      使用命令安裝Java 8。

      sudo apt-get install -y openjdk-8-jdk

      配置環(huán)境變量。

      vi ~/.bashrcexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

      讓環(huán)境變量生效。

      source ~/.bashrc

      下載Hadoop安裝包

      從Hadoop官網(wǎng)Apache Hadoop下載安裝包軟件。

      image-20230120200957218

      或者直接通過(guò)命令下載。

      wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
      image-20230122004400490

      分布式集群安裝

      分布式集群是在多個(gè)節(jié)點(diǎn)上運(yùn)行進(jìn)程來(lái)實(shí)現(xiàn)Hadoop集群。

      配置域名解析

      在后續(xù)使用過(guò)程中,都使用主機(jī)名稱,所以需要配置域名解析。

      配置 /etc/hosts

      由于該配置文件的修改需要root權(quán)限,所以在每個(gè)節(jié)點(diǎn)上都手動(dòng)配置。

      10.0.0.5 node110.0.0.6 node210.0.0.7 node3

      以下配置過(guò)程在node1上完成,并且配置完成后將配置文件復(fù)制到其他節(jié)點(diǎn)。

      配置免密登錄

      Hadoop分布式集群的運(yùn)行,需要配置密鑰對(duì)實(shí)現(xiàn)免密登錄。

      創(chuàng)建公私鑰對(duì)
      hadoop@node1:~$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hadoop/.ssh/id_rsaYour public key has been saved in /home/hadoop/.ssh/id_rsa.pubThe key fingerprint is:SHA256:pp2AC1bQAQ5J6CJJCij1QA7bgKOsVxpoPVNi+cxhcyg hadoop@node1The key"s randomart image is:+---[RSA 3072]----+|O=*oo..          ||OX E.* .         ||X+* @ +          ||B+.=.=           ||= o++ . S        ||..o. . = .       || .  . . o        ||                 ||                 |+----[SHA256]-----+
      復(fù)制公鑰
      hadoop@node1:~$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
      復(fù)制到其他節(jié)點(diǎn)
      hadoop@node1:~$ scp -r .ssh node1:~/id_rsa.pub                                   100%  566     1.7MB/s   00:00    authorized_keys                              100%  566     2.0MB/s   00:00    known_hosts                                  100% 1332     4.5MB/s   00:00    id_rsa                                       100% 2602    10.1MB/s   00:00    hadoop@node1:~$ scp -r .ssh node2:~/hadoop@node2"s password: id_rsa.pub                                   100%  566   934.6KB/s   00:00    authorized_keys                              100%  566   107.3KB/s   00:00    known_hosts                                  100% 1332     2.5MB/s   00:00    id_rsa                                       100% 2602     4.8MB/s   00:00    hadoop@node1:~$ scp -r .ssh node3:~/hadoop@node3"s password: id_rsa.pub                                   100%  566     1.0MB/s   00:00    authorized_keys                              100%  566     1.3MB/s   00:00    known_hosts                                  100% 1332     2.8MB/s   00:00    id_rsa                                       100% 2602     5.2MB/s   00:00    

      確保執(zhí)行ssh命令的時(shí)候不需要輸入密碼。

      hadoop@node1:~$ ssh node1hadoop@node1:~$ ssh node2hadoop@node1:~$ ssh node3

      解壓安裝包

      將安裝包解壓到目標(biāo)路徑。

      hadoop@node1:~$ mkdir -p appshadoop@node1:~$ tar -xzf hadoop-3.3.4.tar.gz -C apps
      image-20230122005658601

      bin目錄下存放的是Hadoop相關(guān)的常用命令,比如操作HDFS的hdfs命令,以及hadoop、yarn等命令。

      etc目錄下存放的是Hadoop的配置文件,對(duì)HDFS、MapReduce、YARN以及集群節(jié)點(diǎn)列表的配置都在這個(gè)里面。

      sbin目錄下存放的是管理集群相關(guān)的命令,比如啟動(dòng)集群、啟動(dòng)HDFS、啟動(dòng)YARN、停止集群等的命令。

      share目錄下存放了一些Hadoop的相關(guān)資源,比如文檔以及各個(gè)模塊的Jar包。

      配置環(huán)境變量

      在集群的每個(gè)節(jié)點(diǎn)上都配置Hadoop的環(huán)境變量,Hadoop集群在啟動(dòng)的時(shí)候可以使用start-all.sh一次性啟動(dòng)集群中的HDFS和Yarn,為了能夠正常使用該命令,需要將其路徑配置到環(huán)境變量中。

      hadoop@node1:~$ vi ~/.bashrcexport HADOOP_HOME=/home/hadoop/apps/hadoop-3.3.4export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-3.3.4/etc/hadoopexport YARN_CONF_DIR=/home/hadoop/apps/hadoop-3.3.4/etc/hadoopexport PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

      使環(huán)境變量生效。

      hadoop@node1:~$ source ~/.bashrc

      配置Hadoop集群

      Hadoop軟件安裝完成后,每個(gè)節(jié)點(diǎn)上的Hadoop都是獨(dú)立的軟件,需要進(jìn)行配置才能組成Hadoop集群。Hadoop的配置文件在$HADOOP_HOME/etc/hadoop目錄下,主要配置文件有6個(gè):

      hadoop-env.sh主要配置Hadoop環(huán)境相關(guān)的信息,比如安裝路徑、配置文件路徑等;core-site.xml是Hadoop的核心配置文件,主要配置了Hadoop的NameNode的地址、Hadoop產(chǎn)生的文件目錄等信息;hdfs-site.xml是HDFS分布式文件系統(tǒng)相關(guān)的配置文件,主要配置了文件的副本數(shù)、HDFS文件系統(tǒng)在本地對(duì)應(yīng)的目錄等;mapred-site.xml是關(guān)于MapReduce的配置文件,主要配置MapReduce在哪里運(yùn)行;yarn-site.xml是Yarn相關(guān)的配置文件,主要配置了Yarn的管理節(jié)點(diǎn)ResourceManager的地址、NodeManager獲取數(shù)據(jù)的方式等;workers是集群中節(jié)點(diǎn)列表的配置文件,只有在這個(gè)文件里面配置了的節(jié)點(diǎn)才會(huì)加入到Hadoop集群中,否則就是一個(gè)獨(dú)立節(jié)點(diǎn)。

      這幾個(gè)配置文件如果不存在,可以通過(guò)復(fù)制配置模板的方式創(chuàng)建,也可以通過(guò)創(chuàng)建新文件的方式創(chuàng)建。需要保證在集群的每個(gè)節(jié)點(diǎn)上這6個(gè)配置保持同步,可以在每個(gè)節(jié)點(diǎn)單獨(dú)配置,也可以在一個(gè)節(jié)點(diǎn)上配置完成后同步到其他節(jié)點(diǎn)。

      hadoop-env.sh配置

      hadoop@node1:~$ vi $HADOOP_HOME/etc/hadoop/hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export HADOOP_HOME=/home/hadoop/apps/hadoop-3.3.4export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-3.3.4/etc/hadoopexport HADOOP_LOG_DIR=/home/hadoop/logs/hadoop

      core-site.xml配置

      hadoop@node1:~$ vi $HADOOP_HOME/etc/hadoop/core-site.xml          fs.defaultFS      hdfs://node1:8020              hadoop.tmp.dir      /home/hadoop/data/hadoop/temp              hadoop.proxyuser.hadoop.hosts      *              hadoop.proxyuser.hadoop.groups      *    

      hdfs-site.xml配置

      hadoop@node1:~$ vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml            dfs.replication        3              dfs.namenode.name.dir      /home/hadoop/data/hadoop/hdfs/name              dfs.datanode.data.dir      /home/hadoop/data/hadoop/hdfs/data    

      mapred-site.xml配置

      hadoop@node1:~$ vi $HADOOP_HOME/etc/hadoop/mapred-site.xml            mapreduce.framework.name        yarn                mapreduce.application.classpath        $HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*    

      yarn-site.xml配置

      hadoop@node1:~$ vi $HADOOP_HOME/etc/hadoop/yarn-site.xml          yarn.nodemanager.aux-services      mapreduce_shuffle                  yarn.resourcemanager.hostname        node1    

      workers配置

      hadoop@node1:~$ vi $HADOOP_HOME/etc/hadoop/workersnode1node2node3

      將軟件及配置信息復(fù)制到其他節(jié)點(diǎn)

      在node1上配置好環(huán)境變量及配置文件,可以手動(dòng)再在其他節(jié)點(diǎn)上完成同樣的配置,或者直接將node1的文件復(fù)制到其他節(jié)點(diǎn)。

      hadoop@node1:~$ scp -r .bashrc apps node2:~/hadoop@node1:~$ scp -r .bashrc apps node3:~/

      格式化NameNode

      在啟動(dòng)集群前,需要對(duì)NameNode進(jìn)行格式化,在node1上執(zhí)行以下命令:

      hadoop@node1:~$ hdfs namenode -format

      啟動(dòng)集群

      在node1上執(zhí)行start-all.sh命令啟動(dòng)集群。

      hadoop@node1:~$ jps55936 Jpshadoop@node1:~$ start-all.shWARNING: Attempting to start all Apache Hadoop daemons as hadoop in 10 seconds.WARNING: This is not a recommended production deployment configuration.WARNING: Use CTRL-C to abort.Starting namenodes on [node1]Starting datanodesnode2: WARNING: /home/hadoop/logs/hadoop does not exist. Creating.node3: WARNING: /home/hadoop/logs/hadoop does not exist. Creating.Starting secondary namenodes [node1]WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.Starting resourcemanagerWARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.Starting nodemanagersWARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.node3: WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.node2: WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.node1: WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.hadoop@node1:~$ jps57329 ResourceManager57553 NodeManager57027 SecondaryNameNode58165 Jps56437 NameNode56678 DataNode

      驗(yàn)證Hadoop

      訪問(wèn)HDFS

      上傳一個(gè)文件到HDFS。

      hdfs dfs -put .bashrc /

      打開(kāi)HDFS Web UI查看相關(guān)信息,默認(rèn)端口9870。

      image-20230122011646516
      image-20230122011729528
      image-20230122011803241

      訪問(wèn)YARN

      打開(kāi)YARN Web UI查看相關(guān)信息,默認(rèn)端口8088。

      image-20230122011843198

      相關(guān)命令

      HDFS相關(guān)的命令

      操作HDFS使用的命令是hdfs,命令格式為:

      Usage: hdfs [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]

      支持的Client命令主要有:

      Client Commands:classpath            prints the class path needed to get the hadoop jar and the required librariesdfs                  run a filesystem command on the file systemenvvars              display computed Hadoop environment variablesfetchdt              fetch a delegation token from the NameNodegetconf              get config values from configurationgroups               get the groups which users belong tolsSnapshottableDir   list all snapshottable dirs owned by the current usersnapshotDiff         diff two snapshots of a directory or diff the current directory contents with a snapshotversion              print the version

      YARN相關(guān)的命令

      操作HDFS使用的命令是yarn,命令格式為:

      Usage: yarn [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS] or    yarn [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]  where CLASSNAME is a user-provided Java class

      支持的Client命令主要有:

      Client Commands:applicationattempt   prints applicationattempt(s) reportapp|application      prints application(s) report/kill application/manage long running applicationclasspath            prints the class path needed to get the hadoop jar and the required librariescluster              prints cluster informationcontainer            prints container(s) reportenvvars              display computed Hadoop environment variablesfs2cs                converts Fair Scheduler configuration to Capacity Scheduler (EXPERIMENTAL)jar             run a jar filelogs                 dump container logsnodeattributes       node attributes cli clientqueue                prints queue informationschedulerconf        Updates scheduler configurationtimelinereader       run the timeline reader servertop                  view cluster informationversion              print the version

      yarn jar 可以執(zhí)行一個(gè)jar文件。

      驗(yàn)證案例1,統(tǒng)計(jì)含有“dfs”的字符串

      創(chuàng)建一個(gè)input目錄。

      hadoop@node1:~$ hdfs dfs -mkdir /input

      將Hadoop的配置文件復(fù)制到input目錄下。

      hadoop@node1:~$ hdfs dfs -put apps/hadoop-3.3.4/etc/hadoop/*.xml /input/

      以下命令用于執(zhí)行一個(gè)Hadoop自帶的樣例程序,統(tǒng)計(jì)input目錄中含有dfs的字符串,結(jié)果輸出到output目錄。

      hadoop@node1:~$ yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep /input /output "dfs[a-z.]+"
      image-20230122012114789

      在YARN上可以看到提交的Job。

      image-20230122012159358

      執(zhí)行結(jié)果為:

      hadoop@node1:~$ hdfs dfs -cat /output/*1       dfsadmin1       dfs.replication1       dfs.namenode.name.dir1       dfs.datanode.data.dir
      驗(yàn)證案例2,計(jì)算圓周率

      同樣執(zhí)行Hadoop自帶的案例,計(jì)算圓周率。

      hadoop@node1:~$ yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 10 10

      執(zhí)行結(jié)果為:

      hadoop@node1:~$ yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 10 10WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.Number of Maps  = 10Samples per Map = 10Wrote input for Map #0Wrote input for Map #1Wrote input for Map #2Wrote input for Map #3Wrote input for Map #4Wrote input for Map #5Wrote input for Map #6Wrote input for Map #7Wrote input for Map #8Wrote input for Map #9Starting Job... ...Job Finished in 43.014 secondsEstimated value of Pi is 3.20000000000000000000

      在YARN上可以看到提交的Job。

      image-20230122012444050
      標(biāo)簽: Hadoop Bash Bash
      最近更新
      15037178970
      婚姻法
      結(jié)婚前你需要想明白這3點(diǎn) 婚前財(cái)產(chǎn)和婚后財(cái)產(chǎn)的問(wèn)題一定要明白
      知道這些不止能在婚姻出問(wèn)題時(shí)保護(hù)你 更能讓你少踩婚姻中的一些雷區(qū)
      如果你的另一半出軌了你要離婚嗎?如果離婚應(yīng)該怎么去做呢?
      夫妻之間發(fā)生爭(zhēng)執(zhí)之后多數(shù)人會(huì)選擇冷戰(zhàn) 這里的冷戰(zhàn)屬于冷暴力嗎?
      遭遇家庭冷暴力應(yīng)該怎么辦?這六種方式用以應(yīng)對(duì)家庭“冷暴力”
      家庭冷暴力與傳統(tǒng)的家庭暴力不同 面對(duì)家庭冷暴力應(yīng)該如何取證?
      究竟什么是家庭冷暴力呢?家庭冷暴力常見(jiàn)的特征都有什么呢?
      夫妻離婚財(cái)產(chǎn)如何分配?子女的撫養(yǎng)權(quán)應(yīng)該歸屬哪一方所有呢?
      子女的撫養(yǎng)費(fèi)具體有哪幾項(xiàng)呢?婚姻法離婚撫養(yǎng)費(fèi)規(guī)定的標(biāo)準(zhǔn)是什么呢?
      婚姻法離婚撫養(yǎng)費(fèi)法規(guī)內(nèi)容是怎樣的?關(guān)于撫養(yǎng)費(fèi)的幾個(gè)問(wèn)題是什么?
      知識(shí)糾紛
      1 哪些可以申請(qǐng)專利?專利可以同時(shí)多個(gè)人一起申請(qǐng)嗎?
      2 專利申請(qǐng)收費(fèi)標(biāo)準(zhǔn)是怎樣的?申請(qǐng)不同類型的專利所需要的錢不同
      3 專利實(shí)施許可合同讓與人有哪些主要義務(wù)?專利實(shí)施許可合同與專利許可合同有什么區(qū)別?
      4 哪些情形實(shí)施專利強(qiáng)制許可?專利強(qiáng)制許可的前提條件是什么?
      5 專利無(wú)效的法律后果有哪些?專利的無(wú)效情形有哪些?
      6 專利駁回復(fù)審具體有多長(zhǎng)時(shí)間?哪些情況下專利申請(qǐng)可能被駁回?
      7 發(fā)明專利權(quán)的保護(hù)期限是多少年?非專利發(fā)明人是否有專利申請(qǐng)權(quán)?
      8 侵犯專利權(quán)的賠償計(jì)算方式是什么?侵犯專利權(quán)的訴訟時(shí)效為多長(zhǎng)時(shí)間?
      公司法
      企業(yè)改制的含義 有哪些方式?改制后國(guó)企員工屬于什么性質(zhì)?
      民營(yíng)企業(yè)改制中的隱形債務(wù)問(wèn)題 面對(duì)隱形債務(wù)問(wèn)題應(yīng)該如何解決?
      旅行社經(jīng)營(yíng)范圍變更的審核告知事項(xiàng) 旅游業(yè)的發(fā)展現(xiàn)狀和趨勢(shì)
      企業(yè)無(wú)常加班是否可以匿名舉報(bào)?強(qiáng)制加班公司沒(méi)有加班費(fèi)怎么辦?
      企業(yè)清理欠款時(shí)應(yīng)注意什么問(wèn)題?企業(yè)短期借款需要注意哪些事項(xiàng)?
      什么是中小企業(yè)集合票據(jù)和超級(jí)短期融資券?一起來(lái)了解一下吧!
      一人有限責(zé)任公司與個(gè)人獨(dú)資企業(yè)的區(qū)別 這些知識(shí)你都知道嗎?
      有限責(zé)任公司股權(quán)轉(zhuǎn)讓具體有哪些形式?來(lái)了解下這五種形式
      一人公司設(shè)立時(shí)應(yīng)當(dāng)注意的問(wèn)題 一人公司的特征
      公司股東之間股權(quán)轉(zhuǎn)讓計(jì)稅基礎(chǔ)怎么確認(rèn)?公司股東之間的股權(quán)轉(zhuǎn)讓要符合什么要件?
      合同法
      客運(yùn)合同中旅客的權(quán)利義務(wù)一覽 主要包括這些內(nèi)容

      2022-09-01

      運(yùn)輸承攬合同司法解釋 運(yùn)輸合同中承運(yùn)人的義務(wù)有哪些

      2022-09-01

      裝修合同簽訂流程法律法規(guī)一覽 律師解答

      2022-09-01

      建筑工程承包人最主要的義務(wù)一覽 承包合同內(nèi)容介紹

      2022-09-01

      監(jiān)控安裝合同書(shū)的內(nèi)容格式介紹 一般包括這些條款

      2022-09-01

      委托書(shū)可以撤銷嗎 房屋買賣公證可否撤銷

      2022-09-01

      勞動(dòng)糾紛
      客運(yùn)合同中旅客的權(quán)利義務(wù)一覽 主要包括這些內(nèi)容
      運(yùn)輸承攬合同司法解釋 運(yùn)輸合同中承運(yùn)人的義務(wù)有哪些
      裝修合同簽訂流程法律法規(guī)一覽 律師解答
      建筑工程承包人最主要的義務(wù)一覽 承包合同內(nèi)容介紹
      監(jiān)控安裝合同書(shū)的內(nèi)容格式介紹 一般包括這些條款
      委托書(shū)可以撤銷嗎 房屋買賣公證可否撤銷

      法律解答網(wǎng)版權(quán)所有 2005-2022

      亚洲精品无码专区| 亚洲AV午夜成人影院老师机影院| 国产亚洲成av人片在线观看| 亚洲AV无码成人精品区日韩| 亚洲最大天堂无码精品区| 亚洲欧洲日产国产最新| 久久久婷婷五月亚洲97号色| 久久精品国产96精品亚洲 | 亚洲综合激情五月色一区| 亚洲精品第一国产综合野| 亚洲另类自拍丝袜第1页| 亚洲性69影院在线观看| 亚洲欧洲日产专区| 亚洲日本va在线观看| 亚洲欧洲国产综合AV无码久久 | 日本亚洲精品色婷婷在线影院 | 亚洲精品午夜无码专区| 久久99国产亚洲高清观看首页| 亚洲精品制服丝袜四区| 亚洲AV美女一区二区三区| 亚洲福利在线视频| 99久久精品国产亚洲| 亚洲无限乱码一二三四区| 亚洲影视自拍揄拍愉拍| 亚洲国产精品精华液| 全亚洲最新黄色特级网站| 亚洲伊人久久综合影院| 亚洲日本va在线视频观看| 国产成人精品日本亚洲网站| 亚洲激情在线观看| 亚洲国产av一区二区三区丶| 香蕉大伊亚洲人在线观看| 亚洲AV无码成人精品区狼人影院| 亚洲国产精品无码久久久久久曰 | 国产精品亚洲а∨无码播放不卡| 亚洲国产精品一区二区九九| 亚洲日韩一页精品发布| 亚洲伦理一区二区| 亚洲三级中文字幕| 亚洲最大无码中文字幕| 亚洲成A人片在线观看中文|