當前位置: 首頁 > 綜合 >

        大數據必知必會: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 9sdy商標轉讓手續如何辦理?有哪些風險提示?
        8 企業商標注冊的途徑有哪些?申請商標注冊前要做哪些準備?
        公司法
        公司上市的條件有哪些?公司上市有哪些流程?
        公司股東信息的查詢有哪些方式?股東的權利知情質詢權是什么?
        為什么要進行公司清算?
        企業改制都有哪些方式?
        外資上市的條件 是什么?境外上市外資股特點有哪些?
        全民所有制企業公司改制流程是怎樣的?
        機關、事業單位工會會員會費繳納標準有多少?
        公司名稱核準有哪些規定?新公司法簡化注冊登記流程的意義在哪?
        分公司和子公司有什么定義?
        公司改名的流程有哪些?公司改名的注意事項
        合同法
        履行主體都包括哪些?履行有哪些方式?

        2023-02-22

        合同訂立應遵循什么原則?

        2023-02-20

        提單是什么?提單有哪些作用?

        2022-12-05

        合同簽訂時信賴利益的保護原則有哪些不同階段?

        2022-11-16

        合同詐騙罪的立案標準是多少?什么是合同詐騙罪量刑標準?

        2022-11-14

        合同詐騙罪應該怎么才能認定?

        2022-11-14

        勞動糾紛
        履行主體都包括哪些?履行有哪些方式?
        合同訂立應遵循什么原則?
        提單是什么?提單有哪些作用?
        合同簽訂時信賴利益的保護原則有哪些不同階段?
        合同詐騙罪的立案標準是多少?什么是合同詐騙罪量刑標準?
        合同詐騙罪應該怎么才能認定?

        法律解答網版權所有 2005-2022

        亚洲熟妇无码AV在线播放| 亚洲男女性高爱潮网站| 亚洲国产黄在线观看| 亚洲色欲色欲www在线播放 | 亚洲成a人片在线观看中文动漫| 亚洲熟伦熟女新五十路熟妇| 国产精品亚洲二区在线| 国产亚洲精品美女久久久久| 亚洲av无码一区二区乱子伦as | 亚洲区小说区图片区| 亚洲成av人在片观看| 婷婷综合缴情亚洲狠狠尤物| 午夜亚洲WWW湿好爽| 亚洲AV综合永久无码精品天堂 | 亚洲kkk4444在线观看| 亚洲日本一线产区和二线产区对比| 国产日本亚洲一区二区三区 | 久久久久久久尹人综合网亚洲 | 香蕉蕉亚亚洲aav综合| 久久丫精品国产亚洲av不卡| 亚洲精品免费在线| 亚洲中文无码线在线观看| 亚洲成_人网站图片| 亚洲AV色欲色欲WWW| 亚洲第一页综合图片自拍| 亚洲人成人网站在线观看| 久久精品国产亚洲一区二区三区| 亚洲综合国产精品第一页| 国产亚洲精品资源在线26u| 中文字幕无码亚洲欧洲日韩| 亚洲欧美日韩国产成人| 国产成人亚洲综合a∨| 亚洲偷自拍拍综合网| 国产成人精品日本亚洲| 久久亚洲美女精品国产精品| 亚洲w码欧洲s码免费| 亚洲av永久无码精品网址| 亚洲国产天堂久久综合| 精品亚洲一区二区| 亚洲精品国产专区91在线| 在线亚洲午夜片AV大片|