Hadoop 集羣搭建和維護文檔

1、前言 —— 基礎環境準備

節點名稱 IP NN DN JNN ZKFC ZK RM NM Master Worker
master1 192.168.8.106 * * * * * *
master2 192.168.8.236 * * * * * *
worker1 192.168.8.107 * * * * *
worker2 192.168.8.108 * * *
worker3 192.168.8.109 * * *
worker4 192.168.8.110 * * *
worker5 192.168.8.111 * * *
worker6 192.168.8.112 * * *
worker7 192.168.8.113 * * *

集羣規劃狀況如上圖所示:java

角色進程介紹:node

一、NN(NameNode)hadoop集羣中元數據管理的中心,對元數據信息,資源存儲信息等等內容進行管理(角色進程屬於hadoop)linux

二、DN(DataNode):負責hadoop集羣數據存儲的角色進程(角色進程屬於hadoop)web

三、JNN(journalNode):在高可用中會使用到的角色進程,主要做用就是用來解決NameNode數據同步問題,由於兩個NameNode之間是存在數據延遲的,當一個節點掛了以後,數據就會形成丟失,因此引入JournalNode集羣進行管理(角色進程屬於hadoop)shell

四、KFC(DFSZKFailoverController)hadoop中用來進行監控兩個NameNode是否健康,同事監視Zookeep集羣中的狀況,當一個NameNode掛了以後,他會將另外一個NameNodestandrBy置成active狀態(角色進程屬於hadoop)apache

五、ZK(QuorumPeerMain):該進程是ZOOKEEP進程(角色進程屬於ZOOKEEP)bootstrap

