任务一: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 on Yarn 配置
解压 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