當前位置: 首頁 > 綜合 >

    大數據必知必會:Hadoop(3)集群環境安裝

    2023-02-10 03:04:31 來源:騰訊云

    安裝前準備

    集群環境下,至少需要3臺服務器。

    IP地址

    主機名稱


    (資料圖片僅供參考)

    10.0.0.5

    node1

    10.0.0.6

    node2

    10.0.0.7

    node3

    需要保證每臺服務器的配置都一致,以下步驟在3臺服務器上都需要做一次。

    操作系統準備

    本次安裝采用的操作系統是Ubuntu 20.04。

    更新一下軟件包列表。

    sudo apt-get update

    安裝Java 8+

    使用命令安裝Java 8。

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

    配置環境變量。

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

    讓環境變量生效。

    source ~/.bashrc

    下載Hadoop安裝包

    從Hadoop官網Apache Hadoop下載安裝包軟件。

    image-20230120200957218

    或者直接通過命令下載。

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

    分布式集群安裝

    分布式集群是在多個節點上運行進程來實現Hadoop集群。

    配置域名解析

    在后續使用過程中,都使用主機名稱,所以需要配置域名解析。

    配置 /etc/hosts

    由于該配置文件的修改需要root權限,所以在每個節點上都手動配置。

    10.0.0.5 node110.0.0.6 node210.0.0.7 node3

    以下配置過程在node1上完成,并且配置完成后將配置文件復制到其他節點。

    配置免密登錄

    Hadoop分布式集群的運行,需要配置密鑰對實現免密登錄。

    創建公私鑰對
    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]-----+
    復制公鑰
    hadoop@node1:~$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    復制到其他節點
    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    

    確保執行ssh命令的時候不需要輸入密碼。

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

    解壓安裝包

    將安裝包解壓到目標路徑。

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

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

    etc目錄下存放的是Hadoop的配置文件,對HDFS、MapReduce、YARN以及集群節點列表的配置都在這個里面。

    sbin目錄下存放的是管理集群相關的命令,比如啟動集群、啟動HDFS、啟動YARN、停止集群等的命令。

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

    配置環境變量

    在集群的每個節點上都配置Hadoop的環境變量,Hadoop集群在啟動的時候可以使用start-all.sh一次性啟動集群中的HDFS和Yarn,為了能夠正常使用該命令,需要將其路徑配置到環境變量中。

    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

    使環境變量生效。

    hadoop@node1:~$ source ~/.bashrc

    配置Hadoop集群

    Hadoop軟件安裝完成后,每個節點上的Hadoop都是獨立的軟件,需要進行配置才能組成Hadoop集群。Hadoop的配置文件在$HADOOP_HOME/etc/hadoop目錄下,主要配置文件有6個:

    hadoop-env.sh主要配置Hadoop環境相關的信息,比如安裝路徑、配置文件路徑等;core-site.xml是Hadoop的核心配置文件,主要配置了Hadoop的NameNode的地址、Hadoop產生的文件目錄等信息;hdfs-site.xml是HDFS分布式文件系統相關的配置文件,主要配置了文件的副本數、HDFS文件系統在本地對應的目錄等;mapred-site.xml是關于MapReduce的配置文件,主要配置MapReduce在哪里運行;yarn-site.xml是Yarn相關的配置文件,主要配置了Yarn的管理節點ResourceManager的地址、NodeManager獲取數據的方式等;workers是集群中節點列表的配置文件,只有在這個文件里面配置了的節點才會加入到Hadoop集群中,否則就是一個獨立節點。

    這幾個配置文件如果不存在,可以通過復制配置模板的方式創建,也可以通過創建新文件的方式創建。需要保證在集群的每個節點上這6個配置保持同步,可以在每個節點單獨配置,也可以在一個節點上配置完成后同步到其他節點。

    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

    將軟件及配置信息復制到其他節點

    在node1上配置好環境變量及配置文件,可以手動再在其他節點上完成同樣的配置,或者直接將node1的文件復制到其他節點。

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

    格式化NameNode

    在啟動集群前,需要對NameNode進行格式化,在node1上執行以下命令:

    hadoop@node1:~$ hdfs namenode -format

    啟動集群

    在node1上執行start-all.sh命令啟動集群。

    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

    驗證Hadoop

    訪問HDFS

    上傳一個文件到HDFS。

    hdfs dfs -put .bashrc /

    打開HDFS Web UI查看相關信息,默認端口9870。

    image-20230122011646516
    image-20230122011729528
    image-20230122011803241

    訪問YARN

    打開YARN Web UI查看相關信息,默認端口8088。

    image-20230122011843198

    相關命令

    HDFS相關的命令

    操作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相關的命令

    操作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 可以執行一個jar文件。

    驗證案例1,統計含有“dfs”的字符串

    創建一個input目錄。

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

    將Hadoop的配置文件復制到input目錄下。

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

    以下命令用于執行一個Hadoop自帶的樣例程序,統計input目錄中含有dfs的字符串,結果輸出到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

    執行結果為:

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

    同樣執行Hadoop自帶的案例,計算圓周率。

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

    執行結果為:

    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
    標簽: Hadoop Bash Bash
    最近更新
    15037178970
    婚姻法
    有關涉外婚姻中撫養糾紛中的法律適用等問題我國法律有什么解釋?
    涉外離婚中子女撫養權問題有哪些?涉外離婚子女撫養有幾種情況?
    法律規定涉外離婚孩子撫養費問題如何處理?子女撫養費數額的計算有哪些影響因素?
    涉外離婚公證怎么做?涉外離婚公證具體步驟有哪些?
    關于涉外離婚的程序具體內容有哪些?涉外離婚的程序有什么法律依據?
    異地分居五年一方工資是共同財產嗎?涉外婚姻離婚在哪里辦理?
    夫妻分居異地如何訴訟離婚?實踐中法院是怎么認定分居?
    涉外離婚途徑有哪幾種?涉外離婚可以委托律師嗎?
    離婚的時候境外財產怎么去分割?涉外離婚有什么法律依據?
    最高法關于涉外婚姻的解釋是什么?涉外離婚分割財產應遵循的原則有哪些?
    知識糾紛
    1 哪些可以申請專利?專利可以同時多個人一起申請嗎?
    2 專利申請收費標準是怎樣的?申請不同類型的專利所需要的錢不同
    3 專利實施許可合同讓與人有哪些主要義務?專利實施許可合同與專利許可合同有什么區別?
    4 哪些情形實施專利強制許可?專利強制許可的前提條件是什么?
    5 專利無效的法律后果有哪些?專利的無效情形有哪些?
    6 專利駁回復審具體有多長時間?哪些情況下專利申請可能被駁回?
    7 發明專利權的保護期限是多少年?非專利發明人是否有專利申請權?
    8 侵犯專利權的賠償計算方式是什么?侵犯專利權的訴訟時效為多長時間?
    公司法
    企業改制的含義 有哪些方式?改制后國企員工屬于什么性質?
    民營企業改制中的隱形債務問題 面對隱形債務問題應該如何解決?
    旅行社經營范圍變更的審核告知事項 旅游業的發展現狀和趨勢
    企業無常加班是否可以匿名舉報?強制加班公司沒有加班費怎么辦?
    企業清理欠款時應注意什么問題?企業短期借款需要注意哪些事項?
    什么是中小企業集合票據和超級短期融資券?一起來了解一下吧!
    一人有限責任公司與個人獨資企業的區別 這些知識你都知道嗎?
    有限責任公司股權轉讓具體有哪些形式?來了解下這五種形式
    一人公司設立時應當注意的問題 一人公司的特征
    公司股東之間股權轉讓計稅基礎怎么確認?公司股東之間的股權轉讓要符合什么要件?
    合同法
    客運合同中旅客的權利義務一覽 主要包括這些內容

    2022-09-01

    運輸承攬合同司法解釋 運輸合同中承運人的義務有哪些

    2022-09-01

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

    2022-09-01

    建筑工程承包人最主要的義務一覽 承包合同內容介紹

    2022-09-01

    監控安裝合同書的內容格式介紹 一般包括這些條款

    2022-09-01

    委托書可以撤銷嗎 房屋買賣公證可否撤銷

    2022-09-01

    勞動糾紛
    客運合同中旅客的權利義務一覽 主要包括這些內容
    運輸承攬合同司法解釋 運輸合同中承運人的義務有哪些
    裝修合同簽訂流程法律法規一覽 律師解答
    建筑工程承包人最主要的義務一覽 承包合同內容介紹
    監控安裝合同書的內容格式介紹 一般包括這些條款
    委托書可以撤銷嗎 房屋買賣公證可否撤銷

    法律解答網版權所有 2005-2022   備案號:京ICP備2022016840號-59  聯系郵箱:920 891 263@qq.com

    亚洲av无码乱码在线观看野外 | yy6080久久亚洲精品| 亚洲成人网在线播放| 亚洲色欲www综合网| 久久亚洲中文字幕精品有坂深雪| 亚洲AV日韩AV永久无码免下载| 亚洲码国产精品高潮在线| 亚洲色无码一区二区三区| 亚洲日韩小电影在线观看| 亚洲熟妇av一区二区三区| 亚洲无人区一区二区三区| 亚洲精品国产精品乱码不卡√| 亚洲熟妇av一区二区三区| 亚洲成AV人片在线观看WWW| 亚洲高清专区日韩精品| 亚洲av色福利天堂| 久久久久亚洲AV成人片| 亚洲欧洲国产精品久久| 亚洲激情校园春色| 亚洲六月丁香婷婷综合| 亚洲人成人无码.www石榴| 亚洲av无码一区二区三区天堂 | 亚洲sss综合天堂久久久| 亚洲最大成人网色香蕉| 亚洲熟女乱色一区二区三区| 亚洲AV成人无码网天堂| 亚洲第一黄片大全| 在线精品亚洲一区二区小说| 亚洲精品成人片在线观看精品字幕| 亚洲精品乱码久久久久久自慰| 亚洲AV无码第一区二区三区| 亚洲欧洲日产国码久在线观看| 亚洲自偷自拍另类图片二区 | 亚洲国产午夜福利在线播放| 国产成人99久久亚洲综合精品| 亚洲午夜福利717| 97久久精品亚洲中文字幕无码| 亚洲午夜精品在线| 亚洲国产一区二区三区在线观看 | 久久久久久久亚洲Av无码 | 久久精品国产精品亚洲人人|