Hadoop3.x單機(jī)安裝教程

為什么要搭建單機(jī)環(huán)境的Hadoop?

  • 以最小化的成本學(xué)習(xí)和測試Hadoop;
  • 搭建基于Hadoop的上層應(yīng)用,比如單機(jī)Spark環(huán)境需要先擁有單機(jī)的Hadoop;

如果需要搭建分布式集群環(huán)境的Hadoop環(huán)境,請參考另外一篇:Hadoop3.x集群安裝教程 - 簡書 (jianshu.com)

一、準(zhǔn)備工作

首先從官網(wǎng)下載好Linux的JDK和Hadoop,Apache的軟件可以從國內(nèi)鏡像下載,比較快。

然后在阿里云上購買一臺(tái)1C2G Linux CentOS7.5 X64系統(tǒng)的云服務(wù)器(172.23.24.28),然后在其上安裝好JDK,假設(shè)存放和解壓目錄都在/root/soft目錄下。

#進(jìn)入JDK所在目錄
cd /root/soft

#解壓
tar -zxvf jdk-8u65-linux-x64.tar.gz

#配置環(huán)境變量
vim /etc/profile
export JAVA_HOME=/root/soft/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile

#驗(yàn)證
[root@iZuf6gmsvearrd5uc3emkyZ soft]# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

二、Hadoop配置

假設(shè)我們Hadoop的壓縮包也是在/root/soft目錄下,執(zhí)行Hadoop的配置工作如下:

#進(jìn)入目錄
cd /root/soft

#解壓
tar -zxvf hadoop-3.3.4.tar.gz

#修改hadoop配置文件hadoop-env.sh
cd /root/soft/hadoop-3.3.4/etc/hadoop
vim hadoop-env.sh
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root 
#改成你自己的JAVA_HOME地址
export JAVA_HOME=/root/soft/jdk1.8.0_241

#設(shè)置HADOOP環(huán)境變量
vim /etc/profile
export HADOOP_HOME=/root/soft/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

然后修改core-site.xml中的配置:

<!-- 設(shè)置默認(rèn)使用的文件系統(tǒng) Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系統(tǒng) -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://172.23.24.28:8020</value>
</property>

<!-- 設(shè)置Hadoop本地保存數(shù)據(jù)路徑 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/data/hadoop</value>
</property>

<!-- 設(shè)置HDFS web UI用戶身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 用戶代理設(shè)置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

<!-- 文件系統(tǒng)垃圾桶保存時(shí)間 -->
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

然后修改hdfs-site.xml中的內(nèi)容:

<!-- 設(shè)置SecondNameNode進(jìn)程運(yùn)行機(jī)器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>172.23.24.28:9868</value>
</property>

然后再修改mapred-site.xml配置文件:

<!-- 設(shè)置MR程序默認(rèn)運(yùn)行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序歷史服務(wù)地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>172.23.24.28:10020</value>
</property>
 
<!-- MR程序歷史服務(wù)器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>172.23.24.28:19888</value>
</property>

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

然后再修改yarn-site.xml

<!-- 設(shè)置YARN集群主角色運(yùn)行機(jī)器位置 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>172.23.24.28</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 是否將對容器實(shí)施物理內(nèi)存限制 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 是否將對容器實(shí)施虛擬內(nèi)存限制。 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 開啟日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 設(shè)置yarn歷史服務(wù)器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://172.23.24.28:19888/jobhistory/logs</value>
</property>

<!-- 歷史日志保存的時(shí)間 7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

然后再修改workers配置文件:

172.23.24.28

最后一步,我們需要開通到本機(jī)的ssh免密連接服務(wù):

# 生成公鑰密鑰,全部回車下一步即可
ssh-keygen -t rsa
ssh-keygen -t dsa

ssh-copy-id 172.23.24.28
# 輸入登錄密碼即可
# 然后可以ssh自己試試是否為免密登錄了

三、啟動(dòng)Hadoop

首次啟動(dòng)Hadoop集群的時(shí)候,我們需要進(jìn)行Namenode格式化:

hdfs namenode -format

然后就可以一鍵啟動(dòng)HDFS和YARN了:

[root@node1 ~]# start-all.sh
Starting namenodes on [node1]
Last login: Fri Mar 10 13:33:24 CST 2023 from 172.23.24.28 on pts/2
Starting datanodes
Last login: Fri Mar 10 13:37:42 CST 2023 on pts/0
Starting secondary namenodes [node1]
Last login: Fri Mar 10 13:37:44 CST 2023 on pts/0
Starting resourcemanager
Last login: Fri Mar 10 13:37:53 CST 2023 on pts/0
Starting nodemanagers
Last login: Fri Mar 10 13:38:12 CST 2023 on pts/0

我們發(fā)現(xiàn)HDFS集群和YARN集群的角色都啟動(dòng)起來了,然后我們試驗(yàn)一下示例的單詞計(jì)數(shù):

cd /root/soft/hadoop-3.3.4/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-3.3.4.jar pi 2 4

最后執(zhí)行成功出來計(jì)算結(jié)果就OK了,總體來說搭建過程和集群的搭建比較類似,不再贅述。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容