macos—hdfs和Hadoop1.0.3中的疑问

3mpgtkmj  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(339)

我对hadoop还比较陌生,我一直在尝试设置本地计算机,并运行一些示例来了解这个过程是如何工作的。我已经在我的mac上安装了Hadoop1.0.3,我有一系列的问题,我会问他们我到目前为止做了什么。我是按照这里的指示来的。
我以为我是在设置独立的操作,但最终得到了一个伪发行版。问题1)有什么区别?
编辑了我的.bash\u配置文件

export HADOOP_HOME=/Library/hadoop-1.0.3
export JAVA_HOME=$(/usr/libexec/java_home)

在os x上创建了到本地主机的无密码ssh。那么 $ ssh localhost .
那么 $ $HADOOP_HOME/bin/hadoop namenode -format . q2.)我应该在每次开始新作业时格式化namenode吗?格式化了什么?
那么 $HADOOP_HOME/bin/start-all.sh .
我想运行wordcount示例。所以我必须把输入放到hdfs中。我是这么做的 hadoop fs -mkdir WordCount_input .
这里的文件要求我使用 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

问题4)使用copyfromlocal而不是put是否更好?
问题5.)我创建的这些文件位于/user/yv/中。在我的core-site.xml中指定的hadoop.tmp.dir位置中,/user/yv/?究竟在哪里
然后我运行了这个例子
hadoop jar文档/hadoop工作区/wordcount.jar org.myorg.wordcount/user/yv/wordcount\u输入/输出
因此,如果我必须再次运行相同的示例,我必须删除输出文件并创建一个新文件。
在运行了几个示例之后,datanodes没有足够的空间?在集群摘要下namenode的web界面中,所有内容都变为0(例如:dfs)remaining:0gb,活动节点:0)。不确定原因。
所以我做了 $HADOOP_HOME/bin/stop-all.sh . 并重新格式化了namenode。因此namenode和datanode中的namespaceid变得不同。这是个问题。
所以我不得不删除hadoop.tmp.dir,从scrath开始做所有的事情
q、 6)如果datanode没有足够的空间,有人能提供一个简单的解决方案吗。如何释放空间?

i7uaboj4

i7uaboj41#

q1)见本页:http://hadoop.apache.org/docs/r1.0.3/single_node_setup.html,但通常情况下,standalone会将所有文件存储在本地文件系统(没有hdfs)上,并且当您运行mapreduce作业时,您将在单个jvm中运行该作业。在独立模式下可以做的事情有一些限制(例如,仅限于单个缩减器和没有分布式缓存)。
伪分布式模式意味着您正在运行一个真正的hadoop示例(namenode、datanode、job tracker、task tracker),但它们都在localhost上运行。您可以访问hadoop的更多特性/功能(多个reducer、分布式缓存、hdfs等),但缺少一些只有适当的分布式集群才能提供的功能(数据复制/冗余、任务故障转移)
q2)如果您想删除hdfs(分布式文件系统)中的所有内容,您应该只重新格式化名称节点。您不需要在作业之间格式化它
q3)这在文档中似乎是错误的(可能是与hadoop2相关的文档)。bin文件夹中没有hdfs脚本(根据您看到的错误消息)。
要创建目录,您应该使用 bin/hadoop fs -mkdir WordCount_input q4)这两个命令是同义的( hadoop fs -help copyFromLocal 在显示的帮助中实际注意到这一点)
q5)它们存储在hdfs中,您无法直接在本地文件系统上找到这些文件,但它们存储在hdfs-site.xml属性中配置的位置 dfs.data.dir ,但文件存储为块,namenode维护文件名和块名之间的Map。
问题6)您为服务器配置的分区上有多少可用空间 dfs.data.dir ? 如果磁盘上没有剩余的空间,那么除了释放空间或移动到新分区之外,就没有什么可以做的了。

ffscu2ro

ffscu2ro2#

我相信独立模式在一个进程中运行整个作业,而伪分布式只是将jobtracker和task节点拆分为单独的进程,就像它们在实际集群中一样。伪分布式可能是发展的方向。
不应多次运行format。它初始化namenode的元数据。
我不知道它为什么这么说。 hadoop fs -mkdir WordCount_input 是你应该用的。
它们是一样的。
数据存储在 dfs.data.dir 中的属性 hdfs-site.xml . 但是,由于hdfs使用非用户友好的目录和命名结构,它可能无法直接理解。如果你想检查里面的东西,你应该用 hadoop fs 命令。
这完全取决于硬件。没有什么复杂的事情发生-如果你有更多的文件比你的磁盘空间,你没有什么可以做,除了买一个更大的驱动器或删除文件。对于本地开发/测试,还可以设置 dfs.replication 但是对于生产系统来说,这是一个非常糟糕的主意。

相关问题