【问题标题】:Installing, Configuring, and running Hadoop 2.2.0 on Mac OS X在 Mac OS X 上安装、配置和运行 Hadoop 2.2.0
【发布时间】:2014-11-08 19:00:06
【问题描述】:

我已经安装了 hadoop 2.2.0,并在此处根据本教程设置了所有内容(针对单个节点):Hadoop YARN Installation。但是,我无法让 hadoop 运行。

我认为我的问题是我无法连接到我的本地主机,但我不确定为什么。我花了大约 10 个小时来安装、搜索和讨厌开源软件安装指南,所以我现在转向了一个从未让我失望过的地方。

因为一张图片值一千字,我给你我的设置......在许多许多words图片中:


基本配置文件/设置


我正在运行 Mac OS X (Mavericks 10.9.5)

不管它值多少钱,这是我的/etc/hosts 文件:

我的 bash 个人资料:


Hadoop 文件配置


core-site.xmlhdfs-site.xml 的设置:

注意:我已在您在上面看到的位置创建文件夹

我的yarn-site.xml 的设置:

为我的hadoop-env.sh 文件设置:


旁注


在我展示运行start-dfs.shstart-yarn.sh 的结果并检查jps 运行的结果之前,请记住我有一个hadoop 指向hadoop-2.2.0


启动 Hadoop


现在,这是我启动守护程序时的结果:

对于那些没有显微镜的人(在这篇文章的预览中它看起来超级小),这里是上面显示的代码块:

mrp:~ mrp$ start-dfs.sh
2014-11-08 13:06:05.695 java[17730:1003] 无法从 SCDynamicStore 加载领域信息
2008 年 14 月 11 日 13:06:05 警告 util.NativeCodeLoader:无法为您的平台加载 native-hadoop 库...在适用的情况下使用内置 java 类
在 [localhost]
上启动名称节点 localhost:启动namenode,登录到/usr/local/hadoop-2.2.0/logs/hadoop-mrp-namenode-mrp.local.out
localhost:启动datanode,登录到/usr/local/hadoop-2.2.0/logs/hadoop-mrp-datanode-mrp.local.out
本地主机:2014-11-08 13:06:10.954 java[17867:1403] 无法从 SCDynamicStore 加载领域信息
启动辅助名称节点 [0.0.0.0]
0.0.0.0:启动secondarynamenode,登录到/usr/local/hadoop-2.2.0/logs/hadoop-mrp-secondarynamenode-mrp.local.out
0.0.0.0: 2014-11-08 13:06:16.065 java[17953:1403] 无法从 SCDynamicStore 加载领域信息
2014-11-08 13:06:20.982 java[17993:1003] 无法从 SCDynamicStore 加载领域信息
2008 年 14 月 11 日 13:06:20 WARN util.NativeCodeLoader:无法为您的平台加载 native-hadoop 库...在适用的情况下使用内置 java 类

mrp:~ mrp$ start-yarn.sh
启动纱线守护进程
启动资源管理器,登录到 /usr/local/hadoop/logs/yarn-mrp-resourcemanager-mrp.local.out
2014-11-08 13:06:43.765 java[18053:20b] 无法从 SCDynamicStore 加载领域信息
localhost:启动nodemanager,登录到/usr/local/hadoop-2.2.0/logs/yarn-mrp-nodemanager-mrp.local.out

查看正在运行的内容:


超时


好的。到目前为止,我认为,非常好。至少根据所有其他教程和帖子,这看起来不错。我认为。

在我尝试做任何花哨的事情之前,我只想看看它是否正常工作,然后运行一个简单的命令,例如hadoop fs -ls


失败


当我运行hadoop fs -ls 时,我得到了以下结果:

再一次,如果你看不到那张照片,上面写着:

