草庐IT

hdfs_clusters

全部标签

hadoop - 解压 Hadoop hdfs 目录中的所有 Gzip 文件

在我的HDFS上,我有一堆gzip文件,我想将其解压缩为正常格式。是否有用于执行此操作的API?或者我如何编写一个函数来执行此操作?我不想使用任何命令行工具;相反,我想通过编写Java代码来完成这项任务。 最佳答案 你需要一个CompressionCodec解压缩文件。gzip的实现是GzipCodec.你得到一个CompressedInputStream通过编解码器并使用简单的IO输出结果。像这样:假设你有一个文件file.gz//pathoffileStringuri="/uri/to/file.gz";Configuratio

Hadoop:在 HDFS 中连接 CSV 文件的工具?

我有几个结构相同的巨大CSV文件存储在HDFS中。是否有任何工具可以将这些文件连接成一个CSV文件? 最佳答案 hadoopfs-catmyfiles/*.csv|hadoopfs-put-myfiles_together.csv这会连接文件内容,然后通过put将其传回HDFS。那里的-表示使用标准in作为文件内容,而不是一些本地文件。这比下拉然后向上推要好,因为它不使用磁盘。所以,您可能会说“嘿!那是不可扩展的!”好吧,不幸的是,没有可扩展的方法来在HDFS中写出一个大文件。您必须在单个线程中按顺序写入该单个文件。我的基本论点是,

hadoop - 可以只安装 Hadoop HDFS 吗?

我是Hadoop世界的新手,我需要安装带有HadoopHDFS的mesos来制作容错的分布式文件系统,但所有安装引用都包括我的场景所需的组件,例如:MapReduce。您对此有任何想法或引用吗? 最佳答案 绝对有可能。不要把Hadoop看成是一个可安装的程序,它只是由一堆运行在集群内不同节点上的java进程组成的。如果你使用hadooptarball,如果你只需要HDFS,你可以只运行NameNode和DataNodes进程。如果您使用其他hadoop发行版(例如HDP),我认为HDFS和mapreduce来自不同的rpm包,但安装

hadoop - 如何在终端中编辑 HDFS 中的 txt 文件?

有没有办法直接通过终端修改HDFS里面的txt文件?假设,我有“my_text_file.txt”,我想使用以下命令在HDFS中修改它。$hdfsdfs-XXXXuser/my_text_file.txt我很想知道“xxxx”是否存在。请注意,我不想在本地进行修改,然后将其复制到HDFS。 最佳答案 您不能编辑已经在HDFS中的文件。它不会支持。HDFS致力于“一次写入,多次读取”。因此,如果您想编辑文件,请在本地副本中进行更改,然后将其移动到HDFS。 关于hadoop-如何在终端中编

hadoop - HDFS如何计算可用 block ?

假设block大小为128MB,集群有10GB(所以大约80个可用block)。假设我创建了10个小文件,总共占用128MB的磁盘空间(block文件、校验和、复制...)和10个HDFSblock。如果我想再添加一个小文件到HDFS,那么HDFS是用什么来计算可用block的,是使用的block还是实际的磁盘使用量?80个block-10个block=70个可用block或(10GB-128MB)/128MB=79个可用block?谢谢。 最佳答案 block大小只是指示HDFS如何在集群中拆分和分发文件-HDFS中没有物理保留的

java - Apache Spark : TaskResultLost (result lost from block manager) Error On cluster

我在Virtualbox上有一个带有3个从节点的Spark独立集群。我的代码在Java上,它可以很好地处理我的小输入数据集,它们的输入总共大约100MB。我将我的虚拟机RAM设置为16GB,但是当我在大输入文件(大约2GB)上运行我的代码时,在我的reduce部分处理数小时后出现此错误:Jobabortedduetostagefailure:Totalsizeofserializedresultsof4tasks(4.3GB)isbiggerthanspark.driver.maxResultSize`我编辑了spark-defaults.conf并为spark.driver.maxR

ruby - 如何使用 Ruby 在 Hadoop HDFS 中写入和读取文件?

有没有一种方法可以使用Ruby来处理HDFSApi?据我所知,没有多语言文件Api,唯一的方法是使用nativeJavaApi。我尝试使用JRuby,但此解决方案不稳定且不是很原生。我还查看了HDFSThriftApi,但它并不完整,也缺少许多功能(比如写入索引文件)。除了使用JRuby或ThriftApi之外,还有其他方法可以使用Ruby处理HDFS吗? 最佳答案 github中有两个项目符合您的要求。ruby-hdfs为Ruby提供到HDFS的nativeC绑定(bind)。ganapati与Thrift服务器接口(interf

hadoop - 从 hadoop 外部访问 hdfs

我想使用存储在HDFS中的输入文件在hadoop之外(但在同一集群上)运行一些可执行文件。这些文件需要复制到节点本地吗?或者有没有办法在hadoop之外访问HDFS?有关如何执行此操作的任何其他建议都很好。不幸的是,我的可执行文件不能在hadoop中运行。谢谢! 最佳答案 有几种典型的方法:您可以通过HDFSJavaAPI访问HDFS文件如果您正在用Java编写程序。您可能正在寻找open.这将为您提供一个类似于通用打开文件的流。如果您的程序通过标准输入获取输入,您可以使用hadoopcat流式传输数据:hadoopfs-cat/p

Hadoop HDFS - 无法为文件提供 +x 权限

因此,我使用Cloudera的安装和管理工具启动并运行了一个3节点服务器集群。我正在运行HDFS,可以查看/创建目录等。我继续安装了Fuse插件,它允许我将HDFS安装为文件系统。一切正常。我可以将文件写入文件夹等。问题:当我在安装的驱动器中运行'chmod777./file.sh'时,它没有给出任何错误,但是当我执行'ls-l'时它只有:'-rw-rw-rw-1rootnobody26Oct508:57run.sh'当我运行'sudo-uhdfshadoopfs-chmod777/run.sh'时,它仍然具有相同的权限。无论我以任何方式做什么,我都无法获得对任何文件的执行权限。我在C

hadoop - Spark 写入 hdfs 不使用 saveAsNewAPIHadoopFile 方法

我在CDH5.2.0上使用Spark1.1.0,并试图确保我可以读取和写入hdfs。我很快意识到.textFile和.saveAsTextFile调用旧的api并且似乎与我们的hdfs版本不兼容。deftestHDFSReadOld(sc:SparkContext,readFile:String){//THISWILLFAILWITH//(TID0,dl1rhd416.internal.edmunds.com):java.lang.IllegalStateException:unreadblockdata//java.io.ObjectInputStream$BlockDataInpu