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/