當前位置:首頁 » 存儲配置 » yarn如何全局安裝配置

yarn如何全局安裝配置

發布時間: 2022-07-26 19:32:44

⑴ ubuntu怎麼安裝hadoop yarn

本教程基於原生 Hadoop 2,在 Hadoop 2.6.0 (stable) 版本下驗證通過,可適合任何 Hadoop 2.x.y 版本,例如 Hadoop 2.4.1。
Hadoop版本
Hadoop 有兩個主要版本,Hadoop 1.x.y 和 Hadoop 2.x.y 系列,比較老的教材上用的可能是 0.20 這樣的版本。Hadoop 2.x 版本在不斷更新,本教程均可適用。如果需安裝 0.20,1.2.1這樣的版本,本教程也可以作為參考,主要差別在於配置項,配置請參考官網教程或其他教程。
新版是兼容舊版的,書上舊版本的代碼應該能夠正常運行(我自己沒驗證,歡迎驗證反饋)。

⑵ yarn npm包安裝 為什麼需要超級管理員

arn 採用的解決方式是,引入了一個 yarn.lock 文件來應對這個問題。lock 機制在很多包管理中都有用到。例如 ruby 的 rubygems 就會生成 Gemfile.lock. yarn.lock 會記錄你安裝的所有大大小小的。

⑶ 如何規劃和配置YARN和MapRece 2

arn 的優點:
這個設計大大減小了 JobTracker(也就是現在的 ResourceManager)的資源消耗,並且讓監測每一個 Job 子任務 (tasks) 狀態的程序分布式化了,更安全、更優美。
在新的 Yarn 中,ApplicationMaster 是一個可變更的部分,用戶可以對不同的編程模型寫自己的 AppMst,讓更多類型的編程模型能夠跑在 Hadoop 集群中,可以參考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。
對於資源的表示以內存為單位 ( 在目前版本的 Yarn 中,沒有考慮 cpu 的佔用 ),比之前以剩餘 slot 數目更合理。
老的框架中,JobTracker 一個很大的負擔就是監控 job 下的 tasks 的運行狀況,現在,這個部分就扔給 ApplicationMaster 做了,而 ResourceManager 中有一個模塊叫做 ApplicationsMasters( 注意不是 ApplicationMaster),

⑷ 安裝hadoop的步驟有哪些

hadoop2.0已經發布了穩定版本了,增加了很多特性,比如HDFSHA、YARN等。最新的hadoop-2.4.1又增加了YARNHA

注意:apache提供的hadoop-2.4.1的安裝包是在32位操作系統編譯的,因為hadoop依賴一些C++的本地庫,
所以如果在64位的操作上安裝hadoop-2.4.1就需要重新在64操作系統上重新編譯
(建議第一次安裝用32位的系統,我將編譯好的64位的也上傳到群共享里了,如果有興趣的可以自己編譯一下)

前期准備就不詳細說了,課堂上都介紹了
1.修改Linux主機名
2.修改IP
3.修改主機名和IP的映射關系
######注意######如果你們公司是租用的伺服器或是使用的雲主機(如華為用主機、阿里雲主機等)
/etc/hosts裡面要配置的是內網IP地址和主機名的映射關系
4.關閉防火牆
5.ssh免登陸
6.安裝JDK,配置環境變數等

集群規劃:
主機名 IP 安裝的軟體 運行的進程
HA181 192.168.1.181 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA182 192.168.1.182 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA183 192.168.1.183 jdk、hadoop ResourceManager
HA184 192.168.1.184 jdk、hadoop ResourceManager
HA185 192.168.1.185 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA186 192.168.1.186 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA187 192.168.1.187 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain

