全国职业院校技能大赛(GZ033大数据赛项 第02套)模块A 环境搭建

进入各节点的命令:

docker exec -it master /bin/bash
docker exec -it slave1 /bin/bash
docker exec -it slave2 /bin/bash

子任务一:Hadoop 完全分布式安装配置

1.复制并解压

从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),将Master节点JDK安装包解压到/opt/module路径中(若路径不存在,则需新建),将JDK解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

 第一步:将宿主机的文件复制到容器master中:

docker cp /opt/hadoop-3.1.3.tar.gz master:/opt/software
docker cp /opt/jdk-8u212-linux-x64.tar.gz master:/opt/software

 第二步:解压JDK压缩包并改名:

tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module
mv /opt/module/jdk1.8.0_241 /opt/module/java

2.JDK环境变量设置

修改容器中/etc/profile文件,设置JDK环境变量并使其生效,配置完毕后在Master节点分别执行“java -version”和“javac”命令,将命令行执行结果分别截图并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

 第一步:设置环境变量:

#修改/etc/profile文件,并将以下内容添加至文件末尾
export JAVA_HOME=/opt/module/java
export PATH=$PATH:$JAVA_HOME/bin

#初始化profile
source /etc/profile

第二布:验证环境变量设置: 

3.环境配置

请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,用scp命令并使用绝对路径从Master复制JDK解压后的安装文件到slave1、slave2节点(若路径不存在,则需新建),并配置slave1、slave2相关环境变量,将全部scp复制JDK的命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

 第一步:配置hosts:

#修改/etc/hosts文件,并将以下内容添加至文件末尾
172.18.0.101    master
172.18.0.102    slave1
172.18.0.103    slave2

第二步:设置免密登录(三台机器都要执行):

#在主节点master中执行下条命令生成密钥
ssh-keygen -t rsa

#将主机生成的公钥文件复制到集群中的所有虚拟机上(包括自身)
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

第三步:分发JDK与环境变量配置文件

#分发hadoop与profile文件
scp -r /opt/module/java root@slave1:/opt/module
scp -r /opt/module/java root@slave1:/opt/module
scp /etc/profile root@slave1:/etc
scp /etc/profile root@slave1:/etc

#在所有容器集群中初始化profile
source /etc/profile

4.Hadoop配置

在Master将Hadoop解压到/opt/module(若路径不存在,则需新建)目录下,并将解压包分发至slave1、slave2中,其中master、slave1、slave2节点均作为datanode,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果截图(截取初始化结果日志最后20行即可)粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

 第一步:解压并配置Hadoop: 

tar -zxvf /opt/software/hadoop-3.3.0.tar.gz -C /opt/module
mv /opt/module/hadoop-3.3.0 /opt.module/hadoop

#修改/etc/profile文件,并将以下内容添加至文件末尾
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

#修改hadoop-3.3.0/etc/hadoop/core-site.xml
export JAVA_HOME=/opt/module/java
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

#修改hadoop-3.3.0/etc/hadoop/core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/data</value>
    </property>
</configuration>

#修改hadoop-3.3.0/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:9870</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:9868</value>
    </property>
</configuration>

#修改hadoop-3.3.0/etc/hadoop/mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

#修改hadoop-3.3.0/etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,
               HADOOP_YARN_HOME,HADOOP_MAPRED_HOME,HADOOP_CONF_DIR,
               CLASSPATH_PREPEND_DISTCACHE</value>
    </property>
</configuration>

 第二步:修改workers,将master、slave1、slave2节点均作为datanode:

#修改hadoop-3.3.0/etc/hadoop/workers
master
slave1
slave2

第三步:分发hadoop,并初始化namenode

#分发hadoop与profile文件
scp -r /opt/module/hadoop-3.3.0 root@slave1:/opt/module
scp -r /opt/module/hadoop-3.3.0 root@slave1:/opt/module
scp /etc/profile root@slave1:/etc
scp /etc/profile root@slave1:/etc

#在集群中所有虚拟机中初始化profile
source /etc/profile

#在主节点master上执行下条命令,初始化namenode:
hdfs namenode -format

5.启动Hadoop集群

启动Hadoop集群(包括hdfs和yarn),使用jps命令查看Master节点与slave1节点的Java进程,将jps命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

 启动hadoop集群,并查看进程:

