草庐IT

hdfs_clusters

全部标签

python - 在没有pydoop的情况下列出HDFS Python中的所有文件

我有一个在centos6.5上运行的hadoop集群。我目前正在使用python2.6。由于不相关的原因,我无法升级到python2.7。由于这个不幸的事实,我无法安装pydoop。在hadoop集群中,我有大量名为raw"yearmonthdaytimehour".txt的原始数据文件,括号中的所有内容都是数字。有没有办法在python中列出hadoop目录中的所有文件?所以程序会创建一个看起来像这样的列表。listoffiles=['raw160317220001.txt','raw160317230001.txt',....]这将使我需要做的一切变得容易得多,因为从第2天第15小

hadoop - 我需要在哪里创建 HDFS 用户?

我必须为需要在HDFS上存储数据的应用程序创建一个帐户。我知道要在HDFS上创建用户(我使用的是HDP2.3),我必须执行这些命令:useradd-G*groupname**username*hdfsdfs-mkdir/user/*username*hdfsdfs-chown*username*:*groupname*/user/*username*我的问题是:我知道当我在HDFS上创建一个文件夹时,它不会在所有集群上复制,只有数据分布在所有数据节点上。我是要在集群的每个节点(namenode+datanode+edgenode)上执行这些命令,还是只在应用程序用来访问HDFS的节点(

hadoop - Camus Migration - Kafka HDFS Connect 不从设置的偏移量开始

我目前正在使用ConfluentHDFSSinkConnector(v4.0.0)来替换Camus。我们正在处理敏感数据,因此我们需要在切换到连接器期间保持偏移量的一致性。割接计划:我们创建了hdfs接收器连接器并订阅了一个写入临时hdfs文件的主题。这将创建一个名为connect-的消费者组使用DELETE请求停止了连接器。使用/usr/bin/kafka-consumer-groups脚本,我能够将连接器消费者组kafka主题分区的当前偏移量设置为所需值(即加缪写的最后偏移+1)。当我重新启动hdfs接收器连接器时,它会继续从上次提交的连接器偏移量读取并忽略设置值。我希望hdfs文

apache-spark - 文件大于 HDFS 中的 block 大小

众所周知,写入大于HDFSblock大小的单个文件并不是最佳选择,许多非常小的文件也是如此。但是,当在spark中执行repartition('myColumn)操作时,它将为每个项目创建一个分区(假设是一天),其中包含所有记录(作为单个文件),这些记录可能是几GB大小(假设20GB),而HDFSblock大小配置为256MB。文件太大真的不好吗?当读回文件时(假设它是一个可拆分文件,如parquet或带有gzip或zlib压缩的orc)spark正在为每个文件创建>>1任务,即这是否意味着我不需要担心指定maxRecordsPerFile/文件大小大于HDFSblock大小?

apache-spark - HDFS 和 Spark : Best way to write a file and reuse it from another program

我有一些来自Spark应用程序的结果作为名为part-r-0000X(X=0、1等)的文件保存在HDFS中。而且,因为我想将所有内容加入到一个文件中,所以我使用了以下命令:hdfsdfs-getmergesrcDirdestLocalFile前面的命令在bash脚本中使用,该脚本清空输出目录(保存part-r-...文件的位置),并在循环内执行上面的getmerge命令。问题是我需要在另一个Spark程序中使用生成的文件,该程序需要将该合并文件作为HDFS的输入。所以我将其保存为本地,然后将其上传到HDFS。我想到了另一种选择,即以这种方式从Spark程序写入文件:outputData

apache-spark - 您如何在 hdfs 中查看文件的行组

我遇到了这个page在jira中,我想知道如何获得相同的行组View。像这样:hdfs中是否有可以向我显示此内容的命令? 最佳答案 我报告了JIRA。我用过parquet-toolsmeta/path/to/file.parquet|grep"rowgroup"然后手动编辑输出以对齐数字。或者,您可以附加|column-t用于一些基本对齐。尽管在这种情况下数字将左对齐而不是右对齐,但至少它们会一个接一个地排列。parquet-tools本身是一个未记录的帮助程序脚本included在Parquet先生。您可以调用hadoopjar/

hadoop - 如何显示包含特殊字符串的 HDFS 文件中的特定行

我有这些行DIS_CD_RLT_PSE,D,,177959,10.425719262087393DIS_CD_RLT_PSE,E,,811061,47.5159687929684DIS_CD_RLT_PSE,I,,113424,6.6449394612410755DIS_CD_RLT_PSE,M,,404023,23.66966758313058DIS_CD_RLT_PSE,P,,28083,1.6452411737377726DIS_CD_RLT_PSE,U,,142155,8.32814368310697DIS_CD_RLT_PSE,Z,,30218,1.7703200437278

hadoop - 上传文件到HDFS会自动分布式存储文件吗?

我刚开始学习Hadoop,我对数据如何以分布式方式存储有点困惑。我有MPI背景。使用MPI,我们通常有一个主处理器将数据发送到其他各种处理器。这是由程序员明确完成的。有了Hadoop,您就有了一个Hadoop分布式文件系统(HDFS)。那么当你把一些文件从本地服务器放到HDFS时,HDFS会自动分布式存储这个文件而不需要程序员做任何事情吗?HDFS这个名字似乎暗示了这一点,但我只是想验证一下。 最佳答案 是的,确实如此。文件上传完毕,NameNode根据复制因子(通常为3)协调复制到存储它的DataNodes。此外,NameNode

ant - 尝试使用 Fuse 挂载 HDFS。无法编译 libhdfs

我正在尝试编译libhdfs(一个允许外部应用程序与hdfs交互的native共享库)。这是我使用Fuse挂载Hadoop的hdfs必须采取的几个步骤之一。编译似乎进行了一段时间,但以“BUILDFAILED”和以下问题摘要结束-commons-logging#commons-logging;1.0.4:在commons-logging#commons-logging中找不到配置;1.0.4:“master”。org.apache.hadoop#Hadoop;working@btsotbal800commons-logging需要它log4j#log4j;1.2.15:在log4j#l

hadoop - 当节点数少于复制因子时,HDFS 如何复制?

例如,如果Hadoop集群由2个DataNode组成,并且HDFS复制因子设置为默认值3,那么文件复制的默认行为是什么?从我读到的内容来看,HDFS似乎是基于机架感知的,但是对于这种情况,有人知道它是如何确定的吗? 最佳答案 它会认为这些block是复制不足的,它会一直提示这一点,它会永久地尝试使它们达到预期的复制因子。HDFS系统有一个参数(复制因子-默认为3)告诉名称节点每个block应该如何复制(在默认情况下,每个block应该在整个集群中复制3次,根据给定的副本放置策略)。在系统设法将每个block复制到复制因子指定的次数之