《大数据技术原理与应用》课程作业遇到过的错误排查
hadoop
1.tar解压与压缩命令参数不会写
解答:
参考《Linux Shell 脚本攻略》
2.不知道如何切换用户
解答:
通过su + 用户名方式切换
3.vim下不知道如何编辑和保存文件
解答:
按i编辑,按esc接着按:wq就是保存后退出,按:!q就是不保存强制退出
HDFS
1../bin/hadoop dfs命令无效
解答:
首先要切换到hadoop文件夹中才行,首先使用如下命令:cd /usr/local/hadoop
2.不知道shell中的if命令如何写
解答:
shell中的判断:if then else fi,注意每一个if一定要以fi结尾,形成一个闭环
3.不知道shell中如何判断是否存在同名文件
解答:
在if里面写如下语句可以判断文件是否存在./bin/hadoop dfs -test -e
HBase
① 打开dfs和hbase以后发现无法用终端打开eclipse
解答:
手动打开eclipse
② 手动打开eclipse的时候出现找不到jre的位置
解答:
将之前安装的jre与eclipse绑定,进入eclipse的根目录,输入以下几个命令即可解决:mkdir jre,sudo mkdir jre,sudo ln -s /usr/lib/jvm/jdk1.8.0_162/bin bin
③ 运行eclipse的java项目时候有很多异常
解答:
在终端输入一次start-hbase.sh,接着输入jps,检查所有进程是否运行
④ 出现”Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”
解答:
该信息可以忽略,不影响结果
⑤ 题目“列出HBase所有的表的相关信息,例如表名;”,运行java代码的时候没有输出
解答:
必须先创建一个表,比如可以提前在hbase shell里面输入create ‘student’,’name’,此时再执行代码即可!
⑥ 出现未导包的问题
解答:
对未导入的包,飙红部分右键->”source”->”orgnize imports”,接着选择合适的包系统就会进行自动导入
NoSQL和关系数据库的操作比较
1.连接MySQL数据库出现timezone的问题
解答:
对于高版本的数据库,比如8.0版本以上的MySQL,需要在连接的url后面加上timezone的选项,将url改成下面的句子就可以解决问题:”jdbc:mysql://localhost:3306/test?serverTimezone=UTC”
2.redis在终端无法启动
解答:
必须在一个终端启动redis的server,然后开启另外一个终端来启动redis的输入界面
3.eclipse无法运行java程序去操作Redis和MongoDB
解答:
到mvnrepository去下载对应的java驱动,mongo-java-driver-3.12.1.jar和jedis-2.9.0.jar添加进入java项目的外部jar包依赖中即可
4.java的jdis进行插入操作出现异常”Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused (Connection refused)”
解答:
必须启动redis的server,输入cd /usr/local/redis/接着./src/redis-server去启动server
Hive
1.出现com.google.common.base.Preconditions.checkArgument 异常
解答:
经过检查hive里面的guava版本是19.0,而hadoop里面的guava版本是27.0,此时用hadoop里面的guava代替hive里面的guava就可以了(使版本保持一致,使用高版本替代低版本)
2.hive在启动的时候出现大串错误
解答:
将mysql jdbc加入hive的目录下即可
3.出现WARN DataNucleus.Query异常
解答:
首先使用cd命令切换目录到绝对路径/usr/local/hive,然后使用shell命令重新初始化数据库bin/schematool -dbType mysql -initSchema,最后再重新进入hive即可!