為了便於快速測試和體驗,就在本機環境中安裝 Hadoop。
后續如果要模擬真實的分布式環境,可以開3台 Linux 虛擬機,然后搭建分布式 Hadoop 集群,暫時擱置。
1 - 准備安裝包
到官網下載安裝包 http://hadoop.apache.org/releases.html,這里以 3.2.1 版本為例,下載 binary 二進制文件即可。
下載后,拷貝到本地安裝目錄,比如我拷貝到了 ~/bigdata/
目錄(這里的 ~
是當前用戶的 home 目錄)。
# 解壓安裝包到指定目錄
mkdir ~/bigdata
cp hadoop-3.2.1.tar.gz ~/bigdata
tar -zxf hadoop-3.2.1.tar.gz
# 查看 Hadoop 對本地庫的支持情況:
cd ~/bigdata/hadoop-3.2.1/ && ./bin/hadoop checknative

可以看到,從官網下載的安裝包,不支持 snappy、bzip2 等壓縮方式。如果有需要,我們可以自己重新編譯安裝包 ——
Hadoop - macOS 上編譯 Hadoop 3.2.1
2 - 准備配置文件
2.1 修改 core-site.xml
cd ~/bigdata/hadoop-3.2.1/etc/hadoop
vim core-site.xml
修改后的內容如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop:9000</value>
</property>
<!-- 緩沖區大小,根據服務器性能動態調整 -->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!-- 開啟垃圾桶機制,刪除掉的數據可以從垃圾桶中回收,單位分鍾 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
2.2 修改 hdfs-site.xml
cd ~/bigdata/hadoop-3.2.1/etc/hadoop
vim hdfs-site.xml
修改后的內容如下:
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop:50090</value>
</property>
<!-- 數據存儲位置,多個目錄用英文逗號隔開 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/Users/healchow/bigdata/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/Users/healchow/bigdata/data/hadoop/datanode</value>
</property>
<!-- 元數據操作日志、檢查點日志存儲目錄 -->
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:/Users/healchow/bigdata/data/hadoop/edits</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:/Users/healchow/bigdata/data/hadoop/snn/checkpoint</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:/Users/healchow/pebigdata/data/hadoop/snn/edits</value>
</property>
<!-- 臨時文件目錄 -->
<property>
<name>dfs.tmp.dir</name>
<value>file:/Users/healchow/bigdata/data/hadoop/tmp</value>
</property>
<!-- 文件切片的副本個數 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- HDFS 的文件權限 -->
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<!-- 每個 Block 的大小為128 MB,單位:KB -->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
2.3 修改 hadoop-env.sh
說明:在 macOS 系統下,可不用修改此文件。
如果是在 Linux 服務器中,需要如下執行:
# 查看 JAVA_HOME:
echo ${JAVA_HOME}
# 修改文件:
cd ~/bigdata/hadoop-3.2.1/etc/hadoop
vim hadoop-env.sh
把上面查看到的 Java 環境變量填進去,比如:
export JAVA_HOME=/bigdata/jdk1.8.0_202
2.4 修改 yarn-site.xml
cd ~/bigdata/hadoop-3.2.1/etc/hadoop
vim yarn-site.xml
修改后的內容如下:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
</configuration>
2.5 修改 mapred-site.xml
cd ~/bigdata/hadoop-3.2.1/etc/hadoop
vim mapred-site.xml
修改后的內容如下:
<configuration>
<!-- 設置歷史任務的主機和端口 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop:10020</value>
</property>
<!-- 設置網頁端的歷史任務的主機和端口 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop:19080</value>
</property>
</configuration>
2.6 修改 mapred-env.sh
說明:在 macOS 系統下,可不用修改此文件。
如果是在 Linux 服務器中,需要如下執行:
# 查看 JAVA_HOME:
echo ${JAVA_HOME}
# 修改文件:
cd ~/bigdata/hadoop-3.2.1/etc/hadoop
vim mapred-env.sh
把上面查看到的 Java 環境變量填進去,比如:
export JAVA_HOME=/bigdata/jdk1.8.0_202
3 - 配置 Hadoop 環境變量
3.1 修改本機的 profile 文件
vim ~/.bash_profile
# 添加如下內容:
export HADOOP_HOME=/Users/healchow/bigdata/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置完成之后,使配置文件立即生效:
source ~/.bash_profile
3.2 添加 host 信息
由於上面的文件中,我們用了 hadoop
作為主機名,所以要把它設置到 /etc/hosts
中:
sudo vim /etc/hosts
# 添加如下內容:
127.0.0.1 hadoop
4 - 啟動 Hadoop 集群
要啟動 Hadoop 集群,需要啟動 HDFS 和 YARN 兩個模塊。
首次啟動 HDFS 時,必須對其進行格式化操作 —— 一些必要的清理和准備工作,因為此時的 HDFS 文件系統物理上並不存在。
# 先格式化操作:
cd ~/bigdata/hadoop-3.2.1/
# 格式化命令:
bin/hdfs namenode -format # 或:bin/hadoop namenode –format
啟動集群:
# 啟動 HDFS:
sbin/start-dfs.sh
# 啟動 Yarn:
sbin/start-yarn.sh
# 啟動 HistoryServer:
sbin/mr-jobhistory-daemon.sh start historyserver
# 注意:上述命令已過時,應使用此命令啟動 HistoryServer:
bin/mapred --daemon start historyserver
啟動后,可通過 jps
命令查看運行的 Java 進程:

停止集群,按照與啟動過程相反的順序,執行停止命令:
bin/mapred --daemon stop historyserver
sbin/stop-yarn.sh
sbin/stop-dfs.sh
5 - 查看集群頁面
1)查看 HDFS 頁面:http://hadoop:50070/explorer.html#/

2)查看 Yarn 頁面:http://hadoop:8088/cluster

3)查看 HistoryServer 歷史任務頁面:http://hadoop:19080/jobhistory

版權聲明
出處:博客園-瘦風的南牆(https://www.cnblogs.com/shoufeng)
感謝閱讀,公眾號 「瘦風的南牆」 ,手機端閱讀更佳,還有其他福利和心得輸出,歡迎掃碼關注🤝
本文版權歸博主所有,歡迎轉載,但 [必須在頁面明顯位置標明原文鏈接],否則博主保留追究相關人士法律責任的權利。