1. 程式人生 > >Hadoop 系列(四)—— Hadoop 開發環境搭建

Hadoop 系列(四)—— Hadoop 開發環境搭建

一、前置條件

Hadoop 的執行依賴 JDK,需要預先安裝,安裝步驟見:

  • Linux 下 JDK 的安裝

二、配置免密登入

Hadoop 元件之間需要基於 SSH 進行通訊。

2.1 配置對映

配置 ip 地址和主機名對映:

vim /etc/hosts
# 檔案末尾增加
192.168.43.202  hadoop001

2.2 生成公私鑰

執行下面命令列生成公匙和私匙:

ssh-keygen -t rsa

3.3 授權

進入 ~/.ssh 目錄下,檢視生成的公匙和私匙,並將公匙寫入到授權檔案:

[root@@hadoop001 sbin]#  cd ~/.ssh
[root@@hadoop001 .ssh]# ll
-rw-------. 1 root root 1675 3 月  15 09:48 id_rsa
-rw-r--r--. 1 root root  388 3 月  15 09:48 id_rsa.pub
# 寫入公匙到授權檔案
[root@hadoop001 .ssh]# cat id_rsa.pub >> authorized_keys
[root@hadoop001 .ssh]# chmod 600 authorized_keys

三、Hadoop(HDFS)環境搭建

3.1 下載並解壓

下載 Hadoop 安裝包,這裡我下載的是 CDH 版本的,下載地址為:http://archive.cloudera.com/cdh5/cdh/5/

# 解壓
tar -zvxf hadoop-2.6.0-cdh5.15.2.tar.gz 

3.2 配置環境變數

# vi /etc/profile

配置環境變數:

export HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2
export  PATH=${HADOOP_HOME}/bin:$PATH

執行 source 命令,使得配置的環境變數立即生效:

# source /etc/profile

3.3 修改Hadoop配置

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

1. hadoop-env.sh

# JDK安裝路徑
export  JAVA_HOME=/usr/java/jdk1.8.0_201/

2. core-site.xml

<configuration>
    <property>
        <!--指定 namenode 的 hdfs 協議檔案系統的通訊地址-->
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop001:8020</value>
    </property>
    <property>
        <!--指定 hadoop 儲存臨時檔案的目錄-->
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
</configuration>

3. hdfs-site.xml

指定副本系數和臨時檔案儲存位置:

<configuration>
    <property>
        <!--由於我們這裡搭建是單機版本,所以指定 dfs 的副本系數為 1-->
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

4. slaves

配置所有從屬節點的主機名或 IP 地址,由於是單機版本,所以指定本機即可:

hadoop001

3.4 關閉防火牆

不關閉防火牆可能導致無法訪問 Hadoop 的 Web UI 介面:

# 檢視防火牆狀態
sudo firewall-cmd --state
# 關閉防火牆:
sudo systemctl stop firewalld.service

3.5 初始化

第一次啟動 Hadoop 時需要進行初始化,進入 ${HADOOP_HOME}/bin/ 目錄下,執行以下命令:

[root@hadoop001 bin]# ./hdfs namenode -format

3.6 啟動HDFS

進入 ${HADOOP_HOME}/sbin/ 目錄下,啟動 HDFS:

[root@hadoop001 sbin]# ./start-dfs.sh

3.7 驗證是否啟動成功

方式一:執行 jps 檢視 NameNodeDataNode 服務是否已經啟動:

[root@hadoop001 hadoop-2.6.0-cdh5.15.2]# jps
9137 DataNode
9026 NameNode
9390 SecondaryNameNode

方式二:檢視 Web UI 介面,埠為 50070

四、Hadoop(YARN)環境搭建

4.1 修改配置

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

1. mapred-site.xml

# 如果沒有mapred-site.xml,則拷貝一份樣例檔案後再修改
cp mapred-site.xml.template mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

2. yarn-site.xml

<configuration>
    <property>
        <!--配置 NodeManager 上執行的附屬服務。需要配置成 mapreduce_shuffle 後才可以在 Yarn 上執行 MapReduce 程式。-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

4.2 啟動服務

進入 ${HADOOP_HOME}/sbin/ 目錄下,啟動 YARN:

./start-yarn.sh

4.3 驗證是否啟動成功

方式一:執行 jps 命令檢視 NodeManagerResourceManager 服務是否已經啟動:

[root@hadoop001 hadoop-2.6.0-cdh5.15.2]# jps
9137 DataNode
9026 NameNode
12294 NodeManager
12185 ResourceManager
9390 SecondaryNameNode

方式二:檢視 Web UI 介面,埠號為 8088

更多大資料系列文章可以參見 GitHub 開源專案: 大資料入門指南