- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试 append 到版本 0.23.5 上的 hdfs 文件。我在 hdfs-site.xml 中将属性 dfs.support.append 设置为 true。调用 hdfsWrite() 时出现以下错误,表示不支持追加。
线程“main”中的异常 java.io.IOException:不支持
在 org.apache.hadoop.fs.ChecksumFileSystem.append(ChecksumFileSystem.java:345)
在 org.apache.hadoop.fs.FileSystem.append(FileSystem.java:1046)
调用 org.apache.hadoop.conf.FileSystem::append((Lorg/apache/hadoop/fs/Path;)Lorg/apache/hadoop/fs/FSDataOutputStream;) 失败!
我查看了过去关于在 hdfs 中追加的文献。看起来 append 应该在 0.23.5 中工作。
我可以插入和读取。问题是当我尝试打开 O_APPEND 并写入文件时。这是示例代码 -
int append(char *filepath, char *data, int size)
{
hdfsFS fs = hdfsConnect("default", 0);
int openFlags = O_WRONLY | O_APPEND;
hdfsFile fdData = hdfsOpenFile(fs, filepath, openFlags, 0, 0, 0);
if (!fdData)
return -1;
if (hdfsWrite(fs, fdData, data, size) == -1)
return -1;
hdfsCloseFile(fs, fdData);
return 0;
}
我错过了什么吗?
谢谢。
最佳答案
FSDataOutputStream 不支持追加方法。这是相关的来源:
public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException {
throw new IOException("Not supported");
}
您会注意到它的父类(super class) FileSystem 指出 append 是一个可选方法。
关于hadoop - HDFS 使用 libhdfs 在 0.23.5 中追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350781/
尝试使用 pyarrow 访问 hdfs 文件但无法使其正常工作,以下是代码,非常感谢您提前。 [rxie@cedgedev03 code]$ python Python 2.7.12 |Anacon
我是 hadoop 的新手,我安装了 hadoop。 Datanode、Namenode等都上来了,一切顺利。我必须单独下载 libhdfs 还是它包含在包中?我只能看到它的 Java 内容。非常感谢
我正在尝试在Windows上测试libhdfs,它使用JNI调用Java函数(创建的JVM),但是在加载hadoop类时,findclass总是失败。 我已经搜索并搜索了stackoverflow,找
我的程序正在使用 libhdfs.so 进行 hdfs 读/写,我想设置一个断点进行调试,但是当这个程序运行到 hdfsConnect 点时,它会因段错误而退出。 有趣的是,当我正常运行程序时,根本不
正如标题,在 JAVA API 中,org.apache.hadoop.conf.Configuration 中有几种方法可以获取有关我们在 hdfs 配置文件中配置的详细信息。如hdfs-site.
我发现有人说 libhdfs 在 2010 年左右不支持读/写 gzip 文件。 我下载了最新的 hadoop-2.0.4 并阅读了 hdfs.h。也没有压缩参数。 现在想知道现在支持读取压缩文件了吗
代码为libhdfs测试代码。 int main(int argc, char **argv) { hdfsFS fs = hdfsConnect("hdfs://labossrv14",
我正在尝试用 C++ 编写一个接口(interface),以使用 libhdfs.so 在 hdfs 中写入文件。我的目标 hadoop 版本是 2.0.2-alpha 下面的代码 hdfsFS f
我想使用 libhdfs 写入和读取 HDFS。我有发布版本 hadoop2.5.0。我想做的是编译并运行他们提供的代码作为测试,代码编译正常,这就是我所做的 gcc -I/usr/lib/jvm/j
我正在尝试编译 libhdfs(一个允许外部应用程序与 hdfs 交互的 native 共享库)。这是我使用 Fuse 挂载 Hadoop 的 hdfs 必须采取的几个步骤之一。 编译似乎进行了一段时
我在尝试运行 python 脚本调用存储在 HDFS 中的文件上的 Tensorflow 读取器时遇到错误“libhdfs.so:无法打开共享对象文件:没有这样的文件或目录”(下面的堆栈跟踪)。我在集
我正在尝试 append 到版本 0.23.5 上的 hdfs 文件。我在 hdfs-site.xml 中将属性 dfs.support.append 设置为 true。调用 hdfsWrite()
我是一名优秀的程序员,十分优秀!