1. 程式人生 > 其它 >時雨のNOIP2021退役記

時雨のNOIP2021退役記

一、 準備工作

伺服器

伺服器

IP

說明

hadoop01

192.168.110.121

節點1

hadoop02

192.168.110.122

節點2

hadoop03

192.168.110.123

節點3

軟體版本

說明

Linux Server

CentOS 7

hadoop-2.7.3

2.7.3

zookeeper

3.5.9

JDK

1.8-202

Linux操作使用者:tom

二、 免密登入

l 通用操作(3臺伺服器均要操作)

#生成公鑰(連續4次回車)

ssh-keygen -t rsa

#配置本機免密ssh登入

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

#手動ssh登入本機一次,第一次需要輸入密碼,以後就不用了

ssh hadoop01

l 配置hadoop01節點ssh免密碼登入其餘節點

#在hadoop01節點執行如下命令

ssh-copy-id hadoop02

ssh-copy-id hadoop03

#在hadoop01節點分別ssh登入其他節點一次,第一次需要輸入密碼,以後就不用了

ssh hadoop02

ssh hadoop03

三、 Hadoop叢集搭建

l 依賴環境

JDK1.8、zookeeper3.5.9,見本人另外隨筆

l 安裝步驟

#建立目錄

mkdir -p /home/tom/app/hadoop/data

mkdir -p /home/tom/app/hadoop/logs

#解壓到app目錄

tar -zxvf hadoop-2.6.0-cdh5.16.2.tar.gz -C /home/tom/app/hadoop

#設定系統環境變數

vim ~/.bash_profile

#新增如下環境變數

export HADOOP_HOME=/home/tom/app/hadoop/hadoop-2.6.0-cdh5.16.2

export PATH=$HADOOP_HOME/bin:$PATH

export PATH=$HADOOP_HOME/sbin:$PATH

# 重新整理檔案

source ~/.bash_profile

#校驗命令

hadoop version

yarn version

l 修改配置檔案

配置檔案路徑:$HADOOP_HOME/etc/hadoop

主要的修改的配置檔案包括:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves、hadoop-env.sh等

  1. hadoop-env.sh

# 修改如下

export JAVA_HOME= /home/tom/app/jdk1.8.0_202

# 日誌路徑,方便在叢集啟動失敗時檢視日誌,查詢原因

export HADOOP_LOG_DIR=/home/tom/app/hadoop/logs

  1. core-site.xml

#修改如下

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop01:8020</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/tom/app/hadoop/data/tmp</value>

</property>

</configuration>

  1. hdfs-site.xml

# 修改如下

<property>

<name>dfs.name.dir</name>

<value>/home/tom/app/hadoop/data/namenode</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/tom/app/hadoop/data/datanode</value>

</property>

<property>

<name>dfs.tmp.dir</name>

<value>/home/tom/app/hadoop/data/dfstmp</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

#去掉許可權驗證,防止其他地方呼叫hdfs的時候出現使用者許可權問題,該屬性可根據實際情況選擇是否增加

<property>

<name>dfs. permissions</name>

<value>false</value>

</property>

  1. mapred-site.xml

#修改資源排程

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

  1. 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>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop01</value>

</property>

</configuration>

  1. slaves

vi slaves

#配置子節點,增加如下

hadoop01

hadoop02

hadoop03

# hadoop01在這裡既是主節點,又是從節點

l 另外兩臺伺服器上搭建Hadoop環境

用scp命令直接將改好的檔案拷貝過去

scp -r hadoop/ @hadoop02:/home/tom/app/

scp -r hadoop/ @hadoop03:/home/tom/app/

scp -r ~/.bash_profile @kakfa02:~/

scp -r ~/.bash_profile @kakfa03:~/

另外兩臺伺服器重新整理環境變數

source ~/.bash_profile

四、 啟動Hdfs叢集

l 前置條件

先啟動zookeeper

l 格式化namenode

#hadoop01上執行格式化命令

hdfs namenode -format

# 注意有如下資訊則格式化成功

has been successfully formatted.

l 啟動叢集

#hadoop01上執行格式化命令

start-dfs.sh

#通過jps命令檢視

可以看見hadoop01主節點上開啟了一個namenode和datanode,

另外兩個節點的datanode都也啟起了,

這時,我們也可以在windows機器上通過瀏覽器來檢視叢集的情況:

在瀏覽器中輸入hadoop01:50070即可:(注意修改win電腦的hosts檔案,新增主機名與ip地址的對應關係,可以直接使用ip+埠的形式)

注意50070埠如對外開放,請加入防火牆開放策略

#開放埠(只需在hadoop01)

firewall-cmd --add-port=50070/tcp --permanent

#重新載入防火牆配置

firewall-cmd --reload

#檢視開發埠:

firewall-cmd --list-ports

l 啟動Yarn叢集

#在hadoop叢集中,yarn扮演的是一個叢集資源的管理與排程這麼一個角色

#hadoop01上執行如下命令

start-yarn.sh

#通過jps命令檢視

可以看見,主節點多了兩個程序出來,resourcemanager 和nodemanager,其餘從節點多了nodemanger,,這個就是管理各個節點的資源的程序,都出現了,就說明啟動成功,yarn也提供了web端,埠是8088,在瀏覽器輸入hadoop01:8088即可

#執行一個簡單的作業,測試一下

# 可以在命令面板或者瀏覽器輸入hadoop01:8088檢視結果(注意防火牆開放埠,參照上一步)