【青椒讲堂】大数据课程设计基础情况搭建

打印 上一主题 下一主题

主题 877|帖子 877|积分 2631

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

一、平台展示:

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

  1. # 新建安装目录
  2. mkdir -p /opt/module
  3. # 解压JDK安装包
  4. tar -xzf /root/software/jdk-8u221-linux-x64.tar.gz -C /opt/module
  5. # 配置JDK系统环境变量
  6. echo -e "export JAVA_HOME=/opt/module/jdk1.8.0_221\nexport PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile.d/user.sh
  7. # 生效环境变量
  8. source /etc/profile
  9. # 测试
  10. java -version
复制代码
输出表现java的版本号表现安装成功

2.Flume部署

  1. # 解压flume安装包
  2. tar -xzf /root/software/apache-flume-1.11.0-bin.tar.gz -C /opt/module
  3. # 配置系统环境变量
  4. echo -e "
  5. export FLUME_HOME=/opt/module/apache-flume-1.11.0-bin
  6. export PATH=\$PATH:\$FLUME_HOME/bin" >> /etc/profile.d/user.sh
  7. # 生效系统环境变量
  8. source /etc/profile
  9. # 修改flume-env.sh
  10. cp -f $FLUME_HOME/conf/flume-env.sh.template $FLUME_HOME/conf/flume-env.sh
  11. echo "export JAVA_HOME=${JAVA_HOME}" >> $FLUME_HOME/conf/flume-env.sh
  12. # 测试
  13. flume-ng version
复制代码
输出表现Flume的版本号表现部署成功

3.伪分布式Hadoop集群部署

3.1情况预备

  1. # 生成密钥对,不需要任何的输入直接回车,直到命令执行完后再执行后续的操作
  2. ssh-keygen -t rsa
  3. # 配置root用户ssh免密码登录到本机
  4. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  5. # 测试本机回环地址
  6. ssh localhost
  7. exit
  8. # 测试主机名
  9. ssh bigdata
  10. exit
  11. # 解压hadoop
  12. tar -xzf /root/software/hadoop-3.3.3.tar.gz -C /opt/module
  13. # 配置系统环境变量
  14. echo -e "
  15. export HADOOP_HOME=/opt/module/hadoop-3.3.3
  16. export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin
  17. export HADOOP_CLASSPATH=\$(hadoop classpath)
  18. " >> /etc/profile.d/user.sh
  19. # 生效系统环境变量
  20. source /etc/profile
  21. # 测试
  22. hadoop version
  23. # 配置hadoop-env.sh文件
  24. echo -e "
  25. export JAVA_HOME=\${JAVA_HOME}
  26. export HDFS_NAMENODE_USER=root
  27. export HDFS_DATANODE_USER=root
  28. export HDFS_SECONDARYNAMENODE_USER=root
  29. export YARN_RESOURCEMANAGER_USER=root
  30. export YARN_NODEMANAGER_USER=root
  31. export HDFS_JOURNALNODE_USER=root
  32. export HDFS_ZKFC_USER=root
  33. " >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
复制代码
天生密钥时,不必要实行任何的输入进行三次回车,直到命令实行完后再实行后续的操作

设置root用户ssh免暗码登录到本机之后分别测试本机回环地址和主机名,测试完成后直接退出

接着安装Hadoop,输出表现Hadoop版本好表现安装成功

设置hadoop-env.sh文件

3.2设置core-site.xml

cd命令进入到$HADOOP_HOME/etc/hadoop目录下
  1. cd $HADOOP_HOME/etc/hadoop
复制代码
  接下来要设置的xml文件都在这个目录下,所以这里只进行一遍操作几即可
  

利用vim命令进入到core-site.xml将以下内容添加到文件中
  1. vim core-site.xml
复制代码
  1. <configuration>
  2. <property>
  3.   <name>fs.defaultFS</name>
  4.   <value>hdfs://bigdata:8020</value>
  5. </property>
  6. <property>
  7.   <name>hadoop.tmp.dir</name>
  8.   <value>/opt/module/hadoop-3.3.3/hadoop/data</value>
  9. </property>
  10. <property>
  11.   <name>hadoop.http.staticuser.user</name>
  12.   <value>kim</value>
  13. </property>
  14. <property>
  15.   <name>hadoop.proxyuser.root.hosts</name>
  16.   <value>*</value>
  17. </property>
  18. <property>
  19.   <name>hadoop.proxyuser.root.groups</name>
  20.   <value>*</value>
  21. </property>
  22. </configuration>
复制代码


设置完成后点击Esc退出输入模式,输入:wq保存退出文件
3.3设置hdfs-site.xml

