前言

根据全国职业院校技能大赛2022年大数据技术与应用规程整理大数据平台搭建部分,如果有错误指出请提出改正,谢谢

资料

平台搭建组件包

链接:https://pan.baidu.com/s/1KeATNXjhMA_skQvCmK3ZQQ?pwd=21to
提取码:21to

前提条件

竞赛内容

竞赛软件环境

技能要求

依据大数据平台的技术特点独立解压、安装、配置。对不同的组件 4 进行文件参数配置,日志查看、状态查看、服务启动、组件部署等。

赛题及解析

大数据平台搭建(容器环境)

环境说明

服务端登录地址详见各模块服务端说明。

补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问;

相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行 安装,用不到的可忽略;

所有模块中应用命令必须采用绝对路径;

从本地仓库中拉取镜像,并启动3个容器

进入Master节点的方式为

docker exec –it master /bin/bash

进入Slave1节点的方式为

docker exec –it slave1 /bin/bash 

进入Slave2节点的方式为

docker exec –it slave2 /bin/bash

同时将/opt目录下的所有安装包移动到3个容器节点中。

前期准备

在ubantu中安装docker ce

1.安装一些必要的系统工具

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

安装gpg证书并写入阿里源 docker ce镜像信息

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

 更新安装docker ce

sudo apt-get -y update
sudo apt-get -y install docker-ce

 查看docker ce 版本

docker version

 启动docker服务

sudo service docker start

docker默认是只有root才能执行Docker命令,因此我们还需要添加用户权限:
创建docker用户组:

sudo groupadd docker

添加当前用户到Docker用户组:

sudo gpasswd -a $USER docker

更新用户组:

newgrp docker

创建docker虚拟机的时候,注意需要让虚拟机使用静态ip, docker设置固定ip地址,步骤如下

1. (在主机)创建网络

docker network create --subnet=172.18.0.0/16   mynetwork

docker network ls

2. (在主机)创建虚拟机

docker run -itd --name staticIp-privileged --net mynetwork --ip 172.18.0.2 --privileged=true centos:7 /sbin/init
docker ps -a

  

3. (在主机)登录虚拟机(用docker方式)

docker exec -it staticIp-privileged /bin/bash

进入docker虚拟机后,centos7默认很多软件没有安装,需要自己手动安装软件

yum install net-tools openssh-server openssh-clients initscripts vim -y 

等待安装完毕后开启ssh服务

vim /etc/ssh/sshd_config 

 

 开启ssh服务

systemctl start sshd.service
systemctl status sshd.service

 设置密码

passwd

4.  (在主机)登录虚拟机(用ssh方式)

ssh root@172.18.0.2

5.  安装大数据环境的软件

 将主机中的软件安装包传入ubantu宿主机

使用xshell连接ubantu

 

 连接失败 

因:ubuntu没有安装ssh远程连接服务

 解决方法:安装ssh远程连接服务

sudo apt-get install openssh-server

 再次尝试成功

 打开xftp传输文件

报错

 解决方法:修改权限 假设要上传的目录是/opt 它的权限应该是777

sudo chmod 777 /opt

  

重新打开xftp再次尝试成功

将ubantu宿主机中的安装包传输镜像文件中

docker cp /opt/package/ staticIp-privileged:/opt

6.  (在主机)将docker虚拟机/docker容器 保存为  docker镜像文件Filex

docker stop staticIp-privileged
docker images
docker commit -m "first docker" staticIp-privileged centos:hadoop
docker images

7.  (在主机)使用docker镜像文件filex,创建虚拟机master,slave1,salve2。

docker ps -a
docker run -itd --name master --net mynetwork --ip 172.18.0.10 --privileged=true centos:hadoop /sbin/init
docker run -itd --name slave1 --net mynetwork --ip 172.18.0.11 --privileged=true centos:hadoop /sbin/init
docker run -itd --name slave2 --net mynetwork --ip 172.18.0.12 --privileged=true centos:hadoop /sbin/init
docker ps -a

至此容器镜像配置完毕,接下来就是搭建部分。

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

本环节需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:

1. 将Master节点JDK安装包解压并移动到/usr/java路径(若路径不存在,则需新建),将命令复制并粘贴至对应报告中;

进入master节点

docker exec -it master /bin/bash
mkdir /usr/java
cd /opt/package/
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/

