2020雙十 阿里雲服務器ECS團購特惠鏈接
一、系統配置
3台虛擬機
hadoop1: 4g內存 2核 80g硬盤 作為master節點
hadoop2 1g內存 1核 8g硬盤 作為slave節點
hadoop3: 1g內存 1核 8g硬盤 作為slave節點
二、基礎概念
hadoop主要包含了3個組件:存儲組件hdfs、資源調度引擎yarn、計算引擎MapReduce.
1、hdfs集群
NameNode: 資源存儲目錄,負責維護整個HDFS文件系統的目錄樹以及每一個路徑(文件)對應的block塊信息
DataNode: 資源實際存儲位置
2、yarn集群
ResourceManage: 負責資源的分配與調度
NodeManager: 負責接收 ResourceManager的資源分配請求,分配具體的資源給應用
三、hadoop集群搭建
1、下載安裝包到hadoop1節點的/usr/local/softwareinstall目錄
curl -O https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
2、遠程傳輸到hadoop2、hadoop3節點同目錄下
scp hadoop-3.1.3.tar.gz root@hadoop2:`pwd`
scp hadoop-3.1.3.tar.gz root@hadoop3:`pwd`
3、解壓安裝包(3台節點同時操作)
tar -zxvf hadoop-3.1.3.tar.gz
4、添加hadoop環境變量
vim /etc/profile
添加如下配置
export HADOOP_HOME=/usr/local/softwareinstall/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile #使修改生效
5、修改配置文件
(1)core-site.xml
添加如下配置
<configuration>
<!--定義namenode地址 默認9000-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9003</value>
</property>
<!--修改用於hadoop存儲數據的默認位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop</value>
</property>
</configuration>
(2)workers文件
(3)hadoop-env.sh文件
告知hadoop jdk安裝目錄所在
(4)yarn-site.xml文件
<configuration>
<!-- 設置ResourceManager 域名 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<!-- 開啟yarn.webapp.ui2 -->
<property>
<description>To enable RM web ui2 application.</description>
<name>yarn.webapp.ui2.enable</name>
<value>true</value>
</property>
<!-- 默認為true, 當虛擬機內存不夠多時,容易超出虛擬機內存 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>Whether virtual memory limits will be enforced for containers.</description>
</property>
</configuration>
當yarn.nodemanager.vmem-check-enabled默認為true時,使用flink構建yarn session,提示的異常信息。
Container [pid=7847,containerID=container_1589119427597_0002_02_000001] is running 69892608B beyond the 'VIRTUAL' memory limit. Current usage: 211.4 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.
(5)修改/usr/local/softwareinstall/hadoop-3.1.3/sbin/目錄下的start-dfs.sh、start-yarn.sh文件,在文件頭添加如下用戶設置(對應的stop-dfs.sh、stop-yarn.sh也要修改,此處為hadoop3的特殊配置處,不修改,啟動失敗)。
start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
6、啟動hdfs、yarn集群
6、啟動集群(hdfs集群和yarn集群)
只需在master節點(hadoop1)上操作即可,
6.1 啟動hdfs集群
hdfs namenode -format #格式化hdfs文件系統
start-dfs.sh #啟動hdfs集群
stop-dfs.sh #停止hdfs集群
6.2 啟動yarn集群
start-yarn.sh #啟動yarn集群
stop-yarn.sh #停止yarnjiqun
6.3 進程驗證
可用start-all.sh一次性啟動hdfs、yarn集群
7、ui界面登陸
7.1 hdfs集群管理 ui界面
7.2 yarn集群管理ui界面
yarn.webapp.ui2界面
各ui對應的端口查看
netstat -netlp
參考:
(1)https://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-common/ClusterSetup.html
(2)https://hadoop.apache.org/docs/r3.1.3/hadoop-yarn/hadoop-yarn-site/yarn-service/QuickStart.html