Hadoop HDFS配置&;用户目录用于什么?
我目前正在虚拟机中“玩”Hadoop(cloudera的CDH4.1.3图像)。我想知道的是以下内容(文档在这方面并没有真正帮助我) 在本教程之后,我将首先格式化NameNode—好的,如果使用cloudera图像,这已经完成了。同样,HDFS文件结构已经存在。在hdfs-site.xml中,datanode data dir设置为:Hadoop HDFS配置&;用户目录用于什么?,hadoop,hdfs,Hadoop,Hdfs,我目前正在虚拟机中“玩”Hadoop(cloudera的CDH4.1.3图像)。我想知道的是以下内容(文档在这方面并没有真正帮助我) 在本教程之后,我将首先格式化NameNode—好的,如果使用cloudera图像,这已经完成了。同样,HDFS文件结构已经存在。在hdfs-site.xml中,datanode data dir设置为: /var/lib/hadoop-hdfs/cache/${user.name}/dfs/data 很明显,在真正的分布式设置中,块应该复制到这个位置。在clou
/var/lib/hadoop-hdfs/cache/${user.name}/dfs/data
很明显,在真正的分布式设置中,块应该复制到这个位置。在cloudera教程中,我们被告知为每个用户创建hdfs“主目录”(/users/
),我不明白它们的用途。它们是否仅用于单节点设置中的本地测试运行?
比如说,我的本地存储中确实有数PB的类型数据。这些数据必须立即分发,使得本地“主目录”完全无用
有人能告诉我,仅仅是给我一个直觉,一个真正的Hadoop工作流和海量数据是什么样子的吗?一开始我会运行什么类型的不同节点
有一个主(JobTracker)及其从属文件(我将把它放在哪里),允许主解析所有数据节点。然后是我的NameNode,它跟踪块id的存储位置。数据节点也承担TaskTracker的责任。在配置文件中,包含了NameNode的URI——到目前为止我是否正确?然后在配置中仍然有${user.name}
变量,如果我理解正确的话,它显然与WebHDFS有关,如果有人能向我解释一下,那也太好了。在运行示例中,方向往往是硬编码的
/var/lib/hadoop-hdfs/cache/1/dfs/data, /var/lib/hadoop-hdfs/cache/2/dfs/data and so on.
因此,回到这个例子:比如说,我有我的磁带,想要将数据导入我的HDFS(我需要将数据流式传输到文件系统中,因为我缺少本地存储,无法将其保存在一台机器上)。迁移过程从哪里开始?在任意数据节点上?在分发块的NameNode上?毕竟,我不能假设数据只是“存在”,因为名称节点必须知道块ID
如果有人能在短时间内详细阐述这些主题,那就太好了:
HDFS为您解决的大部分问题是管理数据的分发,块由HDFS本身以理想的分布方式分布,分块也由HDFS管理。您需要做的就是使用用户端常规文件系统样式的API,忘记下面的内容—这一切都是为您管理的。感谢您的澄清!我已将它们安装在HDFS上,但我并不真正理解为什么需要它们ired,考虑到仍然存在datanode dir.cloud,您可能会详细说明user.name变量的用途(我只是想确保它实际上应该位于配置中,而不是硬编码的文件夹名称)?我猜这与在集群上使用特定于用户的数据运行HDFS有关,对吗?毕竟,名称节点目录也是特定于用户的(这意味着,它是只允许数据所有者权限的基本系统)?谢谢!Hi@sim-user.name是一个特殊的JVM系统属性,自动设置为执行JVM的当前用户。也就是说,在任何java程序中,返回system.getProperty(“user.name”)的结果默认情况下,将是实际运行该程序的用户。在Hadoop配置类中,我们支持通过让用户传递JVM级别的属性(通过JVM选项上的-D)来替换某些属性的值,支持的默认属性之一是${user.name}我们最终利用它为用户特定的操作自动构建用户特定的路径或数据。