(基于Hadoop的大数据采集和分析)毕业实训项目笔记
1、VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态
更新:2021年7月8日15:18:21
参考:VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态怎么解决
2、修改hosts文件无法保存/只能另存为txt
更新:2021年7月9日01:35:43
参考:解决方案:修改hosts文件无法保存/只能另存为txt_Repuuunzel-CSDN博客
3、腾讯课堂回放
更新:2021年7月9日01:38:46
参考:21年夏季短周期
4、vim多行编辑、多行删除
更新:2021年7月9日01:41:04
参考:vim多行编辑、多行删除_marinxue的博客-CSDN博客_vim 删除多行
5、关闭SELinux
更新:2021年7月9日10:18:33
参考:为什么要关闭 selinux – 阿汤博客
参考:Linux 下为何要关闭 SELinux? - 知乎
参考:linux 为什么要关闭selinux - 坚守梦想 - 博客园
参考:永久关闭selinux(强制访问控制)_ruoxiyun的博客-CSDN博客_关闭selinux有什么影响
vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
6、在win10环境下安装vmware软件后没有vmnet1、vmnet8虚拟网卡
更新:2021年7月10日09:37:01
参考:在win10环境下安装vmware软件后没有vmnet1、vmnet8虚拟网卡!_天下程序是一家的博客-CSDN博客_win10没有vmnet1和vmnet8
7、Windows下安装Hadoop并配置环境
更新:2021年7月10日09:47:27
参考:全版本Hadoop官方列表:Index of /dist/hadoop/common
参考:WIN10安装配置Hadoop - 知乎
参考:Window上安装Hadoop - 华为云
8、MobaXterm
更新:2021年7月10日15:26:27
参考:【微信公众号:HelloCoder 2020-10-07】一款好用的终端工具—MobaXterm
参考:推荐7款超级好用的终端工具 —— SSH+FTP_HaC 的博客-CSDN博客_ssh工具
9、关于Linux无法创建目录
[hadoop@hadoop100 ~]$ mkdir /tmp
mkdir: 无法创建目录"/tmp": 权限不够
利用ll 命令查看文件夹权限:
[hadoop@hadoop100 /]$ ll
总用量 16
lrwxrwxrwx. 1 root root 7 7月 8 18:48 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 7月 8 18:54 boot
drwxr-xr-x 20 root root 3180 7月 10 09:08 dev
drwxr-xr-x. 77 root root 8192 7月 10 15:13 etc
drwxr-xr-x. 3 root root 20 7月 8 18:52 home
lrwxrwxrwx. 1 root root 7 7月 8 18:48 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 7月 8 18:48 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 11月 5 2016 media
drwxr-xr-x. 2 root root 6 11月 5 2016 mnt
drwxr-xr-x. 8 hadoop hadoop 82 7月 9 11:05 opt
dr-xr-xr-x 128 root root 0 7月 10 09:07 proc
dr-xr-x---. 3 root root 176 7月 9 15:14 root
drwxr-xr-x 22 root root 640 7月 10 14:34 run
lrwxrwxrwx. 1 root root 8 7月 8 18:48 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 11月 5 2016 srv
dr-xr-xr-x 13 root root 0 7月 10 09:08 sys
drwxr-xr-x 3 root root 24 7月 10 15:40 tmp
drwxr-xr-x. 13 root root 155 7月 8 18:48 usr
drwxr-xr-x. 19 root root 267 7月 10 09:08 var
[hadoop@hadoop100 /]$ sudo chown -R hadoop:hadoop /tmp/
[hadoop@hadoop100 /]$ ll
总用量 16
lrwxrwxrwx. 1 root root 7 7月 8 18:48 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 7月 8 18:54 boot
drwxr-xr-x 20 root root 3180 7月 10 09:08 dev
drwxr-xr-x. 77 root root 8192 7月 10 15:13 etc
drwxr-xr-x. 3 root root 20 7月 8 18:52 home
lrwxrwxrwx. 1 root root 7 7月 8 18:48 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 7月 8 18:48 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 11月 5 2016 media
drwxr-xr-x. 2 root root 6 11月 5 2016 mnt
drwxr-xr-x. 8 hadoop hadoop 82 7月 9 11:05 opt
dr-xr-xr-x 128 root root 0 7月 10 09:07 proc
dr-xr-x---. 3 root root 176 7月 9 15:14 root
drwxr-xr-x 22 root root 640 7月 10 14:34 run
lrwxrwxrwx. 1 root root 8 7月 8 18:48 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 11月 5 2016 srv
dr-xr-xr-x 13 root root 0 7月 10 09:08 sys
drwxr-xr-x 3 hadoop hadoop 24 7月 10 15:40 tmp
drwxr-xr-x. 13 root root 155 7月 8 18:48 usr
drwxr-xr-x. 19 root root 267 7月 10 09:08 var
更新:2021年7月10日19:38:03
参考:Linux chown 命令 | 菜鸟教程
参考:Linux 非root用户不能创建目录的解决办法_weixin_33810302的博客-CSDN博客
10、chmod命令
更新:2021年7月11日13:02:50
参考:Linux chmod命令用法 - 七月晓晓翁 - 博客园
更新:2021年7月15日24:50:28
参考:Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)_wlin的博客-CSDN博客_chmod
11、MobaXterm中文乱码