子任务二:Flume安装配置

1.复制并解压

从宿主机/opt目录下将文件apache-flume-1.9.0-bin.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),将Master节点Flume安装包解压到/opt/module目录下,将解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

将flume从宿主机复制到主节点master容器中: 

docker cp /opt/apache-flume-1.9.0-bin.tar.gz master:/opt/software

解压flume压缩包:

tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/module/

重命名:

mv /opt/module/apache-flume-1.9.0-bin/ /opt/module/flume

2.Flume环境配置

完善相关配置,设置Flume环境变量,并使环境变量生效,执行命令flume-ng version并将命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

环境变量设置 

vim /etc/profile

# 将以下内容追加到文件尾部
export FLUME_HOME=/opt/module
export PATH=$PATH:$FLUME_HOME/bin

# 初始化环境变量
source /etc/profile

检查环境变量配置:

flume-ng version

3.将Hadoop日志采集到HDFS

启动Flume传输Hadoop日志(namenode或datanode日志),查看HDFS中/tmp/flume目录下生成的内容,将查看命令及结果(至少5条结果)截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

同步 hadoop 与 flume 的 jar 包:

hadoop/share/hadoop/common/lib 目录下的 guava-27.0-jre.jar 复制到flume的lib目录下:

cp /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/flume/lib/

删除 flume 原有旧版本的 guava 包 :

rm /opt/module/flume/lib/guava-11.0.2.jar

flume/conf  文件夹中复制一份配置文件模板,并设置 JAVA_HOME 变量: 

cp /opt/module/flume/conf/flume-env.sh.template /opt/module/flume/conf/flume-env.sh

vim cp /opt/module/flume/conf/flume-env.sh

export JAVA_HOME=/opt/module/java

创建一个工作目录,用以存放采集方案:

mkdir /opt/module/flume/release

编写日志采集配置文件 hdfs-flume.conf

vim /opt/module/release/hdfs-flume.conf

# 组件定义
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Sourc
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/module/hadoop/logs/hadoop-root-namenode-master.log

# Channel
a1.channels.c1.type = memory

# Sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://master:8020/tmp/flume
a1.sinks.k1.hdfs.filePrefix = %Y%m%d-namenode-log
a1.sinks.k1.hdfs.fileSuffix = .log
a1.sinks.k1.hdfs.useLocalTimeStamp = true

# 连接绑定
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

启动Hadoop集群:

start-all.sh

开始日志采集:

flume-ng agent --conf /opt/module/flume/conf/ --conf-file /opt/module/flume/release/hdfs-flume.conf --name a1  -Dflume.root.logger=DEBUG,console

通过 HDFS WebUI (master:9870) 查看日志采集情况: 

Ctrl + C 停止采集,在命令行查看采集结果:

hdfs dfs -ls /tmp/flume

 通过 cat 命令查看日志内容: 

hdfs dfs -cat /tmp/flume/ *

子任务三:Flink on Yarn安装配置

1.复制并解压

从宿主机/opt目录下将文件flink-1.14.0-bin-scala_2.12.tgz复制到容器Master中的/opt/software(若路径不存在,则需新建)中,将Flink包解压到路径/opt/module中(若路径不存在,则需新建),将完整解压命令复制粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

复制、解压、改名:

docker cp /opt/flink-1.14.0-bin-scala_2.12.tgz master:/opt/software

tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /opt/module/

mv /opt/module/flink-1.14.0/ /opt/module/flink

2.Flink环境配置

修改容器中/etc/profile文件,设置Flink环境变量并使环境变量生效。在容器中/opt目录下运行命令flink --version,将命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下; 

环境变量配置:

vim /etc/profile

export FLINK_HOME=opt/module/flink
export PATH=$PATH:$FLINK_HOME/bin

source /etc/profile

检查环境变量配置:

flink --version

3.运行示例程序

开启Hadoop集群,在yarn上以per job模式(即Job分离模式,不采用Session模式)运行 $FLINK_HOME/examples/batch/WordCount.jar,将运行结果最后10行截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

运行命令为:

flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar

flink/conf/flink-conf.yaml 配置文件的末尾追加:

classloader.check-leaked-classloader: false

 启动Hadoop集群:

start-all.sh

运行示例程序: 

flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值