說明:
1.在hadoop2.0中通常由兩個NameNode組成,一個處於active狀態,另一個處於standby狀態。ActiveNameNode對外提供服務,而StandbyNameNode則不對外提供服務,僅同步activenamenode的狀態,以便能夠在它失敗時快速進行切換。
hadoop2.0官方提供了兩種HDFSHA的解決方案,一種是NFS,另一種是QJM。這里我們使用簡單的QJM。在該方案中,主備NameNode之間通過一組JournalNode同步元數據信息,一條數據只要成功寫入多數JournalNode即認為寫入成功。通常配置奇數個JournalNode
這里還配置了一個zookeeper集群,用於ZKFC(DFSZKFailoverController)故障轉移,當ActiveNameNode掛掉了,會自動切換StandbyNameNode為standby狀態
2.hadoop-2.2.0中依然存在一個問題,就是ResourceManager只有一個,存在單點故障,hadoop-2.4.1解決了這個問題,有兩個ResourceManager,一個是Active,一個是Standby,狀態由zookeeper進行協調
安裝步驟:
1.安裝配置zooekeeper集群(在HA185上)
1.1解壓
tar-zxvfzookeeper-3.4.5.tar.gz-C/app/
1.2修改配置
cd/app/zookeeper-3.4.5/conf/
cpzoo_sample.cfgzoo.cfg
vimzoo.cfg
修改:dataDir=/app/zookeeper-3.4.5/tmp
在最後添加:
server.1=HA185:2888:3888
server.2=HA186:2888:3888
server.3=HA187:2888:3888
保存退出
然後創建一個tmp文件夾
mkdir/app/zookeeper-3.4.5/tmp
再創建一個空文件
touch/app/zookeeper-3.4.5/tmp/myid
最後向該文件寫入ID
echo1>/app/zookeeper-3.4.5/tmp/myid
1.3將配置好的zookeeper拷貝到其他節點(首先分別在HA186、HA187根目錄下創建一個weekend目錄:mkdir/weekend)
scp-r/app/zookeeper-3.4.5/HA186:/app/
scp-r/app/zookeeper-3.4.5/HA187:/app/

注意:修改HA186、HA187對應/weekend/zookeeper-3.4.5/tmp/myid內容
HA186:
echo2>/app/zookeeper-3.4.5/tmp/myid
HA187:
echo3>/app/zookeeper-3.4.5/tmp/myid

2.安裝配置hadoop集群(在HA181上操作)
2.1解壓
tar-zxvfhadoop-2.4.1.tar.gz-C/weekend/
2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目錄下)
#將hadoop添加到環境變數中
vim/etc/profile
exportJAVA_HOME=/app/jdk1.7.0_79
exportHADOOP_HOME=/app/hadoop-2.4.1
exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
cd/home/hadoop/app/hadoop-2.4.1/etc/hadoop

2.2.1修改hadoop-env.sh
exportJAVA_HOME=/app/jdk1.7.0_79

2.2.2修改core-site.xml
<configuration>
<!--指定hdfs的nameservice為ns1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>
</property>
<!--指定hadoop臨時目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-2.4.1/tmp</value>
</property>

<!--指定zookeeper地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
</configuration>

2.2.3修改hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice為ns1,需要和core-site.xml中的保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!--ns1下面有兩個NameNode,分別是nn1,nn2-->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>HA181:9000</value>
</property>
<!--nn1的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>HA181:50070</value>
</property>
<!--nn2的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>HA182:9000</value>
</property>
<!--nn2的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>HA182:50070</value>
</property>
<!--指定NameNode的元數據在JournalNode上的存放位置-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://HA185:8485;HA186:8485;HA187:8485/ns1</value>
</property>
<!--指定JournalNode在本地磁碟存放數據的位置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/app/hadoop-2.4.1/journaldata</value>
</property>
<!--開啟NameNode失敗自動切換-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置失敗自動切換實現方式-->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.</value>
</property>
<!--配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!--使用sshfence隔離機制時需要ssh免登陸-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!--配置sshfence隔離機制超時時間-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

2.2.4修改mapred-site.xml
<configuration>
<!--指定mr框架為yarn方式-->
<property>
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
</configuration>

2.2.5修改yarn-site.xml
<configuration>
<!--開啟RM高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定RM的clusterid-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!--指定RM的名字-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--分別指定RM的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>HA183</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>HA184</value>
</property>
<!--指定zk集群地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
</configuration>


2.2.6修改slaves(slaves是指定子節點的位置,因為要在HA181上啟動HDFS、在HA183啟動yarn,
所以HA181上的slaves文件指定的是datanode的位置,HA183上的slaves文件指定的是nodemanager的位置)
HA185
HA186
HA187