更新:2021年7月11日15:42:08
参考:MobaXterm中文乱码问题 - 简书
12、将演示文档中的代码粘贴进去之后发现部分乱码

vim查看文件编码格式:在非插入模式下输入以下命令
:set fileencoding
Linux环境下的编码默认都是utf-8且换行符为\n\r ,而Windows中的默认编码为GB2312且换行为\n ,所以由Windows中复制粘贴代码到Linux环境中时一定要注意编码格式以及去除多余的\r 否则就会无法运行且中文乱码。比如:【$’\r’: 未找到命令】、【/bin/bash^M: 坏的解释器: 文本文件忙】(这个问题好像不是编码的问题,我在重启一些相关服务后就解决了该问题)、【/bin/bash^M: 坏的解释器:没有那个文件或目录”】等等问题,可以在Linux环境中安装dos2unix :
$ sudo yum install dos2unix
$ dos2unix xxxxx.txt
更新:2021年7月13日24:38:51
参考:$’\r’: 未找到命令的解决_zhangmiaoping23的专栏-CSDN博客
参考:$’\r’: 未找到命令的解决办法_Jerry-blog-CSDN博客
参考:解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题_671coder的专栏-CSDN博客_坏的解释器
参考:运行脚本:‘$’\r’: 未找到命令’错误 - 月夜星光 - 博客园
参考:Linux系统中’\r’与‘\n’的区别 - 程序员大本营
参考:windows 复制代码到linux 文本中文乱码_phantom in ORACLE-CSDN博客
参考:Matlab代码从Windows拷贝到Linux变成乱码_Linux教程_Linux公社-Linux系统门户网站
13、Linux时间不同步
以下操作必须切换成root用户(使用root权限)
[root@hadoop100 .ssh]
9 Jan 11:49:13 ntpdate[11274]: adjust time server 185.209.85.222 offset -0.016417 sec
[root@hadoop100 .ssh]
2021年 01月 09日 星期六 11:49:32 CST
更新:2021年7月12日14:38:28
参考:国内常用的几个NTP时间服务器 - Tse先生 - 博客园
no server suitable for synchronization found

