草庐IT

hdfs_sink

全部标签

hadoop - 修改HDFS的 block 放置策略

我想修改HDFS的默认block放置策略以适合我的应用程序。例如,我有两个文件file1(128MB)和file2(128MB)。block大小为64MB,每个文件将被分成两个block。我想确保file1和file2的block1都放在同一个数据节点上。如果可能的话,我还想确保副本也放在同一组数据节点上。问题1。这可能吗?如果可以,需要修改源码中的哪些类?问题2。copyFromLocal等命令如何映射到hadoop源代码中的函数? 最佳答案 block放置策略的默认行为可以通过扩展BlockPlacementPolicy来修改。

java - Hadoop 从 HDFS 写入/读取 int[]

我想了解如何在HDFS中的文件中写入和读取int数组。因为int[]数组不是Writable对象,所以我实际上使用的是类org.apache.hadoop.io.ObjectWritable因此写入任务归结为以下调用:newObjectWritable(int[].class,array).write(arg0);相反,读取任务会导致以下情况:int[]array={};newObjectWritable(int[].class,array).readFields(arg0);我不太确定最后一个代码片段。事实上,如果我尝试执行它,我会在第二行得到一个NullPointerExcepti

hadoop - pig : How to load the output of an hdfs ls into an alias?

我正在尝试查看我的hdfs中的文件并评估哪些文件早于特定日期。我想执行一个hdfsls并将它的输出传递给一个pigLOAD命令。在对HowCanILoadEveryFileInaFolderUsingPIG?的回答中@DonaldMiner包含一个输出文件名的shell脚本;我借用它来传递文件名列表。但是,我不想加载文件的内容,我只想加载ls命令的输出并将文件名视为文本。这是myfirstscript.pig:test=LOAD'$files'as(moddate:chararray,modtime:chararray,filename:chararray);illustratetes

eclipse - 将文本文件上传到 HDFS(hadoop) 的最快方法

我正在尝试将100万个文本文件上传到HDFS。因此,使用Eclipse上传这些文件大约需要2个小时。任何人都可以建议我做这件事的任何快速技术吗?我在想的是:将所有文本文件压缩成一个zip,然后将其上传到HDFS,最后使用一些解压缩技术,我会将这些文件解压缩到HDFS。任何帮助将不胜感激。 最佳答案 Distcp是将文件上传到HDFS的好方法,但对于您的特定用例(您想将本地文件上传到在同一台计算机上运行的单节点集群),最好不要将文件上传到HDFS全部。您可以使用localfs(file://a_file_in_your_local_d

hadoop - 如何从本地磁盘而不是 HDFS 上的数据在 Hive 上创建外部表?

对于HDFS上的数据,我们可以做CREATEEXTERNALTABLE{idINT,nameSTRING,ageINT}LOCATION'hdfs_path';但是如何为上面的LOCATION指定本地路径呢?谢谢。 最佳答案 您可以先使用“hdfsdfs-put”将文件上传到HDFS,然后在其上创建Hive外部表。Hive无法在本地文件上创建外部表的原因是,当Hive处理数据时,实际处理发生在Hadoop集群上,您的本地文件可能根本无法访问。 关于hadoop-如何从本地磁盘而不是HDF

hadoop - 如何在 Amazon EMR 上重启 HDFS

我对AmazonEMR集群上的HDFS设置进行了一些更改。我想重新启动名称节点和数据节点以使更改生效。我无法在名称节点(主节点)和数据节点上找到任何启​​动和停止脚本来执行此操作。应该怎样重启集群? 最佳答案 在EMR4上,在master主机上运行以下命令-sudo/sbin/starthadoop-hdfs-namenodessh-i"sudo/sbin/restarthadoop-hdfs-datanode"ssh-i"sudo/sbin/restarthadoop-hdfs-datanode"ssh-i"sudo/sbin/r

python - 子进程打开以运行命令(HDFS/hadoop)

我正在尝试使用subprocess.popen在我的机器上运行命令。这是我目前的情况cmdvec=['/usr/bin/hdfs','dfs','-text','/data/ds_abc/clickstream/{d_20151221-2300}/*','|','wc','-l']subproc=subprocess.Popen(cmdvec,stdout=subprocess.PIPE,stdin=None,stderr=subprocess.STDOUT)如果我在我的终端中运行命令,我会得到一个输出15/12/2116:09:31INFOlzo.GPLNativeCodeLoade

hadoop - 上传资源文件时 createBlockOutputStream 中的 Spark HDFS 异常

我正在尝试使用yarn-cluster在集群中运行我的JAR,但一段时间后出现异常。失败前的最后一个INFO是Uploadingresource。我检查了所有安全组,成功执行了hsdfls但仍然出现错误。./bin/spark-submit--classMyMainClass--masteryarn-cluster/tmp/myjar-1.0.jarmyjarparameter16/01/2116:13:51WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-j

shell - 你如何移动文件而不是 hdfs 中的目录?

一段时间以来,我一直在努力寻找解决这个问题的方法。我发现在使用shell的普通文件系统中,您可以使用此命令将所有文件移动到某个位置下,但保留目录不变。find.-maxdepth1-typef-execmv{}destination_path\;我想知道是否还有一个命令可以在hdfs中执行相同的操作。因此,如果我在hdfs中有一个名为“folder1”的文件夹,其中包含文件“copyThis.txt”、“copyThisAsWell.txt”和“theFinalCopy.txt”,还包含一个文件夹“doNotCopy”,我想复制将文件放入名为“folder2”的新文件夹中,但将文件夹“

hadoop - Apache Apex 是依赖 HDFS 还是有自己的文件系统?

我了解ApacheApex在Hadoop和YARN上运行。它是否利用HDFS进行持久性和复制以防止数据丢失?还是它有自己的? 最佳答案 ApacheApex使用操作符状态的检查点来实现容错。Apex使用HDFS写入这些检查点以进行恢复。但是,用于检查点的存储是可配置的。Apex也有一个实现checkpointtoApacheGeode.Apex还使用HDFS上传工件,例如包含应用程序jar的应用程序包、其依赖项和启动应用程序所需的配置等。 关于hadoop-ApacheApex是依赖HD