Hadoop啟動模式,基本配置,啟動方式

Local (Standalone) Model

MapReduce程序運行在本地,啟動jvm
啟動本地模式:
1、配置hadoop-env.sh配置文件中的java_home路徑
2、在hadoop安裝目錄下:mkdir input
3、在input目錄下創(chuàng)建任意文件
4、統(tǒng)計input文件夾下所有文件中的單詞的數(shù)量:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount input output

Pseudo-Distributed Mode

1、配置etc/hadoop/core-site.xml:

##配置namenode所在主機
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bxp:8020</value>
    </property>
</configuration>
##配置文件臨時目錄
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/lib/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
    </property>
</configuration>

2、配置etc/hadoop/hdfs-site.xml:

##配置文件備份數(shù)量
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

3、格式化文件系統(tǒng)
bin/hdfs namenode -format
4、啟動namenode
sbin/hadoop-daemon.sh start namenode
4、啟動datanode
sbin/hadoop-daemon.sh start datanode
5、瀏覽器訪問:http://bxp:50070,查看hdfs
6、命令行創(chuàng)建hdfs文件目錄:bin/hdfs dfs -mkdir -p /user/bxp/mapreduce/wordcount/input
7、命令行查看hdfs文件系統(tǒng)目錄結(jié)構(gòu):bin/hdfs dfs -ls -R /
8、上傳文件到hdfs文件系統(tǒng):bin/hdfs dfs -put input/test /user/bxp/mapreduce/wordcount/input(下載的命令為get,查看為cat)
9、運行
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /user/bxp/mapreduce/wordcount/input /user/bxp/mapreduce/wordcount/output
10、查看運行結(jié)果:
bin/hdfs dfs -cat /user/bxp/mapreduce/wordcount/output/part-r-00000
此時運行的結(jié)果和本地啟動時運行的結(jié)果相同,不同的是輸入的數(shù)據(jù)源一個是在本地,一個是在hdfs文件系統(tǒng)中。當(dāng)在etc/hadoop/core-site.xml中配置文件系統(tǒng)時,回去尋找文件系統(tǒng),當(dāng)沒有進行配置,默認會去尋找本地文件系統(tǒng)(file:///):

YARN on Single Node

1、在etc/hadoop/yarn-env.sh中配置JAVA_HOME
2、配置etc/hadoop/yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

  <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
    </property>
</configuration>

3、在etc/hadoop/slaves文件中配datanode和nodemamager所在主機的主機名或ip(默認datanode和nodemanager在同一臺主機上)
localhost
4、啟動yarn
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
5、瀏覽器查看yarn的監(jiān)控界面:8088
6、接下來進行將mapreduce程序運行在yarn上的配置.
7、配置etc/hadoop/mapred-env.sh中的JAVA_HOME
8、重命名mapred-site.xml.template為mapred-site.xml并配置etc/hadoop/mapred-site.xml

##將mapreduce運行在yarn上,默認值是local
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

9、運行
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /user/bxp/mapreduce/wordcount/input /user/bxp/mapreduce/wordcount/output
10、查看運行結(jié)果:
bin/hdfs dfs -cat /user/bxp/mapreduce/wordcount/output/part-r-00000
此時的運行結(jié)果不變,不同的是之前的mapreduce程序運行在本地,此時的mapreduce程序運行在yarn上

Fully-Distributed Mode

啟動mapreduce歷史服務(wù)器

sbin/mr-jobhistory-daemon.sh start historyserver

配置yarn日志的聚集

聚集:應(yīng)用運行完成以后,將日志信息上傳到HDFS文件系統(tǒng)中
在etc/hdoop/yarn-site.xml中增加屬性

###配置日志聚集
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
###配置日志在文件系統(tǒng)中存放的秒數(shù)(604800為7天)
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>

配置完成后需要將resourcemanager和mapreduce歷史任務(wù)進行重啟才會生效
sbin/yarn-daemon.sh stop resourcemanager
sbin/yarn-daemon.sh stop nodemanager
sbin/mr-jobhistory-daemon.sh stop historyserver

sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver

Hadoop配置文件

  • 默認配置文件,在share/hadoop四個模塊相對應(yīng)的jar包中
    core-default.xml
    hdfs-default.xml
    yarn-default.xml
    mapred-default.xml
  • 自定義配置文件,在etc/hadoop
    core-site.xml
    hdfs-site.xml
    yarn-site.xml
    mapred-site.xml
    每次啟動程序的時候,系統(tǒng)會首先加載jar包,讀取jar包中的默認配置,之后才會讀取用戶自定義配置,用戶自定義配置會覆蓋默認配置。
    一般在配置的時候,會在官方文檔和默認配置文件中查找配置信息,默認配置中會有對配置屬性的描述。

配置HDFS垃圾回收時間(分鐘)

在core-site.xml配置文件中進行增加屬性

<property>
         <name>fs.trash.interval</name>
         <value>7*24*60</value>
</property>

hadoop啟動的三種方式

  • 各個服務(wù)組建逐個啟動
  • hdfs
    hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
  • yarn
    yarn-daemon.sh start|stop resourcemanager|nodemanager
  • mapreduce
    mr-jobhistory-daemon.sh start|stop historyserver
  • 各個模塊分開啟動
  • hdfs
    start-dfs.sh
    stop-dfs.sh
  • yarn
    start-yarn.sh
    stop-yarn.sh
  • mapreduce
    mr-historyserver-daemon.sh start|stop historyserver
    分模塊啟動,他的啟動方式是:啟動命令在主結(jié)點上運行,然后通過ssh協(xié)議去鏈接自己和相關(guān)將要啟動的從結(jié)點,從而逐個啟動。使用ssh協(xié)議時每次都需要輸入密碼。所以需要配置ssh無密鑰登陸。
    配置無密鑰登陸:(客戶端生成公鑰和私鑰,將公鑰給將要鏈接的機器)
    1、客戶端生成密鑰。
    進入到用戶的主目錄下的.ssh目錄中
    使用命令:ssh-keygen -t rsa,回車4下
    2、copy公鑰
    使用命令ssh-copy-id hostname(將要拷貝到的機器的hostname)就會將公鑰拷貝到所有的主機名相同的主機上的.ssh目錄下authorized_key。
  • 全部啟動
  • start -all
  • stop-all
    此方式不推薦,此方式要求namenode和resourcemanager在相同的主機上,因為在實際的環(huán)境中,namenode和resourcemanager在不同的主機上。

細節(jié)回顧

  • namenode所在主機通過etc/hadoop/core-site.xml中
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://bxp:8020</value>
   </property>
指定了HDFS文件系統(tǒng),其中主機代表的就是namenode所在的主機。
  • slaves文件中指定的是datanode和noderesource所在的主機
  • secondarynamenode結(jié)點通過在hdfs-site.xml中通過以下屬性進行指定,默認就是本機
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>0.0.0.0:50090</value>
</property>
  • resourcemanager所在的主機,在yarn-site.xml
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
  </property>
  • MapReduce HistoryServer
    在mapred-site.xml中,默認是本機
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>0.0.0.0:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>0.0.0.0:19888</value>
</property>

問題

每次運行bin/hdfs dfs都會出現(xiàn)警告WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable。原因是hadoop的lib/native本地庫和系統(tǒng)所使用的本地庫不對應(yīng),要想去掉警告,需要下載hadoop的源碼在本地進行編譯,并替換native即可。
編譯可以看源碼包下的BUILDING.txt文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容