更新:2021年7月14日23:19:54
参考:解决ntp的错误 no server suitable for synchronization found_u013444177的专栏-CSDN博客
查看ntp 版本:
[hadoop@hadoop100 ~]$ sudo ntpq -c version
ntpq 4.2.6p5@1.2349-o Tue Jun 23 15:38:21 UTC 2020 (1)
查看是否安装了ntp :
[hadoop@hadoop100 ~]$ sudo rpm -qa | grep ntp
ntpdate-4.2.6p5-29.el7.centos.2.x86_64
ntp-4.2.6p5-29.el7.centos.2.x86_64
更新:2021年7月14日23:35:04
参考:crontab中的ntpdate 时间同步不生效
参考:crontab中的ntpdate 时间同步不生效 - 乌托邦眺望 - 博客园
参考:ntpdate-时间同步 - MitaChen - 博客园
参考:Linux基础命令—ntpdate网络时间服务器 - 一生有你llx - 博客园
参考:解决linux系统时间不对的问题_夕秋一梦的博客-CSDN博客_linux时间不对
参考:虚拟机时间同步_qianchang_na的博客-CSDN博客_虚拟机时间同步命令
参考:时间同步问题no server suitable for synchronization found - 简书
14、MapReduce执行任务时卡在mapreduce.Job: Running Job这一步
更新:2021年7月13日24:03:40
参考:MapReduce执行任务时卡在mapreduce.Job: Running Job这一步该如何解决_sinat_33769106的博客-CSDN博客
参考:在执行wordcount时,job卡住不继续执行。-MapReduce-About云开发
参考:运行hadoop的MapReduce示例,在running job卡住,不能继续运行-CSDN社区
参考:MapReduce执行卡在Running job不动 - zhouyeqin - 博客园
参考:MapReducejob卡住_百度搜索
室友出现这个问题,我看了看,据他说是卡在了mapreduce.Job: Running Job这一步,于是百度搜索相关问题,发现了网上有不少相关的帖子都是在说似乎是yarn-site.xml 这个文件有问题,需要配置hostsname之类的,但是室友的问题应该不是host的问题,于是我就让他尝试将yarn 的相关进程(就是那两个xxxxManager啥的)给重新启动一下,在运行hadoop/etc/hadoop/ 目录下的stop-yarn.sh 时看到了类似“no proxyserver to stop ”的信息(其实以事后诸葛亮的视角来看从这里就可以看出yarn 的相关进程有问题)。

然后用jps 命令查看进程信息,发现确实没有xxxxManager 的进程,然后再运行start-yarn.sh 脚本重启yarn 的相关进程有问题,然后用jps 命令查看进程信息,出现了xxxxManager 进程,然后再次用hadoop 命令执行MapReduce任务。终于正常运行!
后来好像是又出现了无法从本地上传文件到hdfs 文件系统,于是我让他尝试用hadoop 中的命令直接操作一下文件系统。
$ hadoop fs -mkdir -p /xxxx/xxx
发现提示Name node is in safe mode 。
 我让室友搜了搜Name node is in safe mode 这个问题,尝试用相关命令关闭HDFS的安全模式。
$ hadoop dfsadmin -safemode leave

提示Safe mode is OFF ,之后再次用hadoop命令在HDFS文件系统中创建目录,发现成功运行!
更新:2021年7月14日22:17:07
参考:HDFS安全模式详解_Spring , Hadoop, Spark , BI , ML-CSDN博客_hdfs 安全模式
参考:HDFS 安全模式的理解 - 记忆残留 - 博客园
15、商品后台管理系统中上传商品图片时出现上传后图片不显示的问题
查看数据库中的商品数据发现上传的商品在商品表t_goods 中的goodsPicUrl 字段中的值为http://主机IP地址:8080/images/图片文件名 ,如下图所示:

同时我发现在虚拟机服务器中的Tomcat 的webapps 目录下出现了imagesxxxx.jpg 的图片文件(比如我后台商品管理页面上传的是audi.jpg,则在Tomcat 的webapps 目录下就出现了imagesaudi.jpg ),尝试几次后均是该结果。
 观察到原来就在表中的商品的goodsPicUrl 均为/university/img/图片文件名 ,于是我尝试用SQL语句将刚才上传的图片的goodsPicUrl 改为相应的格式。

并且将相应的图片移动到预期的目录:/university/img/ ,刷新商品管理页面后发现图片正常显示。

于是我猜想可能是后台的上传代码出了问题,于是打开本地项目查看,在utils 包中的UploadUtils 类中的uploadImage 方法中发现了以下相关代码:

果断将该方法的返回值改成了相应的路径。重新打包生成war 包后将服务器中的原来的war 包和相应的同名项目目录给删掉,重新将本地的war 包上传到服务器上,再重启Tomcat 服务。测试上传图片后商品列表中的图片是否会显示,结果发现还是没有显示。而且Tomcat 的webapps 目录下又出现了imagesxxxx.jpg 的图片文件。查看数据库中的数据,发现刚才上传的图片的goodsPicUrl 字段的值为预期的格式,于是猜想应该是上传图片时图片在服务器中的存储位置有问题,再次查看代码,发现了controller 包下的GoodsController 类下的uploadImageFile 方法中的以下代码:

