在linux中,您可以使用touch来更改文件的时间戳。但是,当文件已经存在时,HDFStouchz不会更改文件时间戳。是否有一种在不删除文件的情况下更改HDFS时间戳的简单方法? 最佳答案 您可以使用FileSystem#setTimes方法。 关于hadoop-如何更改HDFS中的文件时间戳?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11856385/
我有一个ClouderaHadoop安装,我想编写一个Java程序来从Windows机器的文件系统中读取/写入。这应该是可能的吗?我的程序很简单:publicclassHadoopReader{static{URL.setURLStreamHandlerFactory(newFsUrlStreamHandlerFactory());}publicstaticvoidmain(String[]args)throwsException{System.out.println("okay");InputStreamin=null;try{in=newURL("hdfs://HOST/PATH"
我正在使用HADOOP-0.22在HDFS上做一些实验。另一方面,为了使我的实验可重复,我需要修复一些随机因素的HDFS种子。具体来说,每次我重新格式化文件系统并导入同一组数据时,我都希望将数据block分配给与上一个实验相同的数据节点并具有相同的名称。我不知道是否有人这样做过。感谢任何回复。 最佳答案 您的Hadoop版本支持可插入block放置策略,您可以根据需要提供更加静态或非随机的block放置策略。参见HDFS-385了解更多技术细节,以及此后该界面的相关演变。 关于hadoo
我有一个三节点hadoop集群,复制因子=3。存储目录是每个系统的/app/hadoop/tmp/dfs/。每个datanode系统的硬盘容量为221GB。HDFS的有效数据为62GB,复制62*3=186GB。现在的问题是我的存储空间不足,即使我在660GB集群上只有186GB数据:HDFS显示可用空间的巨大差异:datanode1=7.47GBdatanode2=17.7GBdatanode3=143GB为了确保这些空间被hadoop本地存储使用,我在每个数据节点上运行了这个命令。对于数据节点1du-h--max-depth=1/app/hadoop/tmp/63G/app/had
Hadoop配置文件模板core-site.xmlhadoop-env.shhdfs-site.xmlyarn-env-shyarn-site.xmlmapred-site.xmlslavesHadoop配置文件模板参考官方配置文档:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html#Configuring_Environment_of_Hadoop_DaemonsHadoop的配置文件都在$HADOOP_HOME/etc/hadoop下面。比如我这里是:Hadoop
我在我的桌面上设置了一个单节点集群。问题是我不能让我的桌面一直运行。我确实执行了stop-all.sh,稍后当我执行start-all.sh时,我的名称节点没有启动。最后我必须做%hadoopnamenode-format,通过丢失我的所有数据继续那里。 最佳答案 出了点严重的问题。请检查名称节点写入的图像和编辑文件发生了什么。如果它们没问题——NameNode可以启动。另外...存储NN数据的最后一个地方是HDFS-因为你会遇到鸡蛋和鸡肉的问题。没有NN数据HDFS不可访问。 关于ha
我们有一台非常稳定的机器,我们想将它用作Namenode。同时,我们还有很多其他高度不稳定的机器,我们希望它们成为数据节点。现在我们要配置Hadoop,使Namenode(在本例中也作为Datanode)在HDFS上有一份完整数据的副本,这样集群就可以始终从中恢复数据。谁能帮我解决这个问题? 最佳答案 这不能以直接的方式完成。方法是有的,但很麻烦,问题百出,不值得。在您的实际数据节点和名称节点上运行数据节点守护进程。在你的拓扑文件中,将所有真实的数据节点作为一个逻辑机架(R1)的一部分,并将NN+DN机器作为一个不同的机架(R2)。
我正在使用org.apache.pig.PigServer类从Java运行pig脚本。我需要以gz压缩的序列格式输出我的文件。这就是我所做的:effectivePigProperties.put("mapred.output.compress","true");effectivePigProperties.put("mapred.output.format.class","org.apache.hadoop.mapred.SequenceFileOutputFormat");effectivePigProperties.put("mapred.output.compression.ty
我在不同的文件上有两个矩阵。我必须将文件读入缓存,以便我可以将它们相乘。我一直在想HDFS是否会帮助我。我怀疑HDFS没有,因为它没有足够的缓存内存来读取文件和处理它。简而言之,我可以同时打开两个文件吗 最佳答案 要回答您的问题的较短版本,是的,HDFSAPI确实允许一次并发读取两个文件。您可以简单地在两个文件上创建两个输入流并并行读取它们(就像您对常规文件所做的那样)并围绕它管理您的逻辑。但是,HDFS是一个简单的文件系统,没有自己的缓存(操作系统缓冲区缓存除外),您需要携带的任何计算缓存都需要由您自己的应用程序处理。作为另一个一
我正在尝试在hadoop上进行JUnit测试,我使用MiniDFSCluster、MiniMRCluster和JUnit编写了一个在本地mini-hadoop环境中运行的测试用例。但是我收到了这个错误:WARNING:Metricssystemnotstarted:Cannotlocateconfiguration:triedhadoop-metrics2-datanode.properties,hadoop-metrics2.propertiesDec18,20124:42:29PMorg.apache.hadoop.hdfs.server.datanode.DataNodemake