安裝JDK,免金鑰,叢集Hadoop
阿新 • • 發佈:2022-03-20
一、linux下JDK的安裝
1. 下載並解壓
在官網 下載所需版本的 JDK,這裡我下載的版本為JDK 1.8 ,下載後進行解壓:
1 [root@linux01 ~]# tar -zxvf jdk-8u321-linux-x64.tar.gz
2. 設定環境變數
1 [root@linux01 ~]# vi /etc/profile
新增如下配置:(注意JDK資料夾名,不同版本解壓後文件名不同,與其版本號相同)
1 export JAVA_HOME=/usr/java/jdk1.8.0_321 2 export JRE_HOME=${JAVA_HOME}/jre 3 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib4 export PATH=${JAVA_HOME}/bin:$PATH
執行 source
命令,使得配置立即生效:
[root@linux01 ~]# source /etc/profile
檢查是否安裝成功
[root@linux01 ~]#java -version
顯示出對應的版本資訊則代表安裝成功。
java version "1.8.0_321" Java(TM) SE Runtime Environment (build 1.8.0_321-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
二、配置免密登入
2.1 生成密匙
在每臺主機上使用 ssh-keygen
命令生成公鑰私鑰對
[root@linux01 .ssh]#ssh-keygen -t dsa -f ~/.ssh/id_dsa
-t 指定金鑰型別,預設是 rsa ,可以省略。
-f 指定金鑰檔案儲存檔名。
那麼就會生成 id_rsa 和 id_rsa.pub 兩個祕鑰檔案,/root/.ssh目錄下ll命令可看。
接著又會提示你輸入兩次密碼(該密碼是你push檔案的時候要輸入的密碼),可以不輸入密碼,直接按回車(免金鑰嘛,就別密碼了,直接回車)。
2.2 免密登入
2.2.1 把公鑰分發到其他節點 :
1 [root@linux01 .ssh]# scp ./id_dsa.pub linux02:/root/.ssh/node01.pub2 [root@linux01 .ssh]# scp ./id_dsa.pub linux03:/root/.ssh/node01.pub
這樣在Linux02,03節點上/root/.ssh/目錄下都有node01.pub這個公鑰,可以去檢視,驗證是否成功。
2.2.2 將 linux01
的公鑰寫到本機和遠端機器的 ~/ .ssh/authorized_key
檔案中:
1 [root@linux01 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 2 [root@linux02 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 3 [root@linux03 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
可看到/root/.ssh目錄下多了一個authorized_keys,其內容與id_dsa.pub相同。
2.2.3 現在可以驗證登入了
1 [root@linux01 .ssh]# ssh linux02 2 [root@linux01 .ssh]# ssh linux03
結果會如下所示
1 [root@linux01 .ssh]# ssh linux02 Last login: Sat Mar 19 18:03:14 2022 from linux01 2 [root@linux02 ~]# exit logout Connection to linux02 closed. 3 [root@linux01 .ssh]# ssh linux03 Last login: Sat Mar 19 18:04:15 2022 from linux01 4 [root@linux03 ~]# exit logout Connection to linux03 closed.
三、Hadoop叢集搭建
3.1 修改配置
1. hadoop-env.sh
# 指定JDK的安裝位置
export JAVA_HOME=/usr/java/jdk1.8.0_321/
2. core-site.xml
1 <configuration> 2 <property> 3 <!--指定 namenode 的 hdfs 協議檔案系統的通訊地址--> 4 <name>fs.defaultFS</name> 5 <value>hdfs://hadoop001:8020</value> 6 </property> 7 <property> 8 <!--指定 hadoop 叢集儲存臨時檔案的目錄--> 9 <name>hadoop.tmp.dir</name> 10 <value>/home/hadoop/tmp</value> 11 </property> 12 </configuration>
3. hdfs-site.xml
<configuration> <property> <!--namenode 節點資料(即元資料)的存放位置,可以指定多個目錄實現容錯,多個目錄用逗號分隔--> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/namenode/data</value> </property> <property> <!--datanode 節點資料(即資料塊)的存放位置--> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/datanode/data</value> </property> <property> <!--指定hdfs儲存資料的副本數量--> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>linux02:50090</value> </property> </configuration>
4. yarn-site.xml
<configuration> <property> <!--配置 NodeManager 上執行的附屬服務。需要配置成 mapreduce_shuffle 後才可以在 Yarn 上執行 MapReduce 程式。--> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <!--resourcemanager 的主機名--> <name>yarn.resourcemanager.hostname</name> <value>hadoop001</value> </property> </configuration>
5. mapred-site.xml
<configuration> <property> <!--指定 mapreduce 作業執行在 yarn 上--> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
6. slaves
配置所有從屬節點的主機名或 IP 地址,每行一個。所有從屬節點上的 DataNode
服務和 NodeManager
服務都會被啟動。
1 linux02 2 linux03
3.2 分發程式
將 Hadoop 安裝包分發到其他兩臺伺服器,分發後建議在這兩臺伺服器上也配置一下 Hadoop 的環境變數。
[root@linux01 software]# scp -r ./hadoop-2.7.2 linux02:'pwd'
[root@linux01 software]# scp -r /usr/software/hadoop-2.7.2 linux03:/usr/software
以上兩行程式碼是相同作用,第一行中“./”中的點表示當前目錄,'pwd'表示路徑。