可以发现这里的图片存储位置和之前的utils 包中的UploadUtils 类中的uploadImage 方法中返回到数据库中的路径不一样,自然就导致图片无法正确显示(因为后台页面中的图片也是根据数据库中的goodsPicUrl 来读取Tomcat服务器上的文件图片再进行加载的)。于是将代码改为与数据库中的代码相对应的路径:……/tomcat9/webapps/university/img/ (注意这里的img 后面的/ 千万不要丢了,否则图片就会被保存在……/tomcat9/webapps/university/ 目录下并且图片文件名称会变为imgxxxx.jpg ,这也是为什么上面在Tomcat 的webapps 目录下会出现了imagesxxxx.jpg 的原因了),再次重新打包并重新上传至虚拟机服务器中,重启Tomcat服务,测试相关功能,发现一切按预期运行!
16、SSH免密登录
室友老师提供的方法(根据室友反馈,确实可以实现预期效果):  2021年7月15日00:28:57,我先把原来生成的.ssh 文件夹给删除了,然后又用上面的命令生成了密钥。查看.ssh 目录下的文件,发现生成的文件和之前的是一样的。然后我再尝试免密登录,发现还是要输入密码。
15/07/2021 00:27.40 /home/mobaxterm ssh hadoop@hadoop100
hadoop@hadoop100's password:
我的指导老师提供的方法,刚生成的时候确实可以免密登录,关掉之后再连又要我输入密码。
[hadoop@hadoop100 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:yQYChs4eniVLeICaI2bCB9HopbXUBE9v0lpLjBACUnM hadoop@hadoop100
The key's randomart image is:
+---[RSA 2048]----+
|==O+Eo |
|=+.O+.= |
|Bo* o+.B |
|B%.+ .*o.. |
|OoB . .S |
| = . |
| |
| |
| |
+----[SHA256]-----+
[hadoop@hadoop100 ~]$ cd ~/.ssh/
[hadoop@hadoop100 .ssh]$ cat id_rsa.pub >> authorized_keys
[hadoop@hadoop100 .ssh]$ chmod 600 authorized_keys
[hadoop@hadoop100 .ssh]$ ssh hadoop@hadoop100
The authenticity of host 'hadoop100 (192.168.186.100)' can't be established.
ECDSA key fingerprint is SHA256:aGLhdt3bIuqtPgrFWnhgrfTKUbDh4CWVTfIgr5E5oV0.
ECDSA key fingerprint is MD5:b8:bd:b3:65:fe:77:2c:06:2d:ec:58:3a:97:51:dd:ca.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hadoop100,192.168.186.100' (ECDSA) to the list of known hosts.
Last login: Sat Jan 9 10:16:53 2021 from 192.168.186.1
更新:2021年7月14日23:44:10
参考:Linux的时间设置,修改时间,免密登录_剑雨江湖-CSDN博客
参考:ssh-copy-id三步实现SSH无密码登录和ssh常用命令_liu_qingbo的专栏-CSDN博客_ssh-copy-id
17、没法打开CSDN
更新:2021年7月27日16:08:33
本来想把这篇笔记上传到CSDN的,结果发现CSDN打不开了,显示502 Bad Gateway openresty ,将自己设置的V-P-N网关代理服务关闭后清空缓存强制刷新就好了。
更新:2021年7月27日16:11:28
参考:OpenResty? - 中文官方站
参考:OpenResty 使用介绍 | 菜鸟教程
参考:OpenResty工作原理 - 简书
17、没法打开CSDN
更新:2021年7月27日16:08:33
本来想把这篇笔记上传到CSDN的,结果发现CSDN打不开了,显示502 Bad Gateway openresty ,将自己设置的V-P-N网关代理服务关闭后清空缓存强制刷新就好了。
更新:2021年7月27日16:11:28
参考:OpenResty? - 中文官方站
参考:OpenResty 使用介绍 | 菜鸟教程
参考:OpenResty工作原理 - 简书
|