大数据学习记录。
- 【大数据】虚拟机Fusion初始化系统CentOS9
1. 软件安装
1.1 下载安装
在 Java 和 Hadoop 官网分别下载软件。
- jdk-8u202-linux-arm64-vfp-hflt.tar.gz
- hadoop-3.4.0-aarch64.tar.gz
虚拟机中克隆出三台机器,hadoop102、hadoop103、hadoop104。
hosts 配置如下:
1 2 3
| 172.16.6.102 hadoop102 172.16.6.103 hadoop103 172.16.6.104 hadoop104
|
配置好静态ip、hosts、以及免密登入(使用hosts中的内网域名)。
使用 lkzc19 (非root账户) 操作。
将上面的包下载后传到 hadoop102 下的/opt/software
下。解压到/opt/module
下。
1 2 3
| cd /opt/software/ tar -zxf jdk-8u202-linux-arm64-vfp-hflt.tar.gz -C /opt/module/ tar -zxf hadoop-3.4.0-aarch64.tar.gz -C /opt/module/
|
1.2 分发脚本
解压之后,使用脚本将软件分发到另外两台服务器。
xsync
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #!/bin/bash
if [ $# -lt 1 ] then echo Not Enough Argument! exit; fi
for host in hadoop102 hadoop103 hadoop104 do echo ========= $host =========== for file in $@ do if [ -e $file ] then pdir=$(cd -P $(dirname $file); pwd)
fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exit fi done done
|
将该脚本放入~/bin
目录下,添加执行权限后,调用脚本分发软件。
1 2
| sudo chmod +x ~/bin/xsync xsync /opt/module/
|
1.3 环境变量配置
配置 Java 和 Hadoop 的环境变量。
1
| vim /etc/profile.d/env.sh
|
添加如下内容。
1 2 3 4 5 6 7 8 9 10 11 12
| alias ff="source /etc/profile" alias ve="sudo vim /etc/profile.d/env.sh"
export JAVA_HOME=/opt/module/jdk1.8.0_202 export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/module/hadoop-3.4.0 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
|
刷新环境变量。
由于环境变量是配置了全局的,分发脚本是在非root账户下,所以此处只能各个机器进行配置。
2. 配置
2.1 集群规划
集群规划如下:
|
hadoop102 |
hadoop103 |
hadoop104 |
HDFS |
NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
YARN |
NodeManager |
ResourceManager NodeManager |
NodeManager |
注意: NameNode、SecondaryNameNode、ResourceManager 不要在同一台机器
2.2 配置
配置文件位置$HADOOP_HOME/etc/hadoop
core-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-3.4.0/data</value> </property> <property> <name>hadoop.http.staticuser.user</name> <value>lkzc19</value> </property> </configuration>
|
hdfs-site.xml
1 2 3 4 5 6 7 8 9 10 11 12
| <configuration> <property> <name>dfs.namenode.http-address</name> <value>hadoop102:9870</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop104:9868</value> </property> </configuration>
|
yarn-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop103</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_HOMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log.serrver.url</name> <value>http://hadoop102:19888/jobhistory/logs</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration>
|
mapred-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop102:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop102:19888</value> </property> </configuration>
|
workers
1 2 3
| hadoop102 hadoop103 hadoop104
|
配置完之后将配置目录进行分发。
1
| xsync /opt/module/hadoop-3.4.0/etc/hadoop/
|
2.3 启停
在启动之前得先初始化。
在hadoop102节点执行下面命令,只需要执行一次,此命令会清楚数据!
然后在HADOOP_HOME
目录下执行
1 2 3
| sbin/start-dfs.sh sbin/start-yarn.sh bin/mapred --daemon start historyserver
|
在宿主机上也配置hosts。
1 2 3
| 172.16.6.102 hadoop102 172.16.6.103 hadoop103 172.16.6.104 hadoop104
|
可以通过地址访问到相关组件的web页面
关闭使用下面命令。
1 2 3
| bin/mapred --daemon stop historyserver sbin/stop-yarn.sh sbin/stop-dfs.sh
|
2.4 hadoop集群起停脚本
myhadoop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #!/bin/bash
if [ $# -lt 1 ] then echo "No Args Input" exit; fi
case $1 in "start") echo "========== 启动 hadoop 集群 =========="
echo "---------- 启动 hdfs ----------" ssh hadoop102 "/opt/module/hadoop-3.4.0/sbin/start-dfs.sh" echo "---------- 启动 yarn ----------" ssh hadoop103 "/opt/module/hadoop-3.4.0/sbin/start-yarn.sh" echo "---------- 启动 historyserver ----------" ssh hadoop102 "/opt/module/hadoop-3.4.0/bin/mapred --daemon start historyserver" ;; "stop") echo "========== 关闭 hadoop 集群 =========="
echo "---------- 关闭 historyserver ----------" ssh hadoop102 "/opt/module/hadoop-3.4.0/bin/mapred --daemon stop historyserver" echo "---------- 关闭 yarn ----------" ssh hadoop103 "/opt/module/hadoop-3.4.0/sbin/stop-yarn.sh" echo "---------- 关闭 hdfs ----------" ssh hadoop102 "/opt/module/hadoop-3.4.0/sbin/stop-dfs.sh" ;; *) echo "Input Args Error" ;; esac
|