ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【青椒讲堂】大数据课程设计基础情况搭建
[打印本页]
作者:
万有斥力
时间:
2025-1-6 16:39
标题:
【青椒讲堂】大数据课程设计基础情况搭建
本文案仅限本人在校课设期间的理解和感悟,不存在其他任何举动,别的,感谢用友新道企业对本学院的大力支持,感谢企业老师的讲解!
一、平台展示:
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&useSSL=false&useUnicode=true&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即可重新毗连
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4