2.2.7配置免密碼登陸
#首先要配置HA181到HA182、HA183、HA184、HA185、HA186、HA187的免密碼登陸
#在HA181上生產一對鑰匙
ssh-keygen-trsa
#將公鑰拷貝到其他節點,包括自己
ssh--idHA181
ssh--idHA182
ssh--idHA183
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#配置HA183到HA184、HA185、HA186、HA187的免密碼登陸
#在HA183上生產一對鑰匙
ssh-keygen-trsa
#將公鑰拷貝到其他節點
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#注意:兩個namenode之間要配置ssh免密碼登陸,別忘了配置HA182到HA181的免登陸
在HA182上生產一對鑰匙
ssh-keygen-trsa
ssh--id-iHA181

2.4將配置好的hadoop拷貝到其他節點
scp-r/app/hadoop-2.5.1/HA182:/app/
scp-r/app/hadoop-2.5.1/HA183:/app/
scp-r/app/hadoop-2.5.1/HA184:/app/
scp-r/app/hadoop-2.5.1/HA185:/app/
scp-r/app/hadoop-2.5.1/HA186:/app/
scp-r/app/hadoop-2.5.1/HA187:/app/
###注意:嚴格按照下面的步驟
2.5啟動zookeeper集群(分別在HA185、HA186、tcast07上啟動zk)
cd/app/zookeeper-3.4.5/bin/
./zkServer.shstart
#查看狀態:一個leader,兩個follower
./zkServer.shstatus

2.6啟動journalnode(分別在在HA185、HA186、HA187上執行)
cd/app/hadoop-2.5.1
hadoop-daemon.shstartjournalnode
#運行jps命令檢驗,HA185、HA186、HA187上多了JournalNode進程
2.7格式化ZKFC(在HA181上執行即可) hdfszkfc-formatZK
2.8格式化HDFS
#在HA181上執行命令:
hdfsnamenode-format
#格式化後會在根據core-site.xml中的hadoop.tmp.dir配置生成個文件,這里我配置的是/app/hadoop-2.4.1/tmp,然後將/weekend/hadoop-2.4.1/tmp拷貝到HA182的/weekend/hadoop-2.4.1/下。
scp-rtmp/HA182:/app/hadoop-2.5.1/
##也可以這樣,建議hdfsnamenode-bootstrapStandby



2.9啟動HDFS(在HA181上執行)
sbin/start-dfs.sh

