Crate hdfs_sys

Source
Expand description

Bindings to HDFS Native C API.

Work with these bindings directly is boring and error proven, please use hdrs instead if ever possible.

§Supported Versions

To target a version of libhdfs, enable a Cargo features such as one of the following:

  • hdfs_2_2 (default): requires hdfs 2.2 or later releases.
  • hdfs_2_3: requires hdfs 2.3 or later releases.
  • hdfs_2_4: requires hdfs 2.4 or later releases.
  • hdfs_2_5: requires hdfs 2.5 or later releases.
  • hdfs_2_6: requires hdfs 2.6 or later releases.
  • hdfs_2_7: requires hdfs 2.7 or later releases.
  • hdfs_2_8: requires hdfs 2.8 or later releases.
  • hdfs_2_9: requires hdfs 2.9 or later releases.
  • hdfs_2_10: requires hdfs 2.10 or later releases.
  • hdfs_3_0: requires hdfs 3.0 or later releases.
  • hdfs_3_1: requires hdfs 3.1 or later releases.
  • hdfs_3_2: requires hdfs 3.2 or later releases.
  • hdfs_3_3: requires hdfs 3.3 or later releases.

If you do not enable one of these features, the API provided by hdfs_2_2 will be available by default.

Enable one feature will also enable all features before it. For example, enable hdfs_2_4 will also enable hdfs_2_3 and hdfs_2_2.

§Dependencies

This crate will link to libhdfs and libjvm dynamically.

To make this crate works correctly, please make sure the following env set correctly:

  • JAVA_HOME: hdfs-sys will search ${JAVA_HOME}/lib/server to link libjvm.
  • HADOOP_HOME: hdfs-sys will search {HADOOP_HOME}/lib/native to link libhdfs.

NOTE: hdfs-sys will ignore linking if DOCS_RS is set to build docs.

§Runtime

libhdfs uses JNI to call functions provided by jars that provided by hadoop releases. Please make sure CLASSPATH is set correctly:

export JAVA_HOME=/path/to/java
export HADOOP_HOME=/path/to/hadoop
export LD_LIBRARY_PATH=${HADOOP_HOME}/lib/native:${JAVA_HOME}/lib/server
export CLASSPATH=${HADOOP_HOME}/share/hadoop/common/*:${HADOOP_HOME}/share/hadoop/common/lib/*:${HADOOP_HOME}/share/hadoop/hdfs/*:${HADOOP_HOME}/share/hadoop/hdfs/lib/*:${HADOOP_HOME}/etc/hadoop/*

Structs§

hadoopRzBuffer
hadoopRzOptions
hdfsBuilder
hdfsFileInfo
hdfsFile_internal
hdfsHedgedReadMetrics
hdfsReadStatistics
hdfsStreamBuilder
hdfs_internal

Constants§

ELASTIC_BYTE_BUFFER_POOL_CLASS
tObjectKind_kObjectKindDirectory
tObjectKind_kObjectKindFile

Functions§

hadoopReadZero
hadoopRzBufferFree
hadoopRzBufferGet
hadoopRzBufferLength
hadoopRzOptionsAlloc
hadoopRzOptionsFree
hadoopRzOptionsSetByteBufferPool
hadoopRzOptionsSetSkipChecksum
hdfsAvailable
hdfsBuilderConfSetStr
hdfsBuilderConnect
hdfsBuilderSetForceNewInstance
hdfsBuilderSetKerbTicketCachePath
hdfsBuilderSetNameNode
hdfsBuilderSetNameNodePort
hdfsBuilderSetUserName
hdfsChmod
hdfsChown
hdfsCloseFile
hdfsConfGetInt
hdfsConfGetStr
hdfsConfStrFree
hdfsConnect
hdfsConnectAsUser
hdfsConnectAsUserNewInstance
hdfsConnectNewInstance
hdfsCopy
hdfsCreateDirectory
hdfsDelete
hdfsDisconnect
hdfsExists
hdfsFileClearReadStatistics
hdfsFileFreeReadStatistics
hdfsFileGetReadStatistics
hdfsFileIsEncrypted
hdfsFileIsOpenForRead
hdfsFileIsOpenForWrite
hdfsFlush
hdfsFreeBuilder
hdfsFreeFileInfo
hdfsFreeHedgedReadMetrics
hdfsFreeHosts
hdfsGetCapacity
hdfsGetDefaultBlockSize
hdfsGetDefaultBlockSizeAtPath
hdfsGetHedgedReadMetrics
hdfsGetHosts
hdfsGetLastExceptionRootCause
hdfsGetLastExceptionStackTrace
hdfsGetPathInfo
hdfsGetUsed
hdfsGetWorkingDirectory
hdfsHFlush
hdfsHSync
hdfsListDirectory
hdfsMove
hdfsNewBuilder
hdfsOpenFile
hdfsPread
hdfsPreadFully
hdfsRead
hdfsReadStatisticsGetRemoteBytesRead
hdfsRename
hdfsSeek
hdfsSetReplication
hdfsSetWorkingDirectory
hdfsStreamBuilderAlloc
hdfsStreamBuilderBuild
hdfsStreamBuilderFree
hdfsStreamBuilderSetBufferSize
hdfsStreamBuilderSetDefaultBlockSize
hdfsStreamBuilderSetReplication
hdfsTell
hdfsTruncateFile
hdfsUnbufferFile
hdfsUtime
hdfsWrite

Type Aliases§

hdfsFS
hdfsFile
tObjectKind