毕设开发日志2017-10-24

【今日工作内容】
1.空指针异常错误的解决
导入了一两个文件之后发现总有一些空指针异常的抛出,虽然未能影响整个数据文件的导入过程,但是控制台中不时地闪过几条异常数据还是让人挺不爽的。然后查询数据文件发现某些行的数据有些数据项的缺失,导致组装成对象时成员变量缺失,然后数据传到dao层之后就会报空指针。
这个时候想起了之前看到的一篇博客,说实习生经常犯得一个错误就是拿到数据之后不验证就直接用。我想我也是犯了这个错误。于是这里就加了一个验证,就是如果数据项缺失严重就抛弃这条数据。然后就是装对象的时候对象先 构造一下,这样成员变量会有一个缺省值,传到dao层的时候不至于空指针。
2.hbase崩溃
再完成了4个文件共计约220w条数据之后hbase无响应,重启之后进入hbase的shell中发现无法启动hbase,找不到zookeeper进程。进入50070端口之后发现datanode报了一个“connection reset by peer”的错误。
网上查询到相关描述是
常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是:
①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
②:客户关掉了浏览器,而服务器还在给客户端发送数据;
③:浏览器端按了Stop

通常原因为:远程主机上对等方应用程序突然停止运行,或远程主机重新启动,或远程主机在远程方套接字上使用了“强制”关闭 (参见setsockopt(SO_LINGER))。另外,在一个或多个操作正在进行时,如果连接因“keep-alive”活动检测到一个失败而中 断,也可能导致此错误。此时,正在进行的操作以错误码WSAENETRESET失败返回,后续操作将失败返回错误码WSAECONNRESET。
但是如果频繁出现,就表示很 多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题。
回想起刚才无响应时我强制关闭了数据上传的进程,可能是因为这个。但是无响应的问题怀疑是因为数据量太大的缘故。果断提高虚机内存到4G,提升存储空间到80G,只能在自己能做的范围做了,做大数据需要个好电脑啊。
3.前端页面
数据上传的时候自己也没闲着,查询了很多资料,最后确定使用highcharts.js做图表库,使用bootstrap.js做前端开发框架
4.前端开发
由于数据上传时间较长,且上传时无法编写后端(JVM内存不够),于是着手准备开发前端界面。

原文地址:https://www.cnblogs.com/420Rock/p/7726604.html