Hadoop詳細安裝步驟,附帶安裝完的虛擬機器。

我跪發表於2024-10-03

Hadoop叢集搭建筆記

環境:window11家庭中文版 23H2

VMware16.1.2

映象:CentOS-7-x86_64-DVD-2009.iso

jdk:jdk-8u202-linux-x64.tar.gz

hadoop:hadoop-3.3.5.tar.gz

叢集分佈

主機 角色
node1(192.168.100.100) NN DN RM NM
node2(192.168.100.101) SNN DN NM
node3(192.168.100.102) DN NM

/export/servers 存放軟體

/export/software 存放安裝包

/export/data 存放資料

1.建立玩node1,完整複製2個後改IP和名字。

主機名修改:

vi /etc/hostname
vi /etc/hosts

2.修改IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33

把IP改一下就行其他別動。

3.關防火牆和SSH免密

關閉防火牆

#關閉防火牆
systemctl stop firewalld.service
#關閉開機自啟
systemctl disable firewalld.service
#檢視防火牆狀態
firewall-cmd --state

SSH免密

#node1生成公鑰私鑰 (一路回車)
ssh-keygen -t rsa
#node1配置免密登入到node1 node2 node3
cd /root/.ssh
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

時間同步

ntpdate ntp5.aliyun.com

4.安裝JDK

/export/servers 存放軟體

/export/software 存放安裝包

/export/data 存放資料

建立目錄

mkdir -p /export/servers
mkdir -p /export/software
mkdir -p /export/data

傳送JDK和Hadoop安裝包到software

解壓JDK

tar -zxvf jdk-8u202-linux-x64.tar.gz -C /export/servers/

配置環境變數

#/etc/profile 存放環境變數
vi /etc/profile
#新增
export JAVA_HOME=/export/servers/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#重現載入環境變數
source /etc/profile
#檢視JDK
java -version

分發JDK和環境變數

#分發JDK
scp -r /export/servers/jdk1.8.0_202 root@node2:/export/servers/
scp -r /export/servers/jdk1.8.0_202 root@node3:/export/servers/
#分發環境變數
scp -r /etc/profile root@node2:/etc
scp -r /etc/profile root@node3:/etc
#重現載入環境變數
source /etc/profile
#檢視JDK
java -version

5.安裝Hadoop

解壓Hadoop

tar -zxvf /export/software/hadoop-3.3.5.tar.gz -C /export/servers/

配置系統變數

vi /etc/profile
#新增以下程式碼
export HADOOP_HOME=/export/servers/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#重啟變數
source /etc/profile
#檢視版本
hadoop version

重點:修改配置檔案

1.配置Hadoop執行環境:修改:/export/servers/hadoop-3.3.5/etc/hadoop/hadoop-env.sh

cd /export/servers/hadoop-3.3.5/etc/hadoop/
vi hadoop-env.sh
#新增以下程式碼
export JAVA_HOME=/export/servers/jdk1.8.0_202
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 

2.配置Hadoop:修改:/export/servers/hadoop-3.3.5/etc/hadoop/core-site.xml

vi core-site.xml
#新增到<configuration>
<!-- 設定預設使用的檔案系統 Hadoop支援file、HDFS、GFS、ali|Amazon雲等檔案系統 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
</property>

<!-- 設定Hadoop本地儲存資料路徑 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/export/data/hadoop-3.3.5</value>
</property>

<!-- 設定HDFS web UI使用者身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 使用者代理設定 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

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

<!-- 檔案系統垃圾桶儲存時間 -->
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

3.配置HDFS:修改:/export/servers/hadoop-3.3.5/etc/hadoop/hdfs-site.xml

vi hdfs-site.xml
#新增到<configuration>
<!-- 設定HDFS的副本為2 -->
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<!-- 設定SNN程序執行機器位置資訊 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:9868</value>
</property>

4.配置MapReduce:修改:/export/servers/hadoop-3.3.5/etc/hadoop/mapred-site.xml

vi mapred-site.xml
#新增到<configuration>
<!-- 設定MR程式預設執行模式: yarn叢集模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程式歷史服務地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>node1:10020</value>
</property>
 
<!-- MR程式歷史伺服器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>node1: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>

5.配置YARN:修改:/export/servers/hadoop-3.3.5/etc/hadoop/yarn-site.xml

vi yarn-site.xml
#新增到<configuration>
<!-- 設定YARN叢集主角色執行機器位置 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>node1</value>
</property>

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

<!-- 是否將對容器實施實體記憶體限制 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 是否將對容器實施虛擬記憶體限制。 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

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

<!-- 設定yarn歷史伺服器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://node1:19888/jobhistory/logs</value>
</property>

<!-- 歷史日誌儲存的時間 7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

6.配置Hadoop的從節點:修改:/export/servers/hadoop-3.3.5/etc/hadoop/workers

vi workers
#刪除完,改為:
node1
node2
node3

7.分發Hadoop

scp -r /export/servers/hadoop-3.3.5 root@node2:/export/servers/
scp -r /export/servers/hadoop-3.3.5 root@node3:/export/servers/

8.分發環境變數:

scp -r /etc/profile root@node2:/etc
scp -r /etc/profile root@node3:/etc
#重現載入環境變數
source /etc/profile

6.格式HDFS

1.只格式一次,不然前功盡棄

2.在node1格式,不然前功盡棄

3.建議打快照。

hdfs namenode -format

發現這個就成功了

7.基礎命令

#HDFS叢集

start-dfs.sh 

stop-dfs.sh 

#YARN叢集

start-yarn.sh

stop-yarn.sh

#Hadoop叢集

start-all.sh

stop-all.sh 
#檢視程序
jps

Hadoop啟動日誌路徑:/export/server/hadoop-3.3.0/logs/

相關文章