1. 按照左侧虚拟机名称修改对应主机名(分别为master、slave1、slave2,使用hostnamectl命令)

hostnamectl set-hostname master && bash
hostnamectl set-hostname slave1 && bash
hostnamectl set-hostname slave2 && bash
2. 修改host文件添加左侧master、slave1、slave2节点IP与主机名映射(使用内网IP)
vim /etc/hosts
172.18.38.142
172.18.38.143
172.18.0.82 slave2
注:三个节点的文件都修改
3. 时区更改为上海时间(CST+0800时区)
tzselect
5 9 1 1
echo "TZ='Asia/Shanghai';export TZ" >> /etc/profile && source /etc/profile
4. 环境已经安装NTP,修改master节点NTP配置,设置master为本地时间服务器,屏蔽默认server,服务器层级设为10
vim /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10
5. 开启NTP服务
systemctl restart ntpd.service
6. 添加定时任务--在早十-晚五时间段内每隔半个小时同步一次本地服务器时间(24小时制、使用用户root任务调度crontab,服务器地址使用主机名)
(0 / 5分)
ntpdate master
crontab -e
*/30 10-17 * * * usr/sbin/ntpdate master
crontab -l
7. 主节点生成公钥文件id_rsa.pub(数字签名RSA,用户root,主机名master)
ssh-keygen
8. 建⽴master⾃身使⽤root⽤户ssh访问localhost免密登录
ssh-copy-id localhost
9. 建⽴master使⽤root⽤户到slave1的ssh免密登录访问
ssh-copy-id slave1
10. 建⽴master使⽤root⽤户到slave2的ssh免密登录访问
ssh-copy-id slave2
11. 将jdk安装包解压到/usr/java目录(安装包存放于/usr/package277/,路径自行创建,解压后文件夹为默认名称,其他安装同理)
mkdir /usr/java
tar -zxvf /usr/package277/jdk-8u221-linux-x64.tar.gz -C /usr/java/
12. 文件/etc/profile中配置系统环境变量JAVA_HOME,同时将JDK安装路径中bin目录加入PATH系统变量,注意生效变量,查看JDK版本
vim /etc/profile
#java
export JAVA_HOME=/usr/java/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
Hadoop完全分布式集群搭建
1. 将Hadoop安装包解压到指定路径/usr/hadoop(安装包存放于/usr/package277/)
mkdir /usr/hadoop
tar -zxvf /usr/package277/hadoop-2.7.7.tar.gz -C /usr/hadoop/
2. 文件/etc/profile中配置环境变量HADOOP_HOME,将Hadoop安装路径中bin目录和sbin目录加入PATH系统变量,注意生效变量
vim /etc/profile
加入:
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3. 配置Hadoop运行环境JAVA_HOME
cd /usr/hadoop/hadoop-2.7.7/etc/hadoop/
echo "export JAVA_HOME=/usr/java/jdk1.8.0_221" >> hadoop-env.sh
4,5. 设置全局参数,指定HDFS上NameNode地址为master,端口默认为9000
vim core-site.xml
<property>
  <name>fs.default.name</name>
   <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
   <value>/root/hadoopData/tmp</value>
</property>
6,7,8. 设置HDFS参数,指定备份文本数量为2
vim hdfs-site.xml
<property>
 <name>dfs.replication</name>                                                                                                              
   <value>2</value>
 </property>
 <property>
 <!--namenode节点数据存储目录-->
   <name>dfs.namenode.name.dir</name>
   <value>/root/hadoopData/name</value>
 </property>
  <!--datanode节点数据存储目录-->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/root/hadoopData/data</value>
</property>
<!-- 设置HDFS的文件权限-->
 <property>
   <name>dfs.permissions</name>
   <value>false</value>
</property>
<property>
       <name>dfs.datanode.use.datanode.hostname</name>
       <value>true</value>
