hadoop.home.dir在哪儿

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop.home.dir在哪儿相关的知识,希望对你有一定的参考价值。

1、bin:
bin目录是Hadoop最基本的管理脚本和使用脚本所在的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop
在这里插入图片描述

2、sbin
存放的是我们管理脚本的所在目录,重要是对hdfs和yarn的各种开启和关闭和单线程开启和守护
在这里插入图片描述

文件名称 作用
hadoop-daemon.sh 通过执行hadoop命令来启动/停止一个守护进程(daemon);他可以单独开启一个进程也可以使用hadoop-daemons来开启多个进程,这样我们在某台机器挂掉时,就不用全部重新开启了
start-all.sh 调用 start-dfs.sh和start-yarn.sh(官方不建议使用)
stop-all.sh 调用 stop-dfs.sh和stop-yarn.sh(官方不建议使用)
start-dfs.sh 启动NameNode ,SecondaryNamenode ,DataNode这些进程
start-yarn.sh 启动ResourceManager,nodeManager 这些进程
stop-dfs.sh 关闭NameNode ,SecondaryNamenode ,DataNode这些进程
stop-yarn.sh 关闭ResourceManager,nodeManager 这些进程
stop-balancer.sh 停止balancer
stop-mapred.sh 停止MapReduce
3、etc
存放一些hadoop的配置文件
在这里插入图片描述

文件名称 作用说明
core-site.xml Hadoop核心全局配置文件,可以其他配置文件中引用该文件中定义的属性,如在hdfs-site.xml及mapred-site.xml中会引用该文件的属性;该文件的模板文件存在于$HADOOP_HOME/src/core/core-default.xml,可将模板文件复制到conf目录,再进行修改。
hadoop-env.sh Hadoop环境变量
hdfs-site.xml HDFS配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/hdfs/hdfs-default.xml,可将模板文件复制到conf目录,再进行修改
mapred-site.xml MapReduce的配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/mapred/mapredd-default.xml,可将模板文件复制到conf目录,再进行修改
slaves 用于设置所有的slave的名称或IP,每行存放一个。如果是名称,那么设置的slave名称必须在/etc/hosts有IP映射配置
4、lib
该目录下存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中。
在这里插入图片描述

5、logs
该目录存放的是Hadoop运行的日志,查看日志对寻找Hadoop运行错误非常有帮助。
在这里插入图片描述

6、include
对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。

在这里插入图片描述

7、libexec
各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
在这里插入图片描述

8、share目录
Hadoop各个模块编译后的jar包所在的目录。
在这里插入图片描述
在这里插入图片描述

文章知识点与官方知识档案匹配
CS入门技能树Linux入门初识Linux
23099 人正在系统学习中
参考技术A 您好,bin目录是Hadoop最基本的管理脚本和使用脚本所在的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop
在这里插入图片描述
2、sbin
存放的是我们管理脚本的所在目录,重要是对hdfs和yarn的各种开启和关闭和单线程开启和守护
在这里插入图片描述
文件名称 作用
hadoop-daemon.sh 通过执行hadoop命令来启动/停止一个守护进程(daemon);他可以单独开启一个进程也可以使用hadoop-daemons来开启多个进程,这样我们在某台机器挂掉时,就不用全部重新开启了
start-all.sh 调用 start-dfs.sh和start-yarn.sh(官方不建议使用)
stop-all.sh 调用 stop-dfs.sh和stop-yarn.sh(官方不建议使用)
start-dfs.sh 启动NameNode ,SecondaryNamenode ,DataNode这些进程
start-yarn.sh 启动ResourceManager,nodeManager 这些进程
stop-dfs.sh 关闭NameNode ,SecondaryNamenode ,DataNode这些进程
stop-yarn.sh 关闭ResourceManager,nodeManager 这些进程
stop-balancer.sh 停止balancer
stop-mapred.sh 停止MapReduce
3、etc
存放一些hadoop的配置文件
在这里插入图片描述
文件名称 作用说明
core-site.xml Hadoop核心全局配置文件,可以其他配置文件中引用该文件中定义的属性,如在hdfs-site.xml及mapred-site.xml中会引用该文件的属性;该文件的模板文件存在于$HADOOP_HOME/src/core/core-default.xml,可将模板文件复制到conf目录,再进行修改。
hadoop-env.sh Hadoop环境变量
hdfs-site.xml HDFS配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/hdfs/hdfs-default.xml,可将模板文件复制到conf目录,再进行修改
mapred-site.xml MapReduce的配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/mapred/mapredd-default.xml,可将模板文件复制到conf目录,再进行修改
slaves 用于设置所有的slave的名称或IP,每行存放一个。如果是名称,那么设置的slave名称必须在/etc/hosts有IP映射配置
参考技术B hadoophomedir在哪儿?
答案如下:代M在tetle首页。首先第一步先点击打开设置按钮,然后帐户管理在页面点击账号安全中心进入即可完成!

关于java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.的问题

报错如下:

300 [main] DEBUG org.apache.hadoop.util.Shell  - Failed to detect a valid hadoop home directory
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set

 

解决办法一:

根据 http://blog.csdn.net/baidu_19473529/article/details/54693523 配置hadoop_home变量

下载winutils地址https://github.com/srccodes/hadoop-common-2.2.0-bin下载解压

技术图片

技术图片

 

 

依然报相同的错误

 

解决办法二:

在java程序中加入

System.setProperty("hadoop.home.dir", "/usr/local/hadoop-2.6.0");

依然报错

 

解决办法三:

根据该提示:

 

技术图片

依然报错

--------------------------------5.19.早晨------------------------------------------

今天早上再次执行该程序,将上传到HDFS部分的代码给注释掉后发现日志报错信息如下:

132 [main] DEBUG org.apache.hadoop.util.NativeCodeLoader  - Trying to load the custom-built native-hadoop library...
134 [main] DEBUG org.apache.hadoop.util.NativeCodeLoader  - Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: no hadoop in java.library.path

1)check Hadoop library:

[email protected]:/usr/local/hadoop-2.6.0/lib/native# file libhadoop.so.1.0.0

技术图片

It‘s 64-bite library

2)Try adding the HADOOP_OPTS environment variable:

[email protected]:~# vi /etc/profile                            //environment variable
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native/"

It doesn‘t work, and reports the same error.

3)Try adding the HADOOP_OPTS and HADOOP_COMMON_LIB_NATIVE_DIR environment variable:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/"

It still doesn‘t work, and reports the same error.

4)Adding the Hadoop library into LD_LIBRARY_PATH

[email protected]:~# vi .bashrc 
export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native/:$LD_LIBRARY_PATH

It doesn‘t work, and reports the same error.

5)append word native to HADOOP_OPTS like this

export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"

It doesn‘t work, and reports the same error.

-----------------------------------5.20早晨-------------------------

win下依旧无法使用java代码上传文件到HDFS

 ----------------------------------5.24------------

copy了一份hadoop-2.6.0文件到本机,更改bin目录和path ,显示无效的path,遂更改回去

---------------------2017.5.26-------------------

今天早上开机 试了一下 发现它已经好了  其实上述的设置已经可以解决大部分遇到这类问题的人群

 技术图片

 

以上是关于hadoop.home.dir在哪儿的主要内容,如果未能解决你的问题,请参考以下文章

关于java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.的问题

解决spark运行中failed to locate the winutils binary in the hadoop binary path的问题

HDFS 开发中的文件配置优先级

Spark中使用Java编程的常用方法

java远程连接hadoop,kerbers认证失败 报no supported default etypes for default_tkt_enctypes

Spark完成wordCount