【青椒课堂】大数据课程设计基础环境搭建

本文案仅限本人在校课设期间的理解和感悟,不存在其他任何行为,此外,感谢用友新道企业对本学院的大力支持,感谢企业老师的讲解!

文章目录


一、平台展示:

1.青椒课堂

本次环境搭建主要基于青椒课堂平台,由用友新道企业的工程师所创建的学习空间中进行实操
在这里插入图片描述
将平台左下角环境中的虚拟环境全部启动。
在这里插入图片描述
虚拟环境详细信息如下:
在这里插入图片描述

2.MobaXterm

MobaXterm软件下载路径

事先将包含有MobaXterm的压缩包解压得到MobaXterm_Personal_23.6,并直接在文件夹中点开
在这里插入图片描述
在这里插入图片描述
打开MobaXterm软件后在工具栏中选择Sessions->New session打开Session settings
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择Session settings工具栏中的SSH,并在出现的Basic SSH settings页面下将公网IP填入Remote host*中,勾选Specify username将用户默认设置为root
在这里插入图片描述
在这里插入图片描述
提前复制虚拟环境中的Password
在这里插入图片描述
填好信息后选择OK进入到root下的终端中,点击Accept之后将复制的Password粘贴到终端中
在这里插入图片描述
填写好密码后即可使用MobaXterm工具通过SSH登录到对应的远程主机上操作
在这里插入图片描述
实训使用到的所有的软件和资源都已经上传到虚拟主机的/root目录下,软件在/root/software目录,数据集在/root/dataset目录,相关代码在/root/code目录


二、安装基础环境

1.安装JDK

# 新建安装目录
mkdir -p /opt/module
# 解压JDK安装包
tar -xzf /root/software/jdk-8u221-linux-x64.tar.gz -C /opt/module
# 配置JDK系统环境变量
echo -e "export JAVA_HOME=/opt/module/jdk1.8.0_221\nexport PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile.d/user.sh
# 生效环境变量
source /etc/profile
# 测试
java -version

输出显示java的版本号表示安装成功
在这里插入图片描述

2.Flume部署

# 解压flume安装包
tar -xzf /root/software/apache-flume-1.11.0-bin.tar.gz -C /opt/module
# 配置系统环境变量
echo -e "
export FLUME_HOME=/opt/module/apache-flume-1.11.0-bin
export PATH=\$PATH:\$FLUME_HOME/bin" >> /etc/profile.d/user.sh
# 生效系统环境变量
source /etc/profile
# 修改flume-env.sh
cp -f $FLUME_HOME/conf/flume-env.sh.template $FLUME_HOME/conf/flume-env.sh
echo "export JAVA_HOME=${JAVA_HOME}" >> $FLUME_HOME/conf/flume-env.sh
# 测试
flume-ng version

输出显示Flume的版本号表示部署成功
在这里插入图片描述

3.伪分布式Hadoop集群部署

3.1环境准备

# 生成密钥对,不需要任何的输入直接回车,直到命令执行完后再执行后续的操作
ssh-keygen -t rsa
# 配置root用户ssh免密码登录到本机
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 测试本机回环地址
ssh localhost
exit
# 测试主机名
ssh bigdata
exit
# 解压hadoop
tar -xzf /root/software/hadoop-3.3.3.tar.gz -C /opt/module
# 配置系统环境变量
echo -e "
export HADOOP_HOME=/opt/module/hadoop-3.3.3
export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin
export HADOOP_CLASSPATH=\$(hadoop classpath)
" >> /etc/profile.d/user.sh
# 生效系统环境变量
source /etc/profile
# 测试
hadoop version
# 配置hadoop-env.sh文件
echo -e "
export JAVA_HOME=\${JAVA_HOME}
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
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh

生成密钥时,不需要执行任何的输入进行三次回车,直到命令执行完后再执行后续的操作
在这里插入图片描述
配置root用户ssh免密码登录到本机之后分别测试本机回环地址和主机名,测试完成后直接退出
在这里插入图片描述
接着安装Hadoop,输出显示Hadoop版本好表示安装成功
在这里插入图片描述
配置hadoop-env.sh文件
在这里插入图片描述

3.2配置core-site.xml

cd命令进入到$HADOOP_HOME/etc/hadoop目录下

cd $HADOOP_HOME/etc/hadoop

接下来要配置的xml文件都在这个目录下,所以这里只进行一遍操作几即可

在这里插入图片描述
使用vim命令进入到core-site.xml将以下内容添加到文件中

vim core-site.xml
<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://bigdata:8020</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-3.3.3/hadoop/data</value>
</property>
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>kim</value>
</property>
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>
</configuration>

在这里插入图片描述
在这里插入图片描述
配置完成后点击Esc退出输入模式,输入:wq保存退出文件

3.3配置hdfs-site.xml

使用vim命令进入到hdfs-site.xml将以下内容添加到文件中

