Hadoop是一個開源的分布式計算框架,廣泛應用于大數據處理。它由Apache基金會開發,旨在處理海量數據的存儲和計算。Hadoop的核心組件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS負責數據的分布式存儲,而MapReduce則負責數據的分布式計算。
搭建Hadoop環境是學習和使用Hadoop的第一步。本文將詳細介紹如何在Linux系統上搭建Hadoop環境,包括單節點和偽分布式集群的搭建。
在開始搭建Hadoop環境之前,需要準備以下環境和工具:
Hadoop需要Java環境,因此首先需要安裝JDK??梢酝ㄟ^以下命令安裝OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
安裝完成后,可以通過以下命令檢查Java版本:
java -version
Hadoop使用SSH進行節點間的通信,因此需要配置SSH免密登錄。首先,確保SSH服務已安裝并啟動:
sudo apt install openssh-server
sudo systemctl start ssh
接下來,生成SSH密鑰對:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
將公鑰添加到authorized_keys
文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
測試SSH免密登錄:
ssh localhost
如果不需要輸入密碼即可登錄,說明配置成功。
可以從Apache Hadoop官網下載最新版本的Hadoop。本文以Hadoop 3.3.1為例:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
將下載的Hadoop壓縮包解壓到指定目錄:
tar -xzvf hadoop-3.3.1.tar.gz -C /opt/
為了方便使用,可以創建一個軟鏈接:
sudo ln -s /opt/hadoop-3.3.1 /opt/hadoop
編輯~/.bashrc
文件,添加以下內容:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source ~/.bashrc
Hadoop的配置文件位于$HADOOP_HOME/etc/hadoop
目錄下。我們需要配置以下幾個文件:
hadoop-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
hadoop-env.sh
編輯hadoop-env.sh
文件,設置Java環境變量:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
core-site.xml
編輯core-site.xml
文件,配置Hadoop的核心參數:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml
編輯hdfs-site.xml
文件,配置HDFS的參數:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
</configuration>
mapred-site.xml
編輯mapred-site.xml
文件,配置MapReduce的參數:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
編輯yarn-site.xml
文件,配置YARN的參數:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
在啟動Hadoop之前,需要格式化HDFS:
hdfs namenode -format
啟動HDFS:
start-dfs.sh
啟動YARN:
start-yarn.sh
可以通過以下命令檢查Hadoop進程是否啟動成功:
jps
如果看到NameNode
、DataNode
、ResourceManager
、NodeManager
等進程,說明Hadoop啟動成功。
Hadoop提供了Web界面,可以通過瀏覽器訪問:
http://localhost:9870
http://localhost:8088
Hadoop自帶了一些示例程序,可以通過以下命令運行WordCount示例:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
其中,/input
是輸入目錄,/output
是輸出目錄??梢酝ㄟ^以下命令查看輸出結果:
hdfs dfs -cat /output/*
停止Hadoop:
stop-yarn.sh
stop-dfs.sh
本文詳細介紹了如何在Linux系統上搭建Hadoop環境,包括單節點和偽分布式集群的搭建。通過本文的步驟,您可以成功搭建Hadoop環境,并運行示例程序。Hadoop是一個強大的分布式計算框架,掌握其環境搭建是學習和使用Hadoop的第一步。希望本文對您有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。