Hadoop安裝部署

小钱没有钱發表於2024-11-01

Hadoop安裝部署

一、虛擬機器配置

1、建立3臺虛擬機器:master、node1、node2

2、關閉防火牆

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall開機啟動

檢視防火牆狀態
firewall-cmd --state
systemctl status firewalld.service
啟動防火牆
systemctl start firewalld.service

3、修改主機名

vim /etc/hostname

#3臺虛擬機器分別改為master,node1,node2

#檢視主機名
	hostnamectl status

4修改ip地址

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

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"   ---改這個 改成statics
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="46bc9724-c761-4058-8cd7-97a675b41294"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.65.100"   ---前3位根據自己的IP來配,後一位master,node1,node2分別為100,101,102
PREFIX="24"
GATEWAY="192.168.220.2"
DNS1="114.114.114.114"
IPV6_PRIVACY="no"

儲存退出

#2、關閉NetworkManager,並取消開機自啟
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl status NetworkManager
#3、重啟網路服務
systemctl restart network

5、配置對映檔案

vim /etc/hosts

192.168.65.100 master
192.168.65.101 node1
192.168.65.102 node2

6、配置免密

# 1、生成金鑰
ssh-keygen -t rsa
# 2、配置免密登入
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2

#每一臺虛擬機器都要重複以上步驟!!!!!

# 3、測試免密登入
ssh node1

7、給每臺機器安裝Java環境

#1、建立soft/package資料夾,將來package表示存放安裝包以及解壓目錄
	mkdir -p /usr/local/soft/package

#2、解除安裝自帶jdk
	rpm -qa |grep jdk ---檢視自帶jdk
	rpm -e 自帶jdk名稱 --nodeps  ---解除安裝
#3、上傳jar包到package目錄
#4、解壓
	tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/soft/

配置環境變數

vim /etc/profile

# 插入以下內容
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
export PATH=.:$PATH:$JAVA_HOME/bin

#儲存退出
#讓shell指令碼生效
source /etc/profile

8、將jdk與環境變數配置檔案分發給node1,node2

cd /usr/local/soft/

scp -r /usr/local/soft/jdk1.8.0_171 node1:`pwd`
scp -r /usr/local/soft/jdk1.8.0_171 node2:`pwd`
scp -r /etc/profile node2:/etc/profile

二、搭建Hadoop叢集

NameNode:接受客戶端的讀/寫服務,收集 DataNode 彙報的

Block 列表資訊

DataNode:真實資料儲存的地方(block)

SecondaryNameNode:做持久化的時候用到

程序 master(主) node1(從) node2(從)
NameNode
SecondaryNameNode
ResourceManager
DataNode
NodeManager

1、上傳解壓配置環境變數

# 1、解壓
tar -xvf hadoop-3.1.2.tar.gz.gz

# 2、配置環境變數
vim /etc/profile

# 3、在最後增加配置
export HADOOP_HOME=/usr/local/soft/hadoop-3.1.2
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

# 4、使環境變數剩下
source /etc/profile

2、修改配置檔案

# 1、進入hadoop配置檔案所在位置,修改hadoop配置檔案
cd /usr/local/soft/hadoop-3.1.2/etc/hadoop

# 2、修改core-site.xml配置檔案,在configuration中間增加配置
vim core-site.xml
# 增加配置
<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/soft/hadoop-3.1.2/tmp</value>
</property>
<property>
  <name>fs.trash.interval</name>
  <value>1440</value>
</property>
</configuration>

# 3、修改hdfs-site.xml配置檔案,在configuration中間增加配置
vim hdfs-site.xml
# 增加配置
<configuration>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>
</configuration>

# 4、修改yarn-site.xml配置檔案,在configuration中間增加配置
vim yarn-site.xml
# 增加配置
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>master</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>


> mapreduce.framework.name:用於執行MapReduce作業的執行時框架。

> mapreduce.jobhistory.address:Hadoop自帶了一個歷史伺服器,可以透過歷史伺服器檢視已經執行完的Mapreduce作業記錄,比如用了多少個Map、用了多少個Reduce、作業提交時間、作業啟動時間、作業完成時間等資訊。預設情況下,Hadoop歷史伺服器是沒有啟動的,我們可以透過*mr-**jobhistory-daemon.sh start historyserver**命令來啟動Hadoop歷史伺服器。我們可以透過Hadoop jar的命令來實現我們的程式jar包的執行,關於執行的日誌,我們一般都需要透過啟動一個服務來進行檢視,就是我們的JobHistoryServer,我們可以啟動一個程序,專門用於檢視我們的任務提交的日誌。mapreduce.jobhistory.address和mapreduce.jobhistory.webapp.address預設的值分別是0.0.0.0:10020和0.0.0.0:19888

vim mapred-site.xml
# 2、修改
	<property>
    	<name>mapreduce.framework.name</name>
    	<value>yarn</value>
    </property>

    <property>  
    	<name>mapreduce.jobhistory.address</name>  
    	<value>master:10020</value>  
    </property>  

    <property>  
    	<name>mapreduce.jobhistory.webapp.address</name>  
    	<value>master:19888</value>  
	</property> 



# 5、修改hadoop-env.sh配置檔案
vim hadoop-env.sh
# 增加配置
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171


# 6、修改hadoop-env.sh配置檔案
vim workers
# 增加配置
node1
node2

3、修改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

4、將hadoop資料夾分發到子節點中

cd /usr/local/soft/

scp -r hadoop-3.1.2 node1:`pwd`
scp -r hadoop-3.1.2 node2:`pwd`

5、初始化hdfs

# 初始化
hdfs namenode -format

6、啟動hadoop

# 啟動hadoop
start-all.sh

# 停止hadoop
 stop-all.sh

# hdfs web ui
http://master:9870

# yarn web ui
http://master:8088

相關文章