六、RM(ResourceManager):該進程主要負責的是集羣間的資源管理和資源調度(角色進程屬於yarnvim

七、NM(NodeManager):對計算資源進行彙報和申請,主要爲計算服務提供資源,因此該角色必須在DataNode所在的節點 (角色進程屬於yarn)centos

八、Master:該進程是Spark中的進程,主要是對計算任務進行管理,負責資源相關內容,負責監控spark集羣中的健康 (角色進程屬於spark架構

九、worker:該進程主要負責spark計算任務(角色進程屬於spark

系統環境 :centos7

所需安裝包:

一、hadoop-2.7.7.tar.gz
二、jdk-8u191-linux-x64.tar.gz

如上圖的集羣規劃先將Hadoop相關的基礎環境先進行搭建,在搭建以前須要首先完成的工做:

  1. 建立hadoop用戶和用戶組
  2. 配置jdk環境變量
  3. 配置hadoop環境變量
  4. 修改hadoop相關配置文件
  5. 進行修改相關免密登陸
$ useradd hadoop
$ passwd hadoop
$ su hadoop
$ tar -zxvf hadoop-2.7.7.tar.gz
$ tar -zxvf jdk-8u191-linux-x64.tar.gz

上面全部節點都須要建立hadoop用戶和用戶組配置jdk環境變量

/etc/profile設置環境變量

$ vim /etc/profile

#設置環境變量
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
export HADOOP_HOME=/home/hadoop/hadoop-2.7.7
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

$ source /etc/profile

設置完成以後進行驗證,是否設置成功

關閉全部節點防火牆並設置自啓動關閉

$ systemctl stop firewalld.service
$ systemctl disable firewalld.service

修改主機名和IP映射

/etc/hosts

192.168.8.236 master2
192.168.8.106 master1
192.168.8.107 worker1
192.168.8.108 worker2
192.168.8.109 worker3
192.168.8.110 worker4
192.168.8.111 worker5
192.168.8.112 worker6
192.168.8.113 worker7

/etc/sysconf/network:分別在不一樣機器上修改不一樣的主機名,主機名一旦修改後面不須要再改變

hostname master1 #分別在不一樣機器上進行修改
$ systemctl restart network #重啓網卡

​ 在搭建的過程中爲了不多種框架環境之間的影響形成很差驗證的狀況,儘可能仍是按照順序進行搭建,而且在完成一步以後就須要進行相關驗證,儘可能避免多環境錯誤相互影響!

2、Zookeep 集羣搭建

在高可用的環境搭建過程當中將會使用到Zookeep進行分佈式協調,下面對Zookeep集羣進行搭建

$ tar -zxvf zookeeper-3.4.13.tar.gz
$ vim /etc/profile
#環境變量配置(master一、master二、worker1)都須要進行配置
export ZOOKEEP_HOME=/home/hadoop/zookeeper-3.4.13
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEP_HOME/bin

$ source /etc/profile

Zookeep配置文件進行修改

/home/hadoop/zookeeper-3.4.13/conf/zoo.cfg,沒有該文件的換,複製./zoo_sample.cfg改下名字

dataDir=/data/zookeep			#給zk配置一個目錄用來存儲元數據,禁止使用/tmp
server.1=master1:2888:3888		
server.2=master2:2888:3888
server.3=worker1:2888:3888

完成上面配置以後,須要建立/data/zookeep目錄,而且將server.x中的x分別寫入到不一樣節點的

$ mkdir -p /data/zookeep
$ echo '1' > myid

上面配置須要再安裝了ZK的不一樣節點進行寫入,根據具體本身的配置目錄和序列號進行寫入

配置文件介紹:

端口介紹:在zk中提供服務的端口是2181,28883888這兩個端口分別是集羣間進行通信的端口和當集羣中leader節點掛了的時候進行通信的端口

server.[數字]配置介紹:在zk leader節點掛了時候將進行選舉,數字是權重值,權重越大的被選爲leader的可能性越大,可是在選舉過程當中還會參考另一個權重值,另外一個權重值主要記錄的是數據的多少,數據越多的節點選爲leader的概率越大

將``zk的包scp`到其餘節點

$ scp ./zookeeper-3.4.13 master2:`pwd`
$ scp ./zookeeper-3.4.13 worker1:`pwd`

配置完成以後進行啓動並驗證

$ zkServer.sh start		#啓動zk
$ zkServer.sh stop		#關閉zk
$ zkServer.sh status 	#查看狀態
$ zkCli.sh 				#進入zk終端

啓動完成以後將看到QuorumPeerMain進程,同時進入終端以後會看到zookeep目錄樹,同時三個節點分別查看狀態會發現,有一個leader和兩個fllower

$ jps			#查看java進程,查看QuorumPeerMain是否存在
$ zkCli.sh		#進入zk終端
$ ls /			#查看zk中的目錄樹,會發現zookeeper目錄

如上圖中所示,說明安裝成功

注意:zk在安裝完成以後,須要啓動zk集羣過半的數量以後才能向外提供服務,目前集羣規模只容許一臺節點掛掉

3、Hadoop 集羣搭建

一、免密登陸配置

在進行hadoop配置以前須要進行集羣間的免密登陸配置

主要是對master1master2進行相關配置

#在master1和master2節點記性免密登陸配置
 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa					#生成祕鑰
 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys			#cp公鑰到驗證文件中
 $ chmod 0600 ~/.ssh/authorized_keys

上面是對master1master2進行了自身免密配置

上面完成以後會在~目錄生成.ssh/的隱藏文件夾,須要分別將master1master2的公鑰發送到其餘節點,同時master1master2互相之間也須要進行免密配置

第一次在沒有生成祕鑰的狀況下是不會產生~/.ssh/目錄的,使用本身登錄本身能夠建立,也能夠本身建立

$ ssh localhost		#該操做會建立~/.ssh/目錄

如上在每一個節點都執行以後,就能夠將master1master2中的公鑰文件id_rsa.pub文件拷貝到其餘節點寫入authorized_keys文件中

列如worker1節點

$ scp ./id_rsa.pub worker1:`pwd`						#master1上執行
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys		#worker1執行
$ chmod 0600 ~/.ssh/authorized_keys 					#worker1執行

依次對其餘節點進行免密配置,配置完成以後須要從新打開終端,而後能夠在master1master2登陸其餘節點,此時不須要密碼就能登陸,這裏必定須要驗證,由於沒有免密登陸的狀況hadoop之間的腳本管理將起不到做用,必須保證免密是配置正確的

二、hadoop相關配置

下面如今Maser節點配置hadoop相關環境

/home/hadoop/hadoop-2.7.7/etc/hadoop/core.sitt.xml 文件配置

<!--修改hadoop tmp 目錄,禁止使用/tmp目錄,這裏使用的是掛在硬盤的目錄-->
<property>
   <name>hadoop.tmp.dir</name>
   <value>/data/hadoop/tmp</value>
</property>
<!--配置集羣名稱(根據後面hdfs.site.xml中的配置進行修改的-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>
<!--設置journalNode元數據保存路徑,這裏保存的是曾經單節點NameNode中的edit.log元數據信息-->
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/data/journalnode</value>
</property>
<!-- 配置集羣使用的zookeep集羣節點名稱和端口號 -->
<property>
  <name>ha.zookeeper.quorum</name>
  <value>master1:2181,master2:2181,worker1:2181</value>
</property>

/home/hadoop/hadoop-2.7.7/etc/hadoop/hdfs.site.xml文件配置

<!--設置副本數,通常最低三個副本-->
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<!--設置集羣名稱-->
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>
<!--設置主節點別名-->
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>
<!--主節點別名和IP(主機名)端口映射-->
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>master1:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>master2:8020</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>master1:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>master2:50070</value>
</property>
<!--JNN 集羣配置 -->
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://master1:8485;master2:8485;worker1:8485/mycluster</value>
</property>
<!-- 這裏直接抄過去 -->
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--配置ssh驗證-->
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<!--配置 rsa 祕鑰文件-->
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/hadoop/.ssh/id_rsa</value>
</property>

<!--是否開啓 HA 模式-->
 <property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
 </property>

/home/hadoop/hadoop-2.7.7/etc/hadoop/slaves文件配置(該文件配置的是DataNode所在節點的主機名或者IP

worker1
worker2
worker3
worker4
worker5
worker6
worker7

/home/hadoop/hadoop-2.7.7/etc/hadoop/hadoop-env.sh文件配置

export JAVA_HOME=/home/hadoop/jdk1.8.0_191

在該文件中找到JAVA_HOME環境變量並進行修改爲本身的JDK路徑

如上配置完成以後將整個包發送到各個節點

$ scp -r ./hadoop-2.7.7/ worker1:`pwd`		#列如worker1

完成包拷貝以後,能夠進行啓動看HA - Hadoop是否成功

三、hadoop和ZK整合和初始化

在對HDFS進行格式化以前必定要先將journalNode集羣啓動由於元數據將會保存在這個集羣中,

journalNode根據集羣規劃分別實在master1master2worker1

$ hadoop-daemon.sh start journalnode	#master一、master二、worker1節點上執行(啓動JNN)

NameNode格式化

master1或者master2上對NameNode進行格式化

$ hadoop namenode -format	#格式化

一個節點進行了格式化,另一個節點只須要進行元數據同步,不須要再進行一次格式化,若是有多個NameNode也是同樣的

$ hdfs namenode -h					#查看幫助命令
$ hdfs namenode -bootstrapstandby	#進行數據同步

格式化完成以後分別在master節點啓動NameNode

$ hadoop-daemon.sh start namenode

格式化完成以後須要進行ZKFC的格式化,ZKFC格式化主要是在zookeep集羣中生成一個目錄樹

$ yum -y install psmisc			#在格式化中須要依賴的包,有些老系統沒有這個包安裝一下
$ hdfs zkfc -formatZK

如上格式化完成以後會在ZK中生成一個hadoop-ha目錄樹

$ zkCli.sh 						#進入終端
$ ls  /							#終端輸入

只要在這一步出現了hadoop-ha說明配置成功

啓動HDFS,隨便在一個master節點上執行

$ start-dfs.sh				#啓動
$ jps						#在每個節點上檢查進程是否完整
注意:這裏在啓動或者格式化的過程當中,可能會出現有的文件權限不足的狀況,由於咱們是掛在的磁盤,可能其餘用戶不能讀寫操做,因此能夠根據本身的需求適當修改文件讀寫權限

在檢查進程的時候,能夠參考集羣規劃表中的進程數量,到這一步,除了spark的兩個角色進程yarn的兩個角色進程之外,其餘的進程是否按照預期出現,若是沒有說明搭建過程當中是存在問題的,若果進程都沒有問題,那麼能夠訪問http://master1:50070http//master2:50070,看是否能被訪問

四、驗證hadoop高可用是否生效

下面是對hadoop-HA進行驗證,經過訪問上面的兩個地址,將會看到以下兩個頁面:

master1

master2

這是正常的,那麼須要進行驗證的是高可用的可用性,也就是說他們中其中一臺掛了,服務都能繼續,能夠經過kill進程來達到效果,這裏說下影響到集羣可用性的進程

一、NameNode:進程結束服務就消失

二、ZKFC:該進程結束,對應的NameNode沒法和journalNode創建關係,沒法作數據同步,服務也將結束

三、journalNodejournalNode掛了,整個集羣歇菜,因此須要作高可用,這裏journalNode也是高可用的最多容許一臺掛

四、zkzk一旦掛了,那麼會影響到journalNode集羣和KFC,因此他掛了,其餘的也玩完,因此他也作了集羣,避免單點故障,一樣的最多容許一臺掛,固然這些集羣均可以擴充,只是如今不必

因此驗證的方式就是,上面的這些進程,隨便找一個master,一個一個kill看他是否能自動從standby切換到active能切換,說明配置就沒有問題,是生效的!

4、yarn高可用集羣搭建

一、yarn集羣搭建

上面的步驟確保正確的狀況下,下面進行配置yarn

/home/hadoop/hadoop-2.7.7/etc/hadoop/yarn.site.xml文件配置

<!--mapreduce shuffle配置-->
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>

<!--開啓HA模式-->
<property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
</property>
<!--設置yarn集羣名稱-->
<property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>cluster1</value>
</property>
<!--設置yarn集羣中resourcemanager別名,節點數量-->
<property>
  <name>yarn.resourcemanager.ha.rm-ids</name>
  <value>rm1,rm2</value>
</property>
<!--對yarn集羣中 resourcemanager 別名和集羣名稱進行相關映射-->
<property>
  <name>yarn.resourcemanager.hostname.rm1</name>
  <value>master1</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm2</name>
  <value>master2</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm1</name>
  <value>master1:8088</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm2</name>
  <value>master2:8088</value>
</property>
<!--設置zk集羣地址和端口號-->
<property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>master1:2181,master2:2181,worker1:2181</value>
</property>
<!--配置每一個節點每一個任務調度和使用最大能分配到的內存和CPU核心數-->
<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>92160</value>
</property>
<property>
  <name>yarn.scheduler.maximum-allocation-vcores</name>
  <value>32</value>
</property>
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
	<value>92160</value>
</property>
<property>
	<name>yarn.nodemanager.resource.cpu-vcores</name>
	<value>32</value>
</property>

/home/hadoop/hadoop-2.7.7/etc/hadoop/mapred.site.xml文件配置

<!--mapreduce在yarn集羣中進行調度配置-->
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>

如上配置完成以後yarn的基本配置基本上就完了,將這兩個文件發送到其餘節點

$ scp -r ./mapred.site.xml yarn.site.xml worker1:`pwd`		#如worker1

完成集羣間的上述文件替換以後啓動yarn集羣

$ ./start-yarn.sh			#啓動yarn集羣
$ ./stop-yarn.sh			#關閉yarn集羣
注意: 上述的命令只能關閉和開啓NodeManager角色進程,同時這裏啓動的時候是根據slaves文件中的配置進行啓動的 NodeManager,須要手動去到ResourceManager所在節點去啓動
$ ./hadoop-daemon.sh start resourcemanager		#啓動ResourceManager
$ ./hadoop-daemon.sh stop resourcemanager		#關閉ResourceManager

二、yarn集羣高可用測試和驗證

yarn服務地址http://master1:8088 OR http://master2:8088; http://worker1:8048(該地址是訪問node節點的)

如上訪問兩個地址,

master1

master2

如上出現了兩個訪問頁面,master1activemaster2standby狀態,在訪問的時候,當訪問standby狀態的節點的時候,他會自動重定向到active節點,跳轉完成以後再修改主機名ip就能進行訪問!

同時如今還須要查看zk中的狀態,進入終端

$ zkCli.sh			#進入終端
$ ls /				#查看目錄樹

這個時候回多出一個目錄樹yarn-leader-election說明配置也沒有問題,在zk中也進行了相關注冊,下面就能夠進行測試集羣的可用性了,在yarn集羣中,ResourceManager角色進程是比較關鍵的角色,他掛了就意味着yarn集羣沒法提供服務,因此,只須要模擬kill Resoucemanager的狀態,而後看master1master2狀態是否進行了相關切換,若是可以切換成功說明配置是沒有問題的

安裝到這裏須要查看各個節點的角色進程啓動狀況,是否和上面的集羣架構表中的同樣,若是正常說明搭建正常

這裏說一下,單獨把yarn提出來,由於HDFS能夠獨立於他進行運行,能夠當作不一樣組件,雖然他在hadoop包中

5、Spark 高可用集羣搭建

spark安裝包spark-2.4.0-bin-hadoop2.7.tgz

$ tar -xvf spark-2.4.0-bin-hadoop2.7.tgz
$ mv spark-2.4.0-bin-hadoop2.7 spark-2.4

/home/hadoop/spark-2.4.0/conf/slaves文件配置

worker1
worker2
worker3
worker4
worker5
worker6
worker7

/home/hadoop/spark-2.4.0/conf/spark-env.sh文件配置

export JAVA_HOME=/home/hadoop/jdk1.8.0_191
export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.7.7/etc/hadoop
export HADOOP_HOME=/home/hadoop/hadoop-2.7.7
export SPARK_MASTER_PORT=7077

export SPARK_MASTER_HOST=master1
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master1:2181,master2:2181,worker1:2181 -Dspark.deploy.zookeeper.dir=/spark"

在上述文件中進行設置相關的環境變量配置,最基礎的配置就是上述的這些內容:

SPARK_MASTER_HOST:改配置只須要在MASTER角色進程節點進行配置,同時在配置的時候要根據所在節點的真實地址進行設置,其餘節點能夠進行配置

SPARK_DAEMON_JAVA_OPTS:改配置中的參數介紹-Dspark.deploy.recoveryMode=ZOOKEEPER,該配置中有三個值,分別是ZOOKEEP(做用,使用ZK做爲服務發現)、NONE(做用,不作任何操做)、FILESYSTEM(做用,在不作高可用的狀況下,配置了以後,在計算過程當中宕機,再次啓動時他能盡力去根據記錄元數據信息恢復);-Dspark.deploy.zookeeper.url=master1:2181,master2:2181,worker1:2181該配置主要是設置ZK提供服務的節點和端口;-Dspark.deploy.zookeeper.dir=/spark改配置是在進行服務發現的時候在ZK中生成spark的一個文件木樹,用於保存高可用的一些元數據信息

上述內容設置完成以後,就能夠將配置的文件發送到各個節點,同時針對一些須要進行修改的內容,分別在不一樣節點進行修改,修改完成以後進行啓動,驗證是否配置正確,相關啓動命令都在/home/hadoop/spark-2.4.0/sbin目錄中,這裏不對spark進行環境變量的設置,由於他的啓動命令和HDFS的啓動命令部分重疊,避免發生衝突,固然也能夠去修改啓動命令文件名

$ ./start-master.sh				#分別在master1和master2啓動Master進程
$ ./start-slaves.sh				#在一個Master節點進行啓動全部slaves中配置的worker進程
$ ./stop-slaves.sh				#中止worker進程
$ ./stop-master.sh				#中止master進程

上述操做完成以後,啓動完成以後,就能夠查看各個節點角色進程是否和集羣規劃中的相同了,相同以後能夠訪問http://master1:8080http://master2:8080兩個地址

master1

master2

能夠從上圖中看出來,activestandby兩個狀態,對應的也能夠kill master進程,看是否會進行自動切換狀態

注意:在進行切換的時候,會有一段時間延遲,是由於集羣間有心跳檢測,通常在10秒鐘,10秒鐘進行一次檢測,這個時間不一樣集羣都是能夠進行調整的!因此只有檢測到集羣節點,或者進程不健康的時候纔會進行切換

到這裏能夠看下各個節點的進程:

master1

master2

worker1

worker2(其餘節點和這個節點進程相同)

上述的安裝過程基本上是安裝完成,下面來跑個測試例子,查看是否可以正常的進行工做。

提交到yarn集羣

$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 2g \
    --executor-memory 2g \
    --executor-cores 3 \
    --queue thequeue \  #這個參數不須要,這裏咱們沒有設置隊列相關的內容,因此會報錯,隊列是關閉的
    examples/jars/spark-examples*.jar \
    1

提交到master集羣

$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master spark://master1:7077,master2:7077 \
    --deploy-mode cluster \
    --driver-memory 2g \
    --executor-memory 2g \
    --executor-cores 3 \
    --name pi \
    examples/jars/spark-examples*.jar \
    1

這兩種提交方式,一種是在yarn集羣,能夠經過yarn提供的webUI進行查看任務進度,一種是經過是Spark,能夠經過sparkUI進行查看任務進度!

上面的例子是spark提供的測試例子,這個例子能跑同說明集羣運行基本正常

6、PID WORKER_DIR LOG 內容配置

在集羣開始正式工做以後,PIDWORKER_DIRLOG_DIR可能會由於這些內容影響到集羣的運行,默認集羣中全部的PID都是在/tmp目錄中的,這個目錄系統會根據心情進行刪除數據,這個時候可能會形成集羣沒法關閉等等問題,日誌,工做日誌這些會產生很是大的數據量,因此將其配置到掛在磁盤

一、hadoop相關配置文件修改

/home/hadoop/hadoop-2.7.7/etc/hadoop/hadoop-env.sh文件配置

export HADOOP_PID_DIR=/data/hadoop/pid
export HADOOP_LOG_DIR=/data/hadoop/logs

二、yarn相關配置文件修改

/home/hadoop/hadoop-2.7.7/etc/hadoop/yarn-env.sh文件配置

export YARN_PID_DIR=/data/hadoop/pid

三、spark相關配置文件修改

/home/hadoop/spark-2.4.0/conf/spark-env.sh文件配置

export SPARK_PID_DIR=/data/spark/pid
export SPARK_LOG_DIR=/data/spark/log
export SPARK_WORKER_DIR=/data/spark/application

配置完成重啓,查看是否正常安裝指定路徑建立

相關文章
相關標籤/搜索