我正在尝试将目录从hdfs备份到本地目录。我有一个在ec2上运行的hadoop/hbase集群。我设法在我的本地机器上以伪分布式的方式运行我想做的事情,但现在我已经完全分布式了,同样的步骤都失败了。这是适用于伪分布式的方法hadoopdistcphdfs://localhost:8020/hbasefile:///Users/robocode/Desktop/这是我在ec2上的hadoopnamenode(hbasemaster)上尝试的ec2-user@ip-10-35-53-16:~$hadoopdistcphdfs://10.35.53.16:8020/hbasefile:///
最近开始使用hadoop。现在我想从一个没有安装hadoop-client的远程主机访问hdfs,只是依赖hadoop-client-2.0.4-alpha.jar。但是当我尝试访问hdfs时,出现以下异常:java.io.IOException:Failedonlocalexception:com.google.protobuf.InvalidProtocolBufferException:Messagemissingrequiredfields:callId,status;HostDetails:localhostis:"webserver/127.0.0.1";destinati
我正在准备考试,这是讲义中的一个问题:WhyMaptasksoutputsarewrittentothelocaldiskandnottoHDFS?这是我的想法:减少网络流量的使用,因为reducer可能与输出在同一台机器上运行,因此不需要复制。不需要HDFS的容错能力。如果作业中途终止,我们总是可以重新运行maptask。还有哪些可能的原因?我的回答合理吗? 最佳答案 你的推理是正确的。但是我想补充几点:如果map输出写入hdfs会怎么样。现在,写入hdfs不像写入本地磁盘。这是一个更复杂的过程,namenode确保至少将dfs.
我有一个应用程序,它应该将大量文件从S3等源复制到HDFS。该应用程序在内部使用apachedistcp,并通过流式传输将每个单独的文件从源复制到HDFS。每个单独的文件大约1GB,有1K列字符串。当我选择复制所有列时,写入失败并出现以下错误:-2014-05-2023:57:35,939WARNorg.apache.hadoop.hdfs.DFSClient:ErrorRecoveryforblocknullbaddatanode[0]nodes==null2014-05-2023:57:35,939WARNorg.apache.hadoop.hdfs.DFSClient:Could
在我的HDFS上,我有一堆gzip文件,我想将其解压缩为正常格式。是否有用于执行此操作的API?或者我如何编写一个函数来执行此操作?我不想使用任何命令行工具;相反,我想通过编写Java代码来完成这项任务。 最佳答案 你需要一个CompressionCodec解压缩文件。gzip的实现是GzipCodec.你得到一个CompressedInputStream通过编解码器并使用简单的IO输出结果。像这样:假设你有一个文件file.gz//pathoffileStringuri="/uri/to/file.gz";Configuratio
我有几个结构相同的巨大CSV文件存储在HDFS中。是否有任何工具可以将这些文件连接成一个CSV文件? 最佳答案 hadoopfs-catmyfiles/*.csv|hadoopfs-put-myfiles_together.csv这会连接文件内容,然后通过put将其传回HDFS。那里的-表示使用标准in作为文件内容,而不是一些本地文件。这比下拉然后向上推要好,因为它不使用磁盘。所以,您可能会说“嘿!那是不可扩展的!”好吧,不幸的是,没有可扩展的方法来在HDFS中写出一个大文件。您必须在单个线程中按顺序写入该单个文件。我的基本论点是,
我是Hadoop世界的新手,我需要安装带有HadoopHDFS的mesos来制作容错的分布式文件系统,但所有安装引用都包括我的场景所需的组件,例如:MapReduce。您对此有任何想法或引用吗? 最佳答案 绝对有可能。不要把Hadoop看成是一个可安装的程序,它只是由一堆运行在集群内不同节点上的java进程组成的。如果你使用hadooptarball,如果你只需要HDFS,你可以只运行NameNode和DataNodes进程。如果您使用其他hadoop发行版(例如HDP),我认为HDFS和mapreduce来自不同的rpm包,但安装
我在Greenplum数据库中有数TB的结构化数据。我需要对我的数据运行本质上是MapReduce作业。我发现自己至少重新实现了MapReduce的功能,以便这些数据适合内存(以流方式)。然后我决定到别处寻找更完整的解决方案。我查看了PivotalHD+Spark,因为我使用的是Scala,而Spark基准测试是一个令人惊叹的因素。但我相信这背后的数据存储HDFS的效率将低于Greenplum。(注意“我相信”。我很高兴知道我错了,但请提供一些证据。)因此,为了与Greenplum存储层保持一致,我查看了Pivotal的HAWQ,它基本上是在Greenplum上使用SQL的Hadoop
有没有办法直接通过终端修改HDFS里面的txt文件?假设,我有“my_text_file.txt”,我想使用以下命令在HDFS中修改它。$hdfsdfs-XXXXuser/my_text_file.txt我很想知道“xxxx”是否存在。请注意,我不想在本地进行修改,然后将其复制到HDFS。 最佳答案 您不能编辑已经在HDFS中的文件。它不会支持。HDFS致力于“一次写入,多次读取”。因此,如果您想编辑文件,请在本地副本中进行更改,然后将其移动到HDFS。 关于hadoop-如何在终端中编
假设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中没有物理保留的