2. 搭建Hadoop並設定ssh免密登入
目錄
一、 搭建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
也可以在我主頁找一下資源,我都上傳了的