HADOOP之YARN簡介


yarn的誕生:hadoop1.x版本JobTracker的作用是資源管理和任務的調度,當存在多個計算框架時,比如說spark,如果兩個計算框架都有着自己的資源管理模塊,就會存在資源競爭,不便於管理。此時就需要一個公共的資源管理模塊,這就產生了YARN.

hadoop2.x上的mapreduce是基於YARN 的,YARN支持多個計算框架,就比如說剛才說的SPARk.

YARN的工作原理圖:

Yarn上可以支持多個計算框架(MapReduce,spark)

Yarn上的每一個Node Manager 都與每一個dataNode與之對應

Yarn原理過程:

一個客戶端A向resource manager 提交請求,resource manager就會會產生一個application master(相當於mapreduce1.x中的jobTracker中的調度模塊),resource manager會在hdfs中獲取split的信息(被切成了多少塊),然后向resource manager申請有多少個mapTask,然后resource manager 會產生多個Container分布在多個節點上(分布在哪個節點上由resource manager控制)

一個客戶端B向resource manager 提交請求,resource manager又會會產生一個application master(相當於mapreduce1.x中的jobTracker中的調度模塊),resource manager會在hdfs中獲取split的信息(被切成了多少塊),然后向resource manager申請有多少個mapTask,然后resource manager 會產生多個Container(默認占用空間1個G)分布在多個節點上(分布在哪個節點上由resource manager控制)

 Resource manager 又會存在單點故障,此時又需要用到ha來實現高可用性。

mapTask 和 reduceTask都是在節點上的container上運行的。

將yarn配置好后,執行hadoop上的mapreduce例子,進行簡單的測試。

Hadoop  jar  hadoop-mapreduce-examples-2.6.5.jar wordcount /usr/root/text.txt /data/wc/output

注意:/data/wc/output目錄必須是空的,或者不存在的。否則的話,hadoop會報錯。

下面是yarn-site.xml的配置:

<configuration>

 

<!-- Site specific YARN configuration properties -->

<!—配置此項,則nodemanager會自動拉取hdfs中的數據,否則無法mapTask無法獲取到數據進行計算-->

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

</property>

<!—resource manager 開啟ha開關實現高可用-->

<property>

  <name>yarn.resourcemanager.ha.enabled</name>

  <value>true</value>

</property>

<!—resource manager ha集群服務名-->

<property>

  <name>yarn.resourcemanager.cluster-id</name>

  <value>yarnhacluster</value>

</property>

<!—resource manager ha虛擬到物理的映射-->

<property>

  <name>yarn.resourcemanager.ha.rm-ids</name>

  <value>rm1,rm2</value>

</property>

<property>

  <name>yarn.resourcemanager.hostname.rm1</name>

  <value>node3</value>

</property>

<property>

  <name>yarn.resourcemanager.hostname.rm2</name>

  <value>node4</value>

</property>

<property>

  <name>yarn.resourcemanager.webapp.address.rm1</name>

  <value>node3:8088</value>

</property>

<property>

  <name>yarn.resourcemanager.webapp.address.rm2</name>

  <value>node4:8088</value>

</property>

<!—resource mangager故障轉移切換與zookeeper相結合 -->

<property>

  <name>yarn.resourcemanager.zk-address</name>

  <value>node2:2181,node3:2181,node4:2181</value>

</property>

</configuration>

Mapred-site.xml文件中的配置:

<configuration>

<!—mapreduce 基於yarn來實現離線計算的,基礎開關 -->

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

 

</configuration>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM