草庐IT

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

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

hadoop - 水槽的 Spool Dir 可以在远程机器上吗?

每当新文件到达特定文件夹时,我都试图从远程机器获取文件到我的hdfs。我在flume中遇到了spooldir的概念,如果spooldir在运行flumeagent的同一台机器上,它工作正常。有什么方法可以在远程机器上配置假脱机目录吗??请帮忙。 最佳答案 您可能知道flume可以产生多个实例,即您可以安装多个flume实例,这些实例在它们之间传递数据。所以回答你的问题:不,水槽不能访问远程假脱机目录。但是你可以安装两个代理,一个在有spool目录的机器上,一个在hadoop节点上。第一个将从假脱机中读取并通过avrorpc将其传递给

hadoop - getCacheFiles() 和 getLocalCacheFiles() 是一样的吗?

作为getLocalCacheFiles()已弃用,我正在尝试寻找替代方案。getCacheFiles()似乎是一个,但我怀疑它们是否相同。当您调用addCacheFile()时,HDFS中的文件将被下载到每个节点,使用getLocalCacheFiles()你可以获得localized文件路径,你可以从本地文件系统读取它。但是,getCacheFiles()返回的是文件在HDFS中的URI。如果你通过这个URI读取文件,我怀疑你仍然从HDFS而不是本地文件系统读取。以上是我的理解,不知道对不对。如果是这样,getLocalCacheFiles()的替代方法是什么?为什么Hadoop首

hadoop - 可以只安装 Hadoop HDFS 吗?

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

hadoop - 如何更改 HADOOP 日志文件位置

我正在运行一个hadoop进程,这需要几个小时和大量空间,并且进程停止是因为没有太多空间。Hadooptmp文件夹剩余空间很大,所以我认为这是Hadoop_log_files目录的问题,正如我检查过的那样,那里没有太多空间。因此,任何人都可以建议如何将hadoop日志文件位置更改为另一个位置而不是/home/hduser/hadoop/logs而不必更改hadoop设置的整个位置。如果有任何帮助,我将不胜感激。 最佳答案 我在hadoop-env.sh中找到了一个属性:#Wherelogfilesarestored.$HADOOP_

hadoop - 如何知道 Hadoop 节点上文件的确切 block 大小?

我有一个1GB文件,我已将其放在HDFS上。因此,它将被分解成block并发送到集群中的不同节点。是否有任何命令可以识别特定节点上文件block的确切大小?谢谢。 最佳答案 你应该使用hdfsfsck命令:hdfsfsck/tmp/test.txt-files-blocks此命令将打印有关文件包含的所有block的信息:/tmp/test.tar.gz151937000bytes,2block(s):OK0.BP-739546456-192.168.20.1-1455713910789:blk_1073742021_1197len=

hadoop - 删除配置单元分区的外部表但保留分区

使用外部配置单元表时,有没有一种方法可以删除目录中的数据,但通过查询保留分区。请注意我不想删除表并重新创建它。我只想清空底层文件夹并重新开始一个过程。我的表很大,按年、月、日和小时分区,手动重新创建分区需要很多时间。谢谢 最佳答案 truncatetable...删除所有数据。truncatetablepartition(...)删除特定分区的数据。保留目录结构。首先应该将外部表转换为管理表,例如altertabletsettblproperties('EXTERNAL'='FALSE');完成后,我们可以将其转换回来alterta

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中没有物理保留的

hadoop - 如何将文件放到特定节点?

是否可以告诉HDFS在哪里存储特定文件?用例我刚刚将第1批文件加载到HDFS中,并希望在这些数据上运行作业/应用程序。但是,我还有批处理#2仍待加载。如果我可以在第一个批处理上运行作业/应用程序,比如从1到10的节点,并将新数据加载到节点,比如11到20,完全并行,那就太好了。最初我认为NameNodefederation(Hadoop2.x)正是这样做的,但它看起来像联邦只拆分命名空间,而DataNodes仍然为所有连接的NameNodes提供block。那么,有没有办法在HDFS中控制数据的分布?这有意义吗? 最佳答案 从技术上