vim hdfs-site.xml
<configuration>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>bigdata:50090</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>
</configuration>

在这里插入图片描述
在这里插入图片描述
配置完成后点击Esc退出输入模式,输入:wq保存退出文件

3.4配置mapred-site.xml

使用vim命令进入到mapred-site.xml将以下内容添加到文件中

vim mapred-site.xml
<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
</property>
</configuration>

在这里插入图片描述
在这里插入图片描述
配置完成后点击Esc退出输入模式,输入:wq保存退出文件

3.5配置yarn-site.xml

使用vim命令进入到yarn-site.xml将以下内容添加到文件中

vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
</property>
</configuration>

在这里插入图片描述
在这里插入图片描述
配置完成后点击Esc退出输入模式,输入:wq保存退出文件

3.6配置workers文件,将文件中原来的内容删除,只写入一个主机名bigdata或直接执行以下命令

echo 'bigdata' > $HADOOP_HOME/etc/hadoop/workers

在这里插入图片描述

3.7格式化NameNode

hdfs namenode -format

在这里插入图片描述

3.8启动HDFS和Yarn

start-dfs.sh && start-yarn.sh && jps

在这里插入图片描述

4.Hive On Spark部署

4.1启动MySQL服务

# 启动服务
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

在这里插入图片描述

4.2获取MySQL初始化密码

# 获取初始化密码
cat /var/log/mysqld.log | grep password
# 使用初始密码登录
mysql -uroot -p

在这里插入图片描述
在这里插入图片描述

4.3修改密码并授权远程登录

-- 修改密码安全策略
set global validate_password_policy=0;
set global validate_password_length=4;
-- 修改密码为简单密码
alter user 'root'@'localhost' identified by '123456';
-- 远程登录授权
grant all on *.* to 'root'@'%' identified by '123456';
-- 刷新权限
flush privileges;
-- 退出
exit;

在这里插入图片描述

4.4安装Hive

# 解压hive
tar -xJf /root/software/hive.tar.xz -C /opt/module
# 配置系统环境变量
echo -e "
export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
export PATH=\$PATH:\$HIVE_HOME/bin
" >> /etc/profile.d/user.sh
# 生效系统环境变量
source /etc/profile
# 添加jdbc驱动到hive安装目录下的lib,如果已经存在会提示是否覆盖,可以直接输入yes
cp /root/software/mysql-connector-java-5.1.47-bin.jar $HIVE_HOME/lib
# 修改hive全局配置文件hive-env.sh
cp -f $HIVE_HOME/conf/hive-env.sh.template $HIVE_HOME/conf/hive-env.sh
echo -e "
export HADOOP_HOME=${HADOOP_HOME}
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export HIVE_AUX_JARS_PATH=${HIVE_HOME}/lib
" >> $HIVE_HOME/conf/hive-env.sh

在这里插入图片描述

4.5配置$HIVE_HOME/conf/hive-site.xml,使用以下文件内容覆盖原来的文件内容

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://bigdata:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>bigdata</value>
</property>
<property>
<name>spark.yarn.jars</name>
<value>hdfs://bigdata:8020/spark/jars/*</value>
</property>
<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>
<property>
<name>hive.spark.client.connect.timeout</name>
<value>10000ms</value>
</property>
<property>
<name>datanucleus.connectionPoolingType</name>
<value>dbcp</value>
</property>
<property>
<name>hive.jdbc.supports.transactionality</name>
<value>false</value>
</property>
</configuration>

首先使用cd命令进入$HIVE_HOME/conf目录下,通过ll命令查看该目录下的文件

cd $HIVE_HOME/conf
ll

在这里插入图片描述
在该目录下找到hive-site.xml文件并使用rm命令移除该文件

rm hive-site.xml

在这里插入图片描述
接着继续在该目录下使用vim命令创建并进入hive-site.xml文件,并将上述configuration内的内容添加到hive-site.xml文件中

vim hive-site.xml

在这里插入图片描述
配置完成后点击Esc退出输入模式,输入:wq保存退出文件

4.6安装Spark

# 解压spark
tar -xzf /root/software/spark-3.0.0-bin-without-hadoop.tgz -C /opt/module
# 配置系统环境变量
echo -e "
export SPARK_HOME=/opt/module/spark-3.0.0-bin-without-hadoop
export PATH=\$PATH:\$SPARK_HOME/bin
" >> /etc/profile.d/user.sh
# 生效系统环境变量
source /etc/profile

在这里插入图片描述

4.7配置$SPARK_HOME/conf/spark-defaults.conf,先执行命令cp $SPARK_HOME/conf/spark-defaults.conf.template $SPARK_HOME/conf/spark-defaults.conf复制出文件,然后在$SPARK_HOME/conf/spark-defaults.conf文件末尾添加以下内容,在添加文件内容时查看是否自动在行首添加了注释符号#,如果自动添加了,需要将注释符号删除