利用vim命令进入到hdfs-site.xml将以下内容添加到文件中
  1. vim hdfs-site.xml
复制代码
  1. <configuration>
  2. <property>
  3.   <name>dfs.namenode.secondary.http-address</name>
  4.   <value>bigdata:50090</value>
  5. </property>
  6. <property>
  7.   <name>dfs.replication</name>
  8.   <value>1</value>
  9. </property>
  10. <property>
  11.   <name>dfs.webhdfs.enabled</name>
  12.   <value>true</value>
  13. </property>
  14. <property>
  15.   <name>dfs.permissions</name>
  16.   <value>false</value>
  17. </property>
  18. </configuration>
复制代码


设置完成后点击Esc退出输入模式,输入:wq保存退出文件
3.4设置mapred-site.xml

利用vim命令进入到mapred-site.xml将以下内容添加到文件中
  1. vim mapred-site.xml
复制代码
  1. <configuration>
  2. <property>
  3.   <name>mapreduce.framework.name</name>
  4.   <value>yarn</value>
  5. </property>
  6. <property>
  7.   <name>yarn.app.mapreduce.am.env</name>
  8.   <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
  9. </property>
  10. <property>
  11.   <name>mapreduce.map.env</name>
  12.   <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
  13. </property>
  14. <property>
  15.   <name>mapreduce.reduce.env</name>
  16.   <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
  17. </property>
  18. </configuration>
复制代码


设置完成后点击Esc退出输入模式,输入:wq保存退出文件
3.5设置yarn-site.xml

利用vim命令进入到yarn-site.xml将以下内容添加到文件中
  1. vim yarn-site.xml
复制代码
  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostname</name>
  4. <value>bigdata</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services</name>
  8. <value>mapreduce_shuffle</value>
  9. </property>
  10. <property>
  11. <name>yarn.nodemanager.pmem-check-enabled</name>
  12. <value>false</value>
  13. </property>
  14. <property>
  15. <name>yarn.nodemanager.vmem-check-enabled</name>
  16. <value>false</value>
  17. </property>
  18. <property>
  19. <name>yarn.log-aggregation-enable</name>
  20. <value>true</value>
  21. </property>
  22. <property>
  23. <name>yarn.app.mapreduce.am.env</name>
  24. <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
  25. </property>
  26. <property>
  27. <name>mapreduce.map.env</name>
  28. <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
  29. </property>
  30. <property>
  31. <name>mapreduce.reduce.env</name>
  32. <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.3</value>
  33. </property>
  34. </configuration>
复制代码


设置完成后点击Esc退出输入模式,输入:wq保存退出文件
3.6设置workers文件,将文件中原来的内容删除,只写入一个主机名bigdata或直接实行以下命令

  1. echo 'bigdata' > $HADOOP_HOME/etc/hadoop/workers
复制代码

3.7格式化NameNode

  1. hdfs namenode -format
复制代码

3.8启动HDFS和Yarn

  1. start-dfs.sh && start-yarn.sh && jps
复制代码

4.Hive On Spark部署

4.1启动MySQL服务

  1. # 启动服务
  2. systemctl start mysqld
  3. systemctl enable mysqld
  4. systemctl status mysqld
复制代码

4.2获取MySQL初始化暗码

  1. # 获取初始化密码
  2. cat /var/log/mysqld.log | grep password
  3. # 使用初始密码登录
  4. mysql -uroot -p
复制代码


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

  1. -- 修改密码安全策略
  2. set global validate_password_policy=0;
  3. set global validate_password_length=4;
  4. -- 修改密码为简单密码
  5. alter user 'root'@'localhost' identified by '123456';
  6. -- 远程登录授权
  7. grant all on *.* to 'root'@'%' identified by '123456';
  8. -- 刷新权限
  9. flush privileges;
  10. -- 退出
  11. exit;
复制代码

