大数据应用技术模块A流程

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

将 Hadoop 和 Java 移动至 master 节点

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

解压 Hadoop 与 Java 至 module 目录

tar -zxvf /opt/software/hadoop-2.7.7.tar.gz -C /opt/module/
tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/

修改环境变量(/etc/profile),添加以下内容

vim /etc/profile{% asset_img 002.png  %}

使环境变量生效

source /etc/profile

可通过以下命令确认配置是否生效:

配置 hosts 文件

vim /etc/hosts

设置 SSH 免密登录

在三台机器上分别执行:

ssh-keygen -t rsa

然后通过以下命令配置免密登录(slave1 为主机名或 IP):

ssh-copy-id slave1

分发 JDK 与 Hadoop 到各节点

scp -r /opt/module/jdk1.8.0_212/ slave1:/opt/module/
scp -r /opt/module/hadoop-2.7.7/ slave1:/opt/module/
scp -r /opt/module/hadoop-2.7.7/ slave2:/opt/module/
scp -r /opt/module/jdk1.8.0_212/ slave2:/opt/module/

分发环境变量配置文件并使其生效

scp -r /etc/profile slave1:/etc/
source /etc/profile

配置 Hadoop

修改 hadoop-env.sh 文件:

vim hadoop-env.sh

创建缓存目录 tmp

修改 core-site.xml 配置

修改 hdfs-site.xml 配置

修改 mapred-site.xml 文件名(去除模板后缀)

配置 mapred-site.xml 文件

配置 yarn-site.xml 文件

编辑 slaves 文件

编辑 master 文件

将配置好的 Hadoop 分发到其他节点

scp -r /opt/module/hadoop-2.7.7/ slave1:/opt/module/
scp -r /opt/module/hadoop-2.7.7/ slave2:/opt/module/

初始化 Hadoop

hdfs namenode -format

启动 Hadoop 集群

start-all.sh

使用 jps 命令查看各进程是否启动成功

任务二:spark on yarn

解压 Scala 安装包

tar -zxvf /opt/software/scala-2.11.7.tgz -C /opt/module/

配置环境变量(vim /etc/profile)并查看版本

复制并解压 Spark 到 master 节点

docker cp spark-2.1.1-bin-hadoop2.7.tgz master:/opt/software
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/

修改解压后的 Spark 文件夹名称

编辑 spark-env.sh 文件

确认 Spark 版本

配置 Spark on Yarn

继续编辑 spark-env.sh 文件,添加 Yarn 支持

重命名相关配置文件

编辑 slaves 文件

将配置好的 Spark 分发到各节点

scp -r /opt/module/spark-2.1.1-bin-hadoop2.7/ slave1:/opt/module/
scp -r /opt/module/spark-2.1.1-bin-hadoop2.7/ slave2:/opt/module/
scp -r /etc/profile slave1:/etc/
scp -r /etc/profile slave2:/etc/

启动 Spark 集群

访问 Spark Web 页面

提交任务

spark-submit --master yarn --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark-examples_2.11-2.1.1.jar

解压 Flink 安装包

tar -zxvf /opt/software/flink-1.10.2-bin-scala_2.11.tgz -C /opt/module/

配置 /etc/profile 并使其生效

查看 Flink 版本信息

将 Hadoop 兼容 jar 包复制到 Flink

scp -r /opt/software/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar /opt/module/flink-1.10.2/lib/

编辑slaves文件

编辑master文件

修改 flink-conf.yaml 文件

vim flink-conf.yaml

启动 Flink 集群

start-cluster.sh

提交作业

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

模块 A 部署到此结束


如果你在大数据比赛中需要搭建类似环境,可与我联系

附录:容器环境搭建指南

安装必要依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

设置 Docker 的 yum 源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker(安装过程选择 y)

yum install -y docker-ce

启动 Docker 服务

systemctl start docker

设置 Docker 开机自启

systemctl enable docker.service

验证 Docker 是否安装成功

docker -v

定义自定义镜像 Dockerfile

vim Hadoop-Single-Dockerfile
FROM centos:centos7.7.1908

MAINTAINER "shiyansr<1701220998@qq.com>"

LABEL name="Hadoop-Single" build_date="2023-04-29 11:24:12"

RUN yum -y install openssh-server openssh-clients sudo vim net-tools
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
RUN groupadd -g 1124 bigdata && useradd -m -u 1124 -g bigdata xiaokang
RUN echo "xiaokang:xiaokang" | chpasswd
RUN echo "xiaokang ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
RUN mkdir /opt/software && mkdir /opt/module
RUN chown -R xiaokang:bigdata /opt/module && chown -R xiaokang:bigdata /opt/software
ADD jdk-8u212-linux-x64.tar.gz /opt/module
ADD hadoop-2.6.0.tar.gz /opt/module
ENV CENTOS_DEFAULT_HOME /root
ENV JAVA_HOME /opt/module/jdk1.8.0_212
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH ${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
WORKDIR $CENTOS_DEFAULT_HOME
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

请根据实际情况修改 Java 和 Hadoop 的版本信息

构建镜像

创建自定义网络

创建 master、slave1、slave2 容器

进入 master 容器指令


欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1701220998@qq.com
导航页 GitHub