2. 修改/etc/profile文件,设置JDK环境变量,配置完毕后在Master节点分别执 行“java”和“javac”命令,将命令行执行结果分别截图并粘贴至对应报告中;

vim /etc/profile

 在其中加入:

#java
export JAVA_HOME=/usr/java/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin

 生效环境变量

source /etc/profile

3. 请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,使用绝对路径从master复制JDK解压后的安装文件到slave1、slave2 节点,并配置相关环境变量,将全部复制命令复制并粘贴至对应报告中;

踩坑:docker容器修改hosts文件,重启失效 

解决方案:在centos开机时加入自启动脚本

//进入目录
cd /etc/profile.d/
//编写脚本
vim host.sh
//插入以下内容
echo -e "172.18.0.10 master\n172.18.0.11 slave1\n172.18.0.12 slave2" > /etc/hosts
:wq保存退出

ping测试

当然,在比赛的时候只需要自行前往/etc/hosts下修改,自启动修改是为了方便练习

免密登录

(1)时区同步

操作环境: master、slave1、slave2

 tzselect 

 依次输入5911

tzselect只是帮我们把选择的时区显示出来,并不会实际生效,也就是说它仅仅告诉我们怎么样去设置环境变量TZ。

如果要永久更改时区,按照tzselect命令提示的信息,在.profile或者/etc/profile中设置正确的TZ环境变量并生效。

设置TZ环境变量:TZ='Asia/Shanghai'; “export TZ

输入:

echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile && source /etc/profile

 查看时间:

date

(2)NTP同步

 操作环境: master、slave1、slave2

下载ntp服务:

 yum -y install ntp

屏蔽默认server,设置master为本地时钟源,服务器层级设为10

操作环境: master

vim /etc/ntp.conf 

 在最后一行加入

server 127.127.1.0
fudge 127.127.1.0 stratum 10

主节点开启NTP服务

操作环境: master

/bin/systemctl restart ntpd.service

 slaves手动同步时间(slave1,slave2上 ):

ntpdate master

 (3)远程登录ssh

操作环境: master

ssh-keygen


 

 建⽴master⾃身使⽤root⽤户ssh访问localhost免密登录

操作环境: master

ssh-copy-id localhost

输入yes和密码

建⽴master使⽤root⽤户到slave1和slave2的ssh免密登录访问

操作环境: master

ssh-copy-id slave1
ssh-copy-id slave2

 同样输入yes和密码

(4)分发/usr/java文件给slave1,slave2

scp -r /usr/java/ root@slave1:/usr/

scp -r /usr/java/ root@slave2:/usr/

 在slave1,slave2中配置java环境变量,方法同上。 

4. 在Master将Hadoop解压到/opt目录下,并将解压包分发至slave1.slave2中,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果复制 粘贴至对应报告中;

5. 启动hadoop集群,查看master节点jps进程,将查看结果复制粘贴至对应报告中;

参考集群安装搭建配置将hadoop完全分布式完成。

踩坑

容器重新启动后jps命令无效

解决方法再次生效环境变量

任务二:Spark on Yarn安装配置

本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境, 具体要求如下:

1. 将scala包解压到/usr/路径,配置环境变量使其生效,将完整命令复制粘贴至 对应报告中(若已安装,则可跳过);

2. 配置/root/profile文件,设置Spark环境变量,并使环境变量生效将环境变量配置内容复制粘贴至对应报告中;

参考spark安装完成配置。

启动成功! 

3. 完 成 on yarn 相 关 配 置 , 使 用 spark on yarn 的 模 式 提 交 $SPARK_HOME/examples/jars/spark-examples_2.11-2.1.1.jar 运行的主类为 org.apache.spark.examples.SparkPi,将运行结果粘贴至对应报告中。

bin/spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.1.1.jar 100

任务三:Flink on Yarn安装配置

本环节需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境, 具体要求如下:

1. 将Flink包解压到路径/opt目录下,将完整命令复制粘贴至对应报告中;

2. 修改/root/profile文件,设置Flink环境变量,并使环境变量生效将环境变量 配置内容复制粘贴至对应报告中;

3. 开启Hadoop集群,在yarn上以per job模式(即Job分离模式,不采用Session模 式)运行 $FLINK_HOME/examples/batch/WordCount.jar,将运行结果最后10行 复制粘贴至对应报告中。 示例 : flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