HDFS 02 - macOS 系統安裝 HDFS(Apache Hadoop 3.2.1)


為了便於快速測試和體驗,就在本機環境中安裝 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://healchow.com)

出處:博客園-瘦風的南牆(https://www.cnblogs.com/shoufeng)

感謝閱讀,公眾號 「瘦風的南牆」 ,手機端閱讀更佳,還有其他福利和心得輸出,歡迎掃碼關注🤝

本文版權歸博主所有,歡迎轉載,但 [必須在頁面明顯位置標明原文鏈接],否則博主保留追究相關人士法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM