1. 程式人生 > 其它 >2. 搭建Hadoop並設定ssh免密登入

2. 搭建Hadoop並設定ssh免密登入

技術標籤:spark學習之路hadoop大資料linux

目錄

一、 搭建Hadoop

1. 下載Hadoop的.tgz檔案

2. 傳到Linux並解壓到制定資料夾

3. 配置環境變數

4. 用source使之立刻生效

5. 驗證安裝成功

6. 修改配置檔案

7. 關閉防火牆

8. 初始化

9.啟動HDFS和YARN

10. 驗證是否啟動成功

二、 設定SSH免密登入

1. 作用

2. 步驟

2.1 每臺機器上配置IP

2.2 建立本地祕鑰並將公共祕鑰寫入認證檔案

三、 最後附上資源


一、 搭建Hadoop

1. 下載Hadoop的.tgz檔案

2. 傳到Linux並解壓到制定資料夾

sudotar-zxvfhadoop-2.10.1.tar.gz-C/usr/local/lib/Hadoop

在此之前,建立單獨的目錄

sudo mkdir /usr/local/lib/Hadoop

3. 配置環境變數

vim /etc/profile
export HADOOP_HOME=/usr/local/lib/Hadoop/hadoop-2.10.1

export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

4. 用source使之立刻生效

source/etc/profile

5. 驗證安裝成功

hadoop version

6. 修改配置檔案

進入 ${HADOOP_HOME}/etc/hadoop/ 目錄下,修改以下配置:

6.1 hadoop-env.sh(配置環境變數)

#25行

export JAVA_HOME=/usr/local/lib/java/jdk1.8.0_181

#33行

export HADOOP_CONF_DIR=/usr/local/lib/Hadoop/hadoop-2.10.1/etc/hadoop

6.2 core-site.xml(核心配置檔案)

<configuration>
 <!--預設檔案系統的名稱 -->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://nitgod01:9000</value>
 </property>
 <!--指定HDFS執行時的臨時目錄 -->
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/usr/local/lib/Hadoop/data/tmp</value>
 </property>
</configuration>

6.3 hdfs-site.xml(HDFS的節點配置)

指定副本系數、namenode、datanode檔案存放位置和hdfs操作許可權:

<configuration>

 <property>

 <!--指定hdfs儲存資料副本的數量,包括自己,預設為3-->

 <!--偽分散式模式的話,此值必須為1-->

 <name>dfs.replication</name>

 <value>3</value>

 </property>

 <property>

 <!--namenode檔案存放位置,可以指定多個目錄實現容錯,用逗號分隔-->

 <name>dfs.namenode.name.dir</name>
          <value>file: /usr/local/lib/Hadoop/dfs/namenode_data</value>

 </property>

 <property>

 <!--datanode檔案存放位置-->

 <name>dfs.datanode.data.dir</name>

 <value>file: /usr/local/lib/Hadoop/dfs/datanode_data</value>

 </property>

 <property>

 <!--設定hdfs操作許可權,false表示任何使用者都可以在hdfs上操作檔案-->

 <name>dfs.permissions</name>

 <value>false</value>

 </property>

</configuration>

6.4 mapred-site.xml(配置MapReduce)

<configuration>
 <property>
 <!--指定mapreduce執行在yarn上-->
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
</configuration>

6.5 yarn-site.xml(配置YARN的節點資訊)

<configuration>

 <property>

 <!--指定yarn的老大resourcemanager的地址-->

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

 <value>nitgod01</value>

 </property>

 <property>

 <!--NodeManager獲取資料的方式-->

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

 <value>mapreduce_shuffle</value>

 </property>

 <property> 

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

 <value>nitgod01:8088</value> 

 </property> 

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

</configuration>

6.6 slaves(配置所有從屬節點的主機名或 IP 地址)

nitgod01
nitgod02
nitgod03

7. 關閉防火牆

#檢視防火牆狀態

sudofirewall-cmd--state

(如果sudo: firewall-cmd:找不到命令,則說明防火牆沒裝,不需要關閉)

#關閉防火牆:

sudosystemctlstopfirewalld.service

8. 初始化

cd${HADOOP_HOME}/bin
sudo./hdfsnamenode-format 
#或 sudo./hadoopnamenode-format

9.啟動HDFS和YARN

cd${HADOOP_HOME}/sbin
sudo./start-dfs.sh
sudo./start-yarn.sh

10. 驗證是否啟動成功

方法一:執行 jps 檢視 NameNode 、 DataNode、SecondaryNameNode、ResourceManager、NodeManager 服務是否已經啟動:

sudo /jdk路徑/bin/jps
11637ResourceManager
11734NodeManager
11241DataNode
11146NameNode
12075Jps
11436SecondaryNameNode

方法二:訪問HDFS和YARN的web UI頁面是否啟動

訪問nitgod01:50070 HDFS頁面

訪問nitgod01:8088 YARN頁面

其中,nitgod01是我主節點的主機名/IP

二、 設定SSH免密登入

Hadoop搭建好後,啟動時總需要輸入從節點的密碼。一般設定ssh免密登入

1. 作用

配置ssh免密登入後就不需要每次啟動節點都輸入密碼了

2. 步驟

2.1 每臺機器上配置IP

vim /etc/hosts
192.168.186.128 nitgod01

192.168.186.129 nitgod02

192.168.186.130 nitgod03

2.2 建立本地祕鑰並將公共祕鑰寫入認證檔案

1. 每臺機器建立私鑰,公鑰(為系統當前使用者生成)

ssh-keygen -t rsa -P ''

這時~/.ssh目錄下會生成私鑰和公鑰的鍵值對 id_rsa 和 id_rsa.pub

(rsa和dsa是兩種加密方式)

2.將公鑰寫入認證檔案authorized_keys中,cat是把文字內容拷貝到文章末

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

不過我死活搞不好,所以直接手動把私鑰檔案整合了

1. 找到/root/.ssh下的id_rsa.pub(儲存的是每臺機器的私鑰,用rsa加密的)

2. 把每個節點id_rsa.pub裡面內容整合在一起(到authorized_keys中)

2. 將整合完的authorized_keys檔案覆蓋到各節點

三、 最後附上資源

hadoop-2.10.1.tar:連結:https://pan.baidu.com/s/1SAeIovLq_8t71V-p0LsxnQ提取碼:j5cp

也可以在我主頁找一下資源,我都上傳了的