全国职业院校技能大赛(GZ033大数据赛项 第01套)模块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.配置hosts、免密登录、分发JDK

请完成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集群,并查看进程:

子任务二:Spark on Yarn安装配置

1.解压安装包

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

#复制并解压spark
docker cp spark-3.1.1-bin-hadoop3.2.tgz master:/opt/software
tar -zxvf /opt/software/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/module
mv /opt/module/spark-3.1.1-bin-hadoop3.2 /opt/module/spark

1.配置并检查Spark

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

 第一步:环境变量设置:

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

#初始化profile
source /etc/profile

 第二步:检查Spark:

spark-submit --version

2.执行并提交示例程序

完成on yarn相关配置,使用spark on yarn 的模式提交$SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar 运行的主类为org.apache.spark.examples.SparkPi,将运行结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下(截取Pi结果的前后各5行)。

运行命令为:

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

 第一步:修改spark配置文件

#修改spark-3.3.0-bin-hadoop3/conf/spark-env.sh
JAVA_HOME=/opt/module/java
HADOOP_CONF_DIR=$HADOOP_HOME/hadoop-3.3.0/etc/hadoop
YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

第二步:执行并提交任务:

执行题目所给定的示例程序:

子任务二:HBase分布式安装配置

1.复制、解压、重命名

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

复制、解压、重命名 

docker cp /opt/apache-zookeeper-3.5.7-bin.tar.gz master:/opt/software
docker cp /opt/hbase-2.2.3-bin.tar.gz master:/opt/software

tar -zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
tar -zxvf /opt/software/hbase-2.2.3-bin.tar.gz -C /opt/module/

mv /opt/module/apache-zookeeper-3.5.7-bin/ /opt/module/zookeeper
mv /opt/module/hbase-2.2.3/ /opt/module/hbase

2.环境配置

完成ZooKeeper相关部署,用scp命令并使用绝对路径从容器master复制HBase解压后的包分发至slave1、slave2中,并修改相关配置,配置好环境变量,在容器Master节点中运行命令hbase version,将全部复制命令复制并将hbase version命令的结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

 修改zookeeper配置文件:

cp /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg
vim /opt/module/zookeeper/conf/zoo.cfg

# 设置数据持久化目录与日志文件目录
dataDir=/opt/module/zookeeper/data
dataLogDir=/opt/module/zookeeper/logs

# 设置zookeeper服务端口号
clientPort=2181

# 设置集群中每个zookeeper服务的地址与端口号
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

创建数据持久化目录与日志文件目录:

mkdir -p /opt/module/zookeeper/data
mkdir -p /opt/module/zookeeper/logs

配置zookeeper环境变量:

export ZK_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZK_HOME/bin

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

分发zookeeper与环境变量  :

scp -r /opt/module/zookeeper/ root@slave1:/opt/module/
scp -r /opt/module/zookeeper/ root@slave2:/opt/module/

scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave1:/etc/

# 在从节点 slave1、slave2 上初始化环境变量

为每个zookeeper服务指定编号: 

echo 1 > /opt/module/zookeeper/data/myid
echo 2 > /opt/module/zookeeper/data/myid
echo 3 > /opt/module/zookeeper/data/myid

启动zookeeper集群: 

# 在集群所有容器环境中执行:
zkServer.sh start

# 查看zookeeper集群运行状态
zkServer.sh status

# 在Mode后显示:leader或follower即为启动成功
# 停止zookeeper服务: zkServer.sh stop

 配置Hbase: 

vim /opt/module/hbase/conf/hbase-env.sh

# 在末尾追加
export JAVA_HOME=/opt/module/java
export HADOOP_HOME=/opt/module/hadoop
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_PID_DIR=${HBASE_HOME}/pid

修改 hbase-site.xml 配置文件:

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:8020/hbase</value>
    </property>
    <property>
        <name>hbase.master.info.port</name>
        <value>16010</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/opt/module/hbase/tmp</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master,slave1,slave2</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
</configuration>

修改 regionservers 文件:

vim /opt/module/hbase/conf/regionservers 

# 内容如下:
master
slave1
slave2

 解决 log4j 兼容性问题:

rm -rf /opt/module/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar 

配置环境变量:

export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin

分发Hbase:

scp -r /opt/module/hbase/ root@slave1:/opt/module/
scp -r /opt/module/hbase/ root@slave2:/opt/module/

scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave1:/etc/

# 在从节点 slave1、slave2 上初始化环境变量

 检查配置是否生效:

hbase version

3.检查运行状态

启动HBase后在三个节点分别使用jps命令查看,并将结果分别截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;正常启动后在hbase shell中查看命名空间,将查看命名空间的结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

按顺序启动:hadoop集群 ---> zookeeper集群 ---> hbase集群

start-all.sh
zkServer.sh start    #所有容器环境都要执行
start-hbase.sh

查看集群运行状态:

在 hbase shell 中查看命名空间:

hbase shell
list_namespace

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值