# 默认提交到YARN集群运行
spark.master                     yarn
# 配置日志存储路径,HDFS上的目录需要提前创建
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://bigdata:8020/spark/logs
# Executor和Driver堆内存
spark.executor.memory            1g
spark.driver.memory              1g
spark.security.credentials.hiveserver2.enabled	false

在这里插入图片描述
使用vim命令进入$SPARK_HOME/conf/spark-defaults.conf命令下添加内容
在这里插入图片描述
配置完成后点击Esc退出输入模式,输入:wq保存退出文件

4.8配置$SPARK_HOME/conf/spark-env.sh,先执行命令cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh复制出文件,然后在$SPARK_HOME/conf/spark-env.sh文件末尾添加以下内容

# Hadoop集群(客户端)配置文件的目录,读取HDFS上文件和运行Spark在YARN集群时需要
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
# Spark的classpath依赖配置,设置为Hadoop命令路径
export SPARK_DIST_CLASSPATH=$(hadoop classpath)

在这里插入图片描述

使用vim命令进入$SPARK_HOME/conf/spark-env.conf命令下添加内容
在这里插入图片描述
配置完成后点击Esc退出输入模式,输入:wq保存退出文件

4.9复制spark-defaults.conf$HIVE_HOME/conf使用命令cp -f $SPARK_HOME/conf/spark-defaults.conf $HIVE_HOME/conf

在这里插入图片描述

4.10在HDFS上创建目录并上传Spark的Jar资源,这步必须确定上传成功

# 新建目录
hadoop fs -mkdir -p /spark/jars
hadoop fs -mkdir -p /spark/logs
# 上传jar
hadoop fs -put $SPARK_HOME/jars/*.jar /spark/jars/

在这里插入图片描述

4.11初始化Hive元数据库,必须确定初始化成功并且没有报错

schematool -dbType mysql -initSchema

在这里插入图片描述

4.12将log4j.properties文件拷贝到$HIVE_HOME/conf解决Hive客户端日志输出的问题

cp /root/software/log4j.properties $HIVE_HOME/conf

在这里插入图片描述

4.13启动元数据服务

# 初始化元数据成功后启动metastore服务
nohup hive --service metastore > /dev/null 2>&1 &
# 查看job启动情况,确认job是处于运行状态
jobs
# 查看端口启动情况,确认9083端口是否处于监听状态
netstat -lanp | grep 9083

在这里插入图片描述

4.14测试Hive环境是否正常安装和启动,先在终端中执行命令hive,等待命令执行成功后再执行下面的内容

-- 创建测试表
create table if not exists stu (name string);
- insert数据,第一次执行insert时间会稍微长,因为要初始化SparkSession,后续的操作会比较快
insert into stu values ('test');
-- 等待执行完成并查看结果
select * from stu;
- 以上都能正确执行后可以退出Hive客户端
exit;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.Anaconda安装

5.1安装Anaconda

# 执行安装程序
bash /root/software/Anaconda3-2024.10-1-Linux-x86_64.sh
# 按照顺序依次按下enter-->q-->yes-->/opt/module/anaconda3-->enter-->yes-->bash
# 测试安装的Python
python
exit()
# 配置jupyter
jupyter-lab --generate-config
# 设置密码为123456
echo 'c.ServerApp.password = "argon2:$argon2id$v=19$m=10240,t=10,p=8$92PPQQU/Y4OZyM6hOifWpA$ld8m+NgChJmNvgXkaw1Jht9APgDo+EPeV5WRf+CysxQ"' >> ~/.jupyter/jupyter_lab_config.py
# 启动jupyter lab
cd ~/code && nohup jupyter lab --ip 0.0.0.0 --port 8888 --allow-root > /dev/null 2>&1 &

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2打开浏览器,输入http://虚拟主机外网IP地址:8888,输入密码123456进入jupyter lab环境

在这里插入图片描述
在这里插入图片描述

5.3解决matplotlib无法显示中文的问题

# 安装SimHei字体
cp /root/software/SimHei.ttf /opt/module/anaconda3/lib/python3.12/site-packages/matplotlib/mpl-data/fonts/ttf
# 删除matplotlib缓存
rm -fr /root/.cache/matplotlib
# 在使用matplotlib绘图时添加以下参数配置
plt.rcParams['font.family']='SimHei'
plt.rcParams['axes.unicode_minus']=False

在这里插入图片描述
最后两行代码放在python代码中使用

三、后续使用

当所有环境部署好了之后,关闭程序不会影响已经做过的部分,只要不重启虚拟环境,那么安装的程序则一直有效。由于这是用友企业在专业课设期间创建的教学空间,截止时间一到即所有内容崩坏。
在这里插入图片描述
关闭平台后如果想再次进入,选择自己对应的公网IP的root账号并输入虚拟机对应的Password即可重新连接
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值