【发布时间】:2012-10-02 19:47:23
【问题描述】:
我对 Hadoop 还很陌生,我一直在尝试设置我的本地机器并运行一些示例来了解该过程的工作原理。我已经在我的 MAC 上设置了 hadoop 1.0.3。我有一系列问题,我会在描述我到目前为止所做的事情时问他们。我遵循了here 的指示。
虽然我设置了独立操作,但最终使用了伪分发。 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.) 文档 here 要求我使用 bin/hdfs dfs 所以它会是 $HADOOP_HOME/bin/hdfs dfs -mkdir WordCount_input 但这给了我 hdfs: command not found 错误?
我使用 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/ 输出
因此,如果我必须再次运行相同的示例,我必须删除输出文件并创建一个新文件。
运行几个示例后数据节点没有足够的空间?在集群摘要下 NameNode 的 Web 界面中,所有内容都变为 0(例如:DFS Remaining:0GB,Live Node:0)。不知道为什么。
所以我做了$HADOOP_HOME/bin/stop-all.sh。并重新格式化了namenode。因此namenode和datanode的namespaceID变得不同。这是个问题。
所以我不得不删除我的 hadoop.tmp.dir 并从头开始做所有事情
Q.6)如果数据节点没有足够的空间,有人可以提供一个简单的解决方案吗?如何释放空间?
【问题讨论】: