Hadoop常见问题一
1.在使用Hadoop的有关命令的时候,出现Warnning ...等提示时?
这是因为JDK内部的原因而导致的,所以提示建议选用不同版本的JDK。本人刚开始使用的是:JDK11,Centos操作系统,hadoop2.9.2,在进行hadoop命令操作时,出现Warnning,之后将JDK11改为JDK8后,使用hadoop命令不在出现警告,当然读者也可以尝试不同的JDK版本。
2.在linux中运行jar文件?
在window下使用eclipseIDE进行java源代码的编辑,然后打包成jar文件,然后上传到Hadoop所在的主机上,然后启动hadoop的所有组件,进而使用hadoop jar xxx.jar文件,这里有一个问题注意:在window中使用的JDK的版本需要与hadoop上配置的JDK的版本一致,因此Java支持高版本JVM运行低版本的class文件,但是不支持低版本的JVM运行高版本编译的class文件。
3.注意hadoop的类路径配置问题
当运行jar文件的时候,提示Could not find or load main class XXXXX.jar,主要原因是没有运行时没有找到jar包,有两种方式:一种是使用export HADOOP_CLASSPATH="XXX" 或者在 hadoop-env.sh中添加export HADOOP_CLASSPATH="XXX".
4.启动hadoop的各个组件的时候,没有namenode节点?
配置:core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>xxxx</value> //不要是temp文件就是,默认是temp文件,但是temp文件在每次重启后内容会被清空
</property>
配置完成后,,需要先初始化namenode节点: 使用 hadoop namenode -format
5.在从HDFS中读取文件的时候,URI的注意事项?
如果core-site.xml中的配置如下:
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
则在编辑JAVA代码的时候,确定URI的时候需要和这个一致,应该是:
String uri="hdfs://localhost/test/test.txt";