2.10啟動YARN(#####注意#####:是在HA183上執行start-yarn.sh,把namenode和resourcemanager分開是因為性能問題,因為他們都要佔用大量資源,所以把他們分開了,他們分開了就要分別在不同的機器上啟動)
sbin/start-yarn.sh


到此,hadoop-2.4.1配置完畢,可以統計瀏覽器訪問:
http://192.168.1.181:50070
NameNode'HA181:9000'(active)
http://192.168.1.182:50070
NameNode'HA182:9000'(standby)

驗證HDFSHA
首先向hdfs上傳一個文件
hadoopfs-put/etc/profile/profile
hadoopfs-ls/
然後再kill掉active的NameNode
kill-9<pidofNN>
通過瀏覽器訪問:http://192.168.1.182:50070
NameNode'HA182:9000'(active)
這個時候HA182上的NameNode變成了active
在執行命令:
hadoopfs-ls/
-rw-r--r--3rootsupergroup19262014-02-0615:36/profile
剛才上傳的文件依然存在!!!
手動啟動那個掛掉的NameNode
sbin/hadoop-daemon.shstartnamenode
通過瀏覽器訪問:http://192.168.1.181:50070
NameNode'HA181:9000'(standby)

驗證YARN:
運行一下hadoop提供的demo中的WordCount程序:
hadoopjarshare/hadoop/maprece/hadoop-maprece-examples-2.4.1.jarwordcount/profile/out

OK,大功告成!!!
CID-74d21742-3e4b-4df6-a99c-d52f703b49c0



測試集群工作狀態的一些指令:
bin/hdfsdfsadmin-report 查看hdfs的各節點狀態信息


bin/hdfshaadmin-getServiceStatenn1 獲取一個namenode節點的HA狀態

sbin/hadoop-daemon.shstartnamenode單獨啟動一個namenode進程


./hadoop-daemon.shstartzkfc單獨啟動一個zkfc進程

⑸ yarn 如何更新所有的依賴包到最新版本

yarn install --force

⑹ 如何搭建內網yarn

工具/原料

兩台及以上電腦,並且安裝網卡

集線器或路由器

具備組網的其它必備設備

方法/步驟

根據物理位置和距離情況,製作若干根網線,並且通過測試確保網線的連通性。在製作網線方面,有兩種布線方式,一種是平行布線方式,適合不同種類的設備進行互聯時;另一種是交叉布線方式,適合同一類型設備之間的互聯。現在大部分設備都能識別平行和交叉布線方式。

利用網線將集線器或路由器的LAN口與電腦網卡介面連接起來。尤其對於路由器,為了組建區域網,確定所有的LAN介面與電腦網卡相連。

確保各個電腦的網卡驅動安裝正常。測試方法:打開「運行」對話框,輸入命令「ping 127.0.0.1 -t",如下出現如下界面提示,表明安裝正常。否則下載相應的最新驅動重新安裝。

設置各電腦的IP地址,一般來說,對於區域網用戶,IP地址推薦的范圍是「192.168.1.1」至「192.168.1.254」,對於每台電腦,都應該指定在該范圍內且唯一的IP,子網掩碼:「255.255.255.0」,其它各項按默認處理。IP地址的設置方法:右擊「本地連接」,進入「本地連接 屬性」對話框,雙擊「Internet 協議版本4(Tcp/IP)」,打開設置對話框 ,輸入IP地址和子網掩碼。

在各電腦的IP設置完成後,就進行各計算機之間的互通性測試。測試方法:打開「運行」對話框,在任意一台計算機上通過命令「ping 192.168.1.X」(X代表任意一台計算機制IP最後一組數字)來測試,如果出現如下界面,說明網路已連接。至此,整個區域網就搭建完成。

對於區域網中電腦的數量多於集線器或路由器介面數量的情況,可採用多個集線器或路由器相連的方式來擴展網路范圍。具體作法是:集線器或路由器之間通過LAN口相連接即可擴展網路,唯一需要注意的是路由器的WAN口不要用作擴展網路的介面,該介面的作用是用於連接ADSL或寬頻。

END
注意事項

對於組網設置為其它的情況,應根據實現設備情況進行操作,但基本原理和過程基本是一樣的。

對於想通過組建區域網來達到共享上網目地的,聯網設備建議選擇路由器,同時將ADSL或寬頻的介面與路由器的WAN相連,路由器的其它介面LAN與電腦相連就可以了。

在組建區域網過程中,合理使用Ping命令,以確保網路的暢通。

⑺ win10下 yarn進程的環境變數怎樣設置 要運行RANCHER項目

可以通過配置以下Yarn的信息,另外運行ResourceManager守護進程和NodeManager守護進程來進行一個偽分布的MapRece作業。

⑻ YARN到底是怎麼一回事

YARN的編程模型
1:保證編程模型的向下兼容性,MRv2重用了MRv1的編程模型和數據處理引擎,但運行環境被重寫。
2:編程模型與數據處理引擎
maprece應用程序編程介面有兩套:新的API(mapred)和舊的API(maprece)
採用MRv1舊的API編寫的程序可直接運行在MRv2上
採用MRv1新的API編寫的程序需要使用MRv2編程庫重新編譯並修改不兼容的參數 和返回值
3:運行時環境
MRv1:Jobracker和Tasktracker
MRv2:YARN和ApplicationMaster

YARN的組成
yarn主要由ResourceManager,NodeManager,ApplicationMaster和Container等幾個組件組成。
ResourceManager(RM)
RM是全局資源管理器,負責整個系統的資源管理和分配。
主要由兩個組件組成:調度器和應用 程序管理器(ASM)
調度器
調度器根據容量,隊列等限制條件,將系統中的資源分配給各個正在運行的應用程序
不負責具體應用程序的相關工作,比如監控或跟蹤狀態
不負責重新啟動失敗任務
資源分配單位用「資源容器」resource Container表示
Container是一個動態資源分配單位,它將內存,CPU,磁碟,網路等資源封裝在一起,從而限定每個任務的資源量
調度器是一個可插拔的組件,用戶可以自行設計
YARN提供了多種直接可用的調度器,比如fair Scheler和Capacity Scheler等。
應用程序管理器
負責管理整個系統中所有應用程序
ApplicationMaster(AM)
用戶提交的每個應用程序均包含一個AM
AM的主要功能
與RM調度器協商以獲取資源(用Container表示)
將得到的任務進一步分配給內部的任務
與NM通信以自動/停止任務
監控所有任務運行狀態,並在任務運行失敗時重新為任務申請資源以重啟任務
當前YARN自帶了兩個AM實現
一個用於演示AM編寫方法的實常式序distributedshell
一個用於Maprece程序---MRAppMaster
其他的計算框架對應的AM正在開發中,比如spark等。
Nodemanager(NM)和Container
NM是每個節點上的資源和任務管理器
定時向RM匯報本節點上的資源使用情況和各個Container的運行狀態
接收並處理來自AM的Container啟動/停止等各種要求
Container是YARN中的資源抽象,它封裝了某個節點上的多維度資源
YARN會為每個任務分配一個Container,且改任務只能使用該Container中描述的資源
Container不同於MRv1的slot,它是一個動態資源劃分單位,是根據應用程序的需求動態產生的
YARN主要由以下幾個協議組成
ApplicationClientProtocol
Jobclient通過該RPC協議提交應用才程序,查詢應用程序狀態等

Admin通過該協議更新系統配置文件,比如節點黑名單,用戶隊列許可權等。
ApplicationMasterProtocol
AM通過該RPC協議想RM注冊和撤銷自己,並為各個任務申請資源
ContainerManagementProtocol
AM通過要求NM啟動或者停止Container,獲取各個Container的使用狀態等信息
ResourceTracker
NM通過該RPC協議向RM注冊,並定時發送心跳信息匯報當前節點的資源使用情況和Container運行狀況
YARN的工作流程
文字描述一下這個過程:
1:由客戶端提交一個應用,由RM的ASM接受應用請求
提交過來的應用程序包括哪些內容:
a:ApplicationMaster
b:啟動Applicationmaster的命令
c:本身應用程序的內容
2:提交了三部分內容給RM,然後RM找NodeManager,然後
Nodemanager就啟用Applicationmaster,並分配Container

接下來我們就要執行這個任務了,
3:但是執行任務需要資源,所以我們得向RM的ASM申請執行任務的資源(它會在RM這兒注冊一下,說我已經啟動了,注冊了以後就可以通過RM的來管理,我們用戶也可以通過RM的web客戶端來監控任務的狀態)ASM只是負責APplicationMaster的啟用
4::我們注冊好了後,得申請資源,申請資源是通過第四步,向ResourceScheler申請的
5:申請並領取資源後,它會找Nodemanager,告訴他我應經申請到了,然後Nodemanager判斷一下,
6:知道他申請到了以後就會啟動任務,當前啟動之前會准備好環境,
7:任務啟動以後會跟APplicationmaster進行通信,不斷的心跳進行任務的匯報。
8:完成以後會給RM進行匯報,讓RSM撤銷注冊。然後RSM就會回收資源。當然了,我們是分布式的,所以我們不會只跟自己的Nodemanager通信。也會跟其他的節點通信。

熱點內容
centos使用python 發布:2024-05-18 23:39:48 瀏覽:867
幻影天龍腳本 發布:2024-05-18 23:38:17 瀏覽:712
編程的py 發布:2024-05-18 23:36:22 瀏覽:74
安卓系統怎麼改序列號 發布:2024-05-18 23:28:16 瀏覽:783
c語言中實數 發布:2024-05-18 23:21:03 瀏覽:895
伺服器搭建題目 發布:2024-05-18 23:01:29 瀏覽:28
下載武裝突襲後怎麼進伺服器 發布:2024-05-18 22:56:17 瀏覽:825
c語言字元串大寫變小寫 發布:2024-05-18 22:56:16 瀏覽:438
重啟刪除的文件夾 發布:2024-05-18 22:34:11 瀏覽:638
視頻軟體源碼 發布:2024-05-18 22:22:24 瀏覽:429