2014-11-08 13:23:45.772 java[18326:1003] 无法从 SCDynamicStore 加载领域信息
14/11/08 13:23:45 WARN util.NativeCodeLoader:无法为您的平台加载 native-hadoop 库...在适用的情况下使用内置 java 类
ls: 从 mrp.local/127.0.0.1 调用 localhost:8020 连接异常失败:java.net.ConnectException: Connection denied;更多详情见:http://wiki.apache.org/hadoop/ConnectionRefused

我尝试运行其他命令,但在所有操作开始时出现相同的基本错误:

调用从 mrp.local/127.0.0.1 到 localhost:8020 连接异常失败:java.net.ConnectException:连接被拒绝;更多详情见:http://wiki.apache.org/hadoop/ConnectionRefused

现在,我访问了上面提到的那个网站,但老实说,那个链接中的所有内容对我来说都毫无意义。我不明白我应该做什么。

我非常感谢您对此提供的任何帮助。你会让我成为最快乐的hadooper,永远。

...这不言而喻,但如果需要,我很乐意编辑/更新更多信息。谢谢!

【问题讨论】:

    标签: java bash hadoop


    【解决方案1】:

    将这些添加到.bashrc

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

    【讨论】:

    • 必须是.bashrc 还是.bash_profile
    • 最好把你所有的配置都放在 .bashrc 中
    • 好的。我现在使用 .bashrc 而不是 .bash_profile。我已经包含了提到的exports,但是现在DataNode 不会启动(当我输入jps 时不会显示)。
    • 我刚刚意识到我没有包含hadoop-evn.sh。我现在将使用该信息更新我的问题..
    • 不确定这是做什么的,但现在我肯定不能再启动DataNode了。
    【解决方案2】:

    有一个非常相似的问题,并在谷歌搜索解决方案时发现了这个问题。

    这是我可以解决的方法(在 Mac OS 10.10 和 Hadoop 2.5.1 上)。不确定问题是否完全相同:我检查了数据节点(/usr/local/hadoop-2.2.0/logs/hadoop-mrp-datanode-mrp.local.out)生成的日志文件,发现以下条目:

    2014-11-09 17:44:35,238 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode:
    Exception in namenode join org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: 
    Directory /private/tmp/hadoop-kthul/dfs/name is in an inconsistent state: storage
    directory does not exist or is not accessible.
    

    基于此,我断定datanode上的HDFS数据有问题。

    我删除了包含 HDFS 数据的目录并重新格式化了 HDFS:

    rm -rf /private/tmp/hadoop-kthul
    hdfs namenode -format
    

    现在,我又开始跑步了。仍然想知道 /private/tmp 是否是保存 HDSF 数据的好地方 - 寻找改变这一点的选项。

    【讨论】:

    • 我的日志中没有任何错误,所以这并不能完全解决我的问题,但它帮助我到达了那里!我会尽快发布解决方案。
    【解决方案3】:

    所以我已经启动并运行了 Hadoop。我有两个问题(我认为)。

    1. 在启动NameNode和DataNode时,收到如下错误:Unable to load realm info from SCDynamicStore.

    为了解决这个问题,我在hadoop-env.sh 文件中添加了以下两行:

    HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.realm= -Djava.security.krb5.kdc=" HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.conf=/dev/null"

    我在这篇文章的解决方案Hadoop on OSX "Unable to load realm info from SCDynamicStore" 中找到了这两行代码。答案由 Matthew L Daniel 发布。

    1. 我不止一次格式化 NameNode 文件夹,这显然搞砸了?

    我无法验证这是否搞砸了,因为我的任何日志文件中都没有任何错误,但是一旦我遵循 解决方法 1(删除和重新创建 NameNode/DataNode 文件夹,然后重新格式化)在这篇文章 No data nodes are started 上,我能够加载 DataNode 并让一切正常工作。

    【讨论】:

      【解决方案4】:

      由于 Mac 不支持原生库,如果您想取消此警告:

      WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
      

      将此添加到 ${HADOOP_HOME}/libexec/etc/hadoop 中的 log4j.properties:

      # Turn of native library warning
      log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-27
        • 2021-12-22
        • 2011-07-28
        • 2017-01-16
        • 2013-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多