</property>
echo "export JAVA_HOME=/usr/java/jdk1.8.0_221" >> yarn-env.sh
10. 设置YARN核心参数,指定ResourceManager进程所在主机为master,端口为18141;指定mapreduce 获取数据的方式为mapreduce_shuffle
vim yarn-site.xml
<property>
 <name>yarn.resourcemanager.admin.address</name>
 <value>master:18141</value>
</property>
<property>
 <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
 <value>org.apache.hadoop.mapred.shuffleHandler</value>
</property>
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>
11. 设置计算框架参数,指定MR运行在yarn上
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>
12. 设置节点文件,要求master为主节点; slave1、slave2为子节点
echo "master" >> master
vim slaves
slave1
slave2
13. 对文件系统进行格式化
cd /usr/hadoop/hadoop-2.7.7/
hadoop namenode -format
14. 启动Hadoop集群查看各节点服务
sbin/start-all.sh
Spark集群搭建
1. 将Spark安装包解压到指定路径/usr/spark/spark-2.4.3-bin-hadoop2.7(安装包存放于/usr/package277/)
mkdir /usr/spark
tar -zxvf /usr/package277/spark-2.4.3-bin-hadoop2.7.tgz -C /usr/spark/
2. 文件/etc/profile中配置环境变量SPARK_HOME,将Spark安装路径中的bin目录加入PATH系统变量,注意生效变量
vim /etc/profile
加入:
#spark
export SPARK_HOME=/usr/spark/spark-2.4.3-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
3,4,5,6. 修改配置文件spark-env.sh,设置主机节点为master
cd /usr/spark/spark-2.4.3-bin-hadoop2.7/conf
mv spark-env.sh.template spark-env.sh
echo "export SPARK_MASTER_IP=master
export SCALA_HOME=/usr/scala/scala-2.10.3
export SPARK_WORKER_MEMORY=8g
export JAVA_HOME=/usr/java/jdk1.8.0_221
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.7/etc/hadoop" >> spark-env.sh
7. 修改slaves文件,添加spark从节点slave1、slave2
mv slaves.template slaves
vim slaves
slave1
slave2
8. 开启集群,查看各节点进程(主节点进程为Master,子节点进程为Worker)
cd /usr/spark/spark-2.4.3-bin-hadoop2.7/
sbin/start-all.sh
开启单节点集群环境
1.修改云主机host文件,添加内网IP,对应映射名为hadoop000,实现云主机自身使用root用户ssh访问hadoop000免密登陆
vim /etc/hosts
#添加以下内容
hadoop000_IP hadoop000
2. 格式化HDFS文件系统
hadoop namenode -format
3. 启动Hadoop集群
start-all.sh

4.开启mysql服务,并初始化数据库

systemctl start mysqld.service
schematool -dbType mysql -initSchema

5.开启hiveserver2服务,查看端口是否正常开启

hive

create database hive;

航空事故分析

1. 数据上传至HDFS://crash目录下

hdfs dfs -mkdir /crash
hdfs dfs -put /root/college/accidents.csv /crash

2. 对数据进行清洗,具体参考步骤说明,结果写入HDFS://crash/data/part-r-00000

修改windows或者mac的hosts文件,添加主机映射:hadoopip hadoop000

然后找idea运行crash_clean文件

3. 统计各国历史上空难发生次数,结果写入HDFS://crash/01/part-r-00000(格式参考:USA 2911)。

然后找idea运行crash02文件

4. 统计历年空难次数分析其变化趋势,结果写入HDFS://crash/02/part-r-00000(2022 38)。

然后找idea运行crash03文件

5. 分析空难数据中各国累计伤亡人数,结果写入HDFS://crash/03/part-r-00000(USA 9389)。

然后找idea运行crash04文件

6. 分析数据中不同事故类别(category)及其次数,结果写入HDFS://crash/04_1/part-r-00000(H2 936)。

然后找idea运行crash05_1文件