在Mac OS X上安装,配置和运行Hadoop 2.2.0

时间:2014-11-08 19:00:06

标签: java bash hadoop

我已经安装了hadoop 2.2.0,并根据本教程设置了所有内容(针对单个节点):Hadoop YARN Installation。但是,我不能让hadoop跑。

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

由于一张图片胜过千言万语,我给你设置了......许多字样图片:


基本配置文件/设置


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

sharing

无论它值多少,这都是我的/etc/hosts文件:

hosts

我的bash个人资料:

bash


Hadoop文件配置


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

core-hdfs.xlm

note :我在您上面看到的位置创建了文件夹

yarn-site.xml的设置:

yarn

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

hadoop-env


旁注


在我显示运行start-dfs.shstart-yarn.sh的结果之前,请检查jps正在运行的内容,请注意我hadoop指向hadoop-2.2.0 1}}。

pointer


启动Hadoop


现在,这是我开始守护的结果:

startitup

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

  

mrp:~rpr $ start-dfs.sh
  2014-11-08 13:06:05.695 java [17730:1003]无法从SCDynamicStore加载领域信息
  14/11/08 13:06:05 WARN util.NativeCodeLoader:无法为您的平台加载native-hadoop库...在适用的情况下使用builtin-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
  localhost: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加载领域信息
  14/11/08 13:06:20 WARN util.NativeCodeLoader:无法为您的平台加载native-hadoop库...在适用的情况下使用builtin-java类

     

mrp:~rpr $ start-yarn.sh
  起动纱线守护进程
  启动resourcemanager,登录到/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

检查正在运行的内容:

jps


超时


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

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


失败


当我运行hadoop fs -ls时,这就是我得到的:

fail

再次,如果你看不到那张照片,它会说:

  

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

我试图运行其他命令,并且在所有内容的开头都得到了相同的基本错误:

  

从mrp.local / 127.0.0.1调用localhost:8020在连接异常时失败:java.net.ConnectException:Connection refused;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused

现在,我已经去过那个提到的网站,但说实话,该链接中的所有内容对我来说都没有任何意义。我不明白我该做什么。

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

......这应该不言而喻,但显然我很乐意根据需要编辑/更新更多信息。谢谢!

4 个答案:

答案 0 :(得分:1)

将这些内容添加到.bashrc

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

答案 1 :(得分:1)

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

以下是我可以解决的问题(在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数据的好地方 - 寻找改变它的选项。

答案 2 :(得分:0)

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

  1. 启动NameNode和DataNode时,收到以下错误:Unable to load realm info from SCDynamicStore.
  2. 要解决此问题,我将以下两行添加到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文件夹,这显然搞砸了?
    2. 我无法验证这一点,因为我的任何日志文件都没有任何错误,但是一旦我按照解决方法1 (删除并重新创建) NameNode / DataNode文件夹,然后重新格式化)在这篇文章No data nodes are started上,我能够加载DataNode并使一切正常。

答案 3 :(得分:0)

由于Mac不支持本机库,因此如果要取消此警告:

 <div ng-repeat="apple in apples" ng-if='$index % 4 == 0' class='basket'>
         <span class="apple"> {{apples[$index].color}}</span>
         <span class="apple"> {{apples[$index +1 ].color}}</span>
         <span class="apple"> {{apples[$index + 2].color}}</span>
         <span class="apple"> {{apples[$index + 3].color}}</span>
  </div>

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

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