大数据学习-----排错记录
1.使用lombok+注解实现免写手写setget构造方法
1.1在项目pom.xml中引入架包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
1.2在项目pojo中加入所需注解
1.3在项目中导入lambok架包之后,将其拷贝在本机的eclipse安装目录下(我把版本号去掉了)
1.4将本机的eclipse安装目录下的eclipse.ini文件中最后加上
-javaagent:lombok.jar(不要忘写“-”)
1.5双击lombok.jar,如果不行就restart自己的eclipse
(说明:通过pom.xml引入lambok架包,去掉data注释之后使用手动添加同样不可用。Lambok注解和setget不兼容,只能使用其一)
2.hdfs的核心配置文件内容配置 core-site.xml、hdfs-site.xml如果出错需要重新格式化hdfs hdfs namenode -format
3.在eclipse里新建maven项目
3.1保证有网络的情况而且保证网不断
如果没执行完就断网了,需要把下载的东西一一删除再重新创建项目
3.2直接新建maven项目出了错
解压maven.zip到某一全英文路径(我的是在E盘下)
在eclipse里的windows -> preferences -> 右侧木兰路maven->user setting -> 将自己解压的maven路径放进去
在maven同路径下新建一个仓库
再次点开user setting 会发现他告诉了你仓库的位置,在第一次建立maven项目之后,会下载东西到这个仓库里
3.3出现“Could not calculate build plan:Plugin”错误
解决办法:
打开yourname\.m2\ repository\org\apache\maven\plugins\maven-deploy-plugin
然后把里面的文件夹删掉(我的是这个 删掉2.7这个文件夹)
然后右击项目-maven-update project 强制更新即可,注意勾中红圈
原地址 https://blog.csdn.net/wjy329/article/details/79306847
3.4将上述解决办法执行完之后,若还不行,删掉原项目,重新建立一个Maven项目
3.4.1在eclipse里 右击NEW -> maven ->maven project -> 勾选三个选项(创建简单自带一些包的项目+把项目放在workplace里) -> 填写自己项目的包名-Group Id、项目名Artifact Id,将packing改为war -> 确认
3.4.2现在可以看到maven项目基本的结构,可是还是项目角会有报错,那么在webapp下新建WEB-INF文件,再建web.xml
3.4.3现在可以看见完整目录
4.在eclipse项目中进行了pom配置,但是没有显示导入架包并且单纯通过F5刷新项目没有反应
解决办法,右击项目--> MAVEN-- >Upadate 可以看见导入架包的进度条
5.运行weather 生成空的多层临时文件目录。原因在于
A、逻辑有误 B、Myjob里包导错 C、多等一会并刷新(数据量不够大或者一些情况下,速度比较慢)
6.反射时可通过字符串名找到字符串对应的类,若出现classnotfound错误原因有
A、类错了 B、缺架包
7.在新建maven文件后 通过浏览器http://127.0.0.1//Mymaven1/pages/index.jsp显示无法建立连接,也出过网络连接不安全的问题,但实际上eclipse里能正常运行,原因是
在tomcat里面设置是localhost,所以在浏览器中确实不会连接成功使用http://localhost//Mymaven1/pages/index.jsp
8.在linux 系统中开启tomcat之后,在本地无法连接http://192.168.64.142 原因是
A、默认80端口,若tomcat也是则可以不加,B、若80端口被别的占用,则需要改回8080端口
9.在eclipse里运行mapreduce报错(null) entry in command string: null chmod 0700,原因是
虽然将hadoop解压放在全英文路径下且在本机配置了hadoop环境变量,但是没有将hadoop.dll,winutils.exe,libwinutils.lib放在C:System32
10.使用注解方式实现泛型+sql拼接添加数据表信息,出现“Incorrect string value: '\xE5\xB0\x8F\xE7\x8C\xAA' for column 'name' at row 1”
查阅资料后得知是,SQL语句的编码格式问题。将插入语句换为全英文后发现确实如此。
10.1然后去mysql中修改student默认编码, 新建查询 alter table student default character set utf8;
10.2修改表内的属性编码, 新建查询alter table student change name sex varchar(10) character set utf8;
最后测试中文也成功
11.在另一个名为server3的linux系统上实现免密登录时,由于server2上的authorized.keys已经配置了server1的公钥key,所以我的第一想法就是在server2上新建authorized2.keys并将server3上的key拷贝过来,结果还是需要输入密码,原因在于:
所有的公钥都应该在authorized.keys上,不应该新建authorized.keys。测试成功。
12.运行mapreduce项目,输出文件只有一个空文件,原因在于
12.1我的Map--> Combiner-- > Reduce输入输出类型不匹配
12.2输入mapreduce的文件某一行,缺少相应字段
13.运行mapreduce项目,在pom总显示红叉叉但是也能运行,甚至在update maven之后就消失红叉运行之后又显示,排查之后发现原因是于
自己创建的WEB-INF写成了WEBB-INF
14.在maven项目中的pom.项目了引入log4j之后,仍然无法打印日志信息。
将log4j.properties拷贝到maven项目中的resource下(我的log4j.properties架包是在hadoop/tc/hadoop下找到),如:
15.mapreduce计算结果插入mysql出现中文乱码,显示错误Incorrect string value: '\xE5\xB9\xBF\xE4\xB8\x9C...' for column 'ipname' at row 1,原因在于
我在建表时,没有设置编码方式,所以用sql语句来建表指明编码方