草庐IT

java - 如何将多个文件从 hdfs 上传到单个 s3 文件?

我有一个hadoop作业,可以将许多部分输出到hdfs,例如输出到某个文件夹。例如:/output/s3/2014-09-10/part...最好的方法是什么,使用s3javaapi将这些部分上传到s3中的signle文件例如s3:/jobBucket/output-file-2014-09-10.csv作为一个可能的解决方案,有一个选项可以合并各个部分并将结果写入hdfs单个文件,但这将创建一个双I/O。使用单个reducer也不是选项谢谢, 最佳答案 尝试使用FileUtil#copyMerge方法,它允许您在两个文件系统之间复

python - 如何比较 hdfs 文件和 unix 文件?

我想比较hdfs文件和unix文件。我知道使用cat命令比较文件的一种方法,因为Hadoop分布式文件系统(HDFS)也提供了cat命令。举个例子:#hdfsdfs-ls-R/demo-rw-r--r--3roothdfs1296172014-10-1712:22/demo/abc.log#ls/tmpxyz.log这里我想比较abc.log和xyz.log。还有更好的方法吗?? 最佳答案 您可能会使用shell重定向+diff。diff 关于python-如何比较hdfs文件和unix

hadoop - 是否可以在不(误)使用异常的情况下检查 HDFS 上的文件是否为 SequenceFile?

我想从客户端应用程序的HDFS中读取特定的SequenceFile。我可以使用SequenceFile.Reader来做到这一点,它工作正常。但是是否也可以通过分析抛出的IOException来检查是否一个文件是SequenceFile? 最佳答案 我翻遍了Hadoop文档、源代码和网络,找到了一个解决方案:SequenceFile以一个四字节的header开头,读取SEQn,其中n是文件的版本(一个正的单字节数字,但绝不会大于6)。因此,对于检查,可以执行以下操作:使用FileSystem.open打开文件作为普通FSDataIn

hadoop - 使用水槽将文件从假脱机目录移动到 HDFS

我正在为我公司的POC实现一个小型hadoop集群。我正在尝试使用Flume将文件导入HDFS。每个文件都包含这样的JSON对象(每个文件1个“长”行):{"objectType":[{JSONObject},{JSONObject},...]}“objectType”是数组中对象的类型(例如:事件、用户...)。这些文件稍后将根据“objectType”由多个任务处理。我正在使用spoolDir源和HDFS接收器。我的问题是:是否可以在flume写入HDFS时保留源文件名(文件名是唯一的,因为它们的名称中包含时间戳和UUID)有没有办法将“deserializer.maxLineLe

batch-file - Apache Spark : batch processing of files

我在HDFS上设置了目录和子目录,我想在将所有文件一次加载到内存中之前预处理所有文件。我基本上有大文件(1MB),一旦处理将更像1KB,然后执行sc.wholeTextFiles开始我的分析我如何在我的目录/子目录中的每个文件(*.xml)上循环,执行一个操作(假设为了示例的缘故,保留第一行),然后转储结果回到HDFS(新文件,比如.xmlr)? 最佳答案 我建议您只使用sc.wholeTextFiles并使用转换对其进行预处理,然后将它们全部保存为单个压缩序列文件(您可以引用我的指南:http://0x0fff.com/spark

hadoop - 将一个本地文件放入多个HDFS目录

我正在为CDH5.3集群安装编写完整性测试。我们有一个测试用例,将在具有1000个分区的目录上创建一个Hive表,然后查询随机分区。本来是用一系列for循环做的,搞了好几个小时:hadoopfs-mkdir-p/hdfs/directory/partition{1...1000}然后:hadoopfs-put/path/to/local/file/hdfs/directory/partitionX将一个本地文件传递到多个目录只会引发错误,但使用for循环需要数小时才能完成。-copyFromLocal抛出与-put类似的错误。此外,-put到第一个目录并使用for循环复制也需要相当多的

hadoop - 使用 distcp 安全地将数据从 HDFS 传输到 amazon S3

我们想将ClouderaHadoop集群中的HDFS数据备份到AmazonS3。看起来我们可以为此使用distcp但不清楚的是数据是否通过加密传输复制到S3。是否需要配置一些东西才能启用此功能? 最佳答案 我认为S3客户端加密在Hadoop中还不可用。好像S3serversideencryption(在S3端加密静态数据)可从Hadoop2.5.0进行配置。要启用它,请在core-site.xml中添加以下属性:fs.s3n.server-side-encryption-algorithmAES256Specifyaserver-s

hadoop - 如何给 Sqoop 输出文件自定义名称

当我默认使用sqoop将数据导入配置单元时,它会在HDFS上创建文件名为part-m-0000、part-m-0001等。是否可以重命名这些文件?如果我想给一些有意义的名字,比如在文件名后加上日期来指示加载,我该怎么做呢?请推荐 最佳答案 不能直接用sqoop做,但是可以在sqoop导入完成后在HDFS中重命名:today=`date+%Y-%m-%d`files=$(hadoopfs-ls/path-to-files|awk'{print$8}')forfin$files;dohadoopfs-mv$f$f$today;done第

hadoop - 在 Hadoop 2.6.9 中将文件从 HDFS 传输到本地文件系统的 Shell 命令

我是Hadoop新手。是否有bash命令可以将文件从Hadoop分布式文件系统传输到hadoop节点上的标准文件系统。我正在使用Hadoop2.6.0我看到另一个类似的问题,询问如何在Java中做同样的事情:CopyingfilesfromHDFStolocalfilesystemwithJAVA我们可以用一个简单的shell命令来代替吗(它在属于hadoop集群的节点上运行)? 最佳答案 hdfsdfs-get/hdfs/path/local/pathhdfsdfs-put/local/path/hdfs/path

java - 我正在尝试通过 java 编程将 Sqoop 从 oracle 导入到 hdfs

我正在使用ssh来执行Sqoop命令。这是我的代码的引用HowtouseSqoopinJavaProgram?但我收到“找不到sqoop命令”的错误。这是代码packagesqoop;importnet.neoremind.sshxcute.core.Result;importnet.neoremind.sshxcute.core.SSHExec;importnet.neoremind.sshxcute.core.ConnBean;importnet.neoremind.sshxcute.task.CustomTask;importnet.neoremind.sshxcute.task