4.4安装Hive

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

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

  1. <configuration>
  2. <property>
  3. <name>javax.jdo.option.ConnectionURL</name>
  4. <value>jdbc:mysql://bigdata:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
  5. </property>
  6. <property>
  7. <name>javax.jdo.option.ConnectionDriverName</name>
  8. <value>com.mysql.jdbc.Driver</value>
  9. </property>
  10. <property>
  11. <name>javax.jdo.option.ConnectionUserName</name>
  12. <value>root</value>
  13. </property>
  14. <property>
  15. <name>javax.jdo.option.ConnectionPassword</name>
  16. <value>123456</value>
  17. </property>
  18. <property>
  19. <name>hive.metastore.warehouse.dir</name>
  20. <value>/user/hive/warehouse</value>
  21. </property>
  22. <property>
  23. <name>hive.cli.print.header</name>
  24. <value>true</value>
  25. </property>
  26. <property>
  27. <name>hive.cli.print.current.db</name>
  28. <value>true</value>
  29. </property>
  30. <property>
  31. <name>hive.server2.thrift.port</name>
  32. <value>10000</value>
  33. </property>
  34. <property>
  35. <name>hive.server2.thrift.bind.host</name>
  36. <value>bigdata</value>
  37. </property>
  38. <property>
  39. <name>spark.yarn.jars</name>
  40. <value>hdfs://bigdata:8020/spark/jars/*</value>
  41. </property>
  42. <property>
  43. <name>hive.execution.engine</name>
  44. <value>spark</value>
  45. </property>
  46. <property>
  47. <name>hive.spark.client.connect.timeout</name>
  48. <value>10000ms</value>
  49. </property>
  50. <property>
  51. <name>datanucleus.connectionPoolingType</name>
  52. <value>dbcp</value>
  53. </property>
  54. <property>
  55. <name>hive.jdbc.supports.transactionality</name>
  56. <value>false</value>
  57. </property>
  58. </configuration>
复制代码
起首利用cd命令进入$HIVE_HOME/conf目录下,通过ll命令查看该目录下的文件
  1. cd $HIVE_HOME/conf
  2. ll
复制代码

在该目录下找到hive-site.xml文件并利用rm命令移除该文件
  1. rm hive-site.xml
复制代码

接着继承在该目录下利用vim命令创建并进入hive-site.xml文件,并将上述configuration内的内容添加到hive-site.xml文件中
  1. vim hive-site.xml
复制代码

设置完成后点击Esc退出输入模式,输入:wq保存退出文件
4.6安装Spark

  1. # 解压spark
  2. tar -xzf /root/software/spark-3.0.0-bin-without-hadoop.tgz -C /opt/module
  3. # 配置系统环境变量
  4. echo -e "
  5. export SPARK_HOME=/opt/module/spark-3.0.0-bin-without-hadoop
  6. export PATH=\$PATH:\$SPARK_HOME/bin
  7. " >> /etc/profile.d/user.sh
  8. # 生效系统环境变量
  9. 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文件末端添加以下内容,在添加文件内容时查看是否自动在行首添加了注释符号#,如果自动添加了,必要将注释符号删除

  1. # 默认提交到YARN集群运行
  2. spark.master                     yarn
  3. # 配置日志存储路径,HDFS上的目录需要提前创建
  4. spark.eventLog.enabled           true
  5. spark.eventLog.dir               hdfs://bigdata:8020/spark/logs
  6. # Executor和Driver堆内存
  7. spark.executor.memory            1g
  8. spark.driver.memory              1g
  9. 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文件末端添加以下内容

  1. # Hadoop集群(客户端)配置文件的目录,读取HDFS上文件和运行Spark在YARN集群时需要
  2. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  3. export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  4. # Spark的classpath依赖配置,设置为Hadoop命令路径
  5. 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资源,这步必须确定上传成功

  1. # 新建目录
  2. hadoop fs -mkdir -p /spark/jars
  3. hadoop fs -mkdir -p /spark/logs
  4. # 上传jar
  5. hadoop fs -put $SPARK_HOME/jars/*.jar /spark/jars/
复制代码

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

  1. schematool -dbType mysql -initSchema
复制代码

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

  1. cp /root/software/log4j.properties $HIVE_HOME/conf
复制代码

4.13启动元数据服务

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

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

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




5.Anaconda安装

5.1安装Anaconda

  1. # 执行安装程序
  2. bash /root/software/Anaconda3-2024.10-1-Linux-x86_64.sh
  3. # 按照顺序依次按下enter-->q-->yes-->/opt/module/anaconda3-->enter-->yes-->bash
  4. # 测试安装的Python
  5. python
  6. exit()
  7. # 配置jupyter
  8. jupyter-lab --generate-config
  9. # 设置密码为123456
  10. 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
  11. # 启动jupyter lab
  12. 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无法表现中文的题目

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

最后两行代码放在python代码中利用
三、后续利用

当所有情况部署好了之后,关闭步伐不会影响已经做过的部分,只要不重启虚拟情况,那么安装的步伐则不停有效。由于这是用友企业在专业课设期间创建的教学空间,截止时间一到即所有内容崩坏。

关闭平台后如果想再次进入,选择自己对应的公网IP的root账号并输入虚拟机对应的Password即可重新毗连


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万有斥力

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表