我对 Hadoop 相当陌生,我一直在尝试设置我的本地机器并运行一些示例来了解该过程是如何工作的。我已经在我的 MAC 上设置了 hadoop 1.0.3。我有一系列问题,我会在描述我到目前为止所做的事情时问他们。我按照这里的说明进行操作。
我虽然设置了独立操作,但最终使用了伪分发。Q1.) 有什么区别?
编辑了我的 .bash_profile
export HADOOP_HOME=/Library/hadoop-1.0.3
export JAVA_HOME=$(/usr/libexec/java_home)
在 OS X 上创建到 localhost 的无密码 ssh。然后$ ssh localhost
。
然后$ $HADOOP_HOME/bin/hadoop namenode -format
。Q2.) 每次我开始一项新工作时我应该格式化 namenode 吗?什么被格式化了?
然后$HADOOP_HOME/bin/start-all.sh
。
我想运行 wordcount 示例。所以我不得不把输入放在 HDFS 中。为此我做到了hadoop fs -mkdir WordCount_input
。
Q3.)这里的文档要求我使用它,但这给了我 hdfs: command not found 错误?bin/hdfs dfs
$HADOOP_HOME/bin/hdfs dfs -mkdir WordCount_input
我使用put将文件放在 HDFS 中。
hadoop dfs -put
/Users/yv/Documents/Hadoop-Workspace/file01
/Users/yv/Documents/Hadoop-Workspace/file02
/user/yv/WordCount_input
Q4)使用 copyFromLocal 而不是 put 更好吗?
Q5.) 我创建的这些文件位于 /user/yv/ 中。/user/yv/ 到底在哪里?它们是否在我在 core-site.xml 中指定的 hadoop.tmp.dir 位置内
然后我运行了这个例子
hadoop jar Documents/Hadoop-Workspace/wordcount.jar org.myorg.WordCount /user/yv/WordCount_input/ output
因此,如果我必须再次运行相同的示例,我必须删除输出文件并创建一个新文件。
运行几个示例后,数据节点没有足够的空间?在集群摘要下 NameNode 的 Web 界面中,所有内容都变为 0(例如:DFS Remaining:0GB,Live Node:0)。不知道为什么。
所以我做到了$HADOOP_HOME/bin/stop-all.sh
。并重新格式化了namenode。因此namenode和datanode的namespaceID变得不同。这是个问题。
所以我不得不删除我的 hadoop.tmp.dir 并从头开始做所有事情
Q.6)如果数据节点没有足够的空间,有人可以提供一个简单的解决方案吗?如何释放空间?