簡介
本文介紹了如何在天翼云上使用彈性云主機的Linux實例手工搭建Hadoop環境。Hadoop是一款由Apache基金會用Java語言開發的分布式開源軟件框架,用戶可以在不了解分布式底層細節的情況下,開發分布式程序,充分利用集群的能力進行高速運算和存儲。Hadoop的核心部件是HDFS(Hadoop Distributed File System)和MapReduce:
- HDFS:是一個分布式文件系統,可對應用程序數據進行分布式儲存和讀取。
- MapReduce:是一個分布式計算框架,MapReduce的核心思想是把計算任務分配給集群內的服務器執行。通過對計算任務的拆分(Map計算和Reduce計算),再根據任務調度器(JobTracker)對任務進行分布式計算。
前提條件
- 已購買一臺彈性云主機,且已為其綁定彈性公網IP。
- 彈性云主機所在安全組添加了如下表所示的安全組規則。
| 方向 | 類型 | 協議 | 端口/范圍 | 源地址 |
|---|---|---|---|---|
| 入方向 | IPv4 | TCP | 8088 | 0.0.0.0/0 |
| 入方向 | IPv4 | TCP | 50070 | 0.0.0.0/0 |
實施步驟
1、安裝JDK
a.登錄彈性云主機。
b.執行以下命令,下載jdk軟件包。
以jdk17為例,在列表中查看可用的JDK軟件包版本,以jdk-17_linux-x64_bin.tar.gz安裝包為例,執行以下命令。
wget //download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
c.解壓jdk安裝包到opt目錄下。
tar -xvf jdk-17_linux-x64_bin.tar.gz -C /opt/
d.配置環境變量。
vim /etc/profile
e.在底部添加以下內容。
#set java environment
export JAVA_HOME=/opt/jdk-17.0.x
export PATH=$PATH:$JAVA_HOME/bin
說明“jdk-17.0.x”表示jdk安裝包的具體版本,實際值需要從步驟3的返回值中獲取。
例如:jdk-17.0.8
f.按“Esc”退出編輯模式。
g.執行以下命令保存并退出。
:wq
h.執行以下命令使/etc/profile里的配置生效。
source /etc/profile
i.驗證安裝。
java -version
回顯信息如下表示jdk安裝成功。
java version "17.0.8" 2023-07-18 LTS
Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)
2、安裝Hadoop
a.執行以下命令,下載Hadoop軟件包。此處以2.10.1版本為例。
wget //mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
b.解壓Hadoop安裝包到opt目錄下。
tar -xvf hadoop-2.10.1.tar.gz -C /opt/
c.配置環境變量。
vim /etc/profile
d.在底部添加以下內容。
#set hadoop environment
export HADOOP_HOME=/opt/hadoop-2.10.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
e,按“Esc”退出編輯模式。
f.執行以下命令保存并退出。
:wq
g.執行以下命令使/etc/profile里的配置生效。
source /etc/profile
h.執行以下命令,修改配置文件yarn-env.sh和hadoop-env.sh中JAVA_HOME的路徑。
echo "export JAVA_HOME=/opt/jdk-17.0.8" >> /opt/hadoop-2.10.1/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/opt/jdk-17.0.8" >> /opt/hadoop-2.10.1/etc/hadoop/hadoop-env.sh
i.驗證安裝。
hadoop version
回顯信息如下所示表示Hadoop安裝成功。
Hadoop 2.10.1
Subversion //github.com/apache/hadoop -r 1827467c9a56f133025f28557bfc2c562d78e816
Compiled by centos on 2020-09-14T13:17Z
Compiled with protoc 2.5.0
From source with checksum 3114edef868f1f3824e7d0f68be03650
This command was run using /opt/hadoop-2.10.1/share/hadoop/common/hadoop-common-2.10.1.jar
3、配置Hadoop
a.修改Hadoop配置文件core-site.xml。
1.執行以下命令,進入編輯頁面。
vim /opt/hadoop-2.10.1/etc/hadoop/core-site.xml
2.輸入i,進入編輯模式。
3.在節點內,插入如下內容。
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop-2.10.1/tmp</value>
<description>location to store temporary files</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
4.按“Esc”退出編輯模式。
5.執行以下命令保存并退出。
:wq
b.修改Hadoop配置文件hdfs-site.xml。
1.執行以下命令,進入編輯頁面。
vim /opt/hadoop-2.10.1/etc/hadoop/hdfs-site.xml
2.輸入i,進入編輯模式。
3.在節點內,插入如下內容。
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop-2.10.1/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop-2.10.1/tmp/dfs/data</value>
</property>
4.按“Esc”退出編輯模式。
5.執行以下命令保存并退出。
:wq
4、配置SSH免密登錄
a.執行以下命令,創建公鑰和私鑰。
ssh-keygen -t rsa
按三次回車后回顯信息如下圖所示,表示創建公鑰和私鑰成功。

b.執行以下命令,將公鑰添加到authorized_keys文件中。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
5、啟動Hadoop
a.執行以下命令,初始化namenode。
hadoop namenode -format
b.依次執行以下命令,啟動Hadoop。
1.start-dfs.sh
在回顯信息中,依次輸入yes。

2.start-yarn.sh
回顯信息如下圖所示。

c.執行以下命令,可查看成功啟動的進程。
jps
成功啟動的進程如下所示。
9138 NameNode
9876 Jps
9275 DataNode
9455 SecondaryNameNode
d.打開瀏覽器訪問//服務器IP地址:8088和//服務器IP地址:50070。
若顯示如下界面,表示Hadoop環境搭建完成。

