HDFS 的 PHP 扩展 phdfs
程序员必上的开发者服务平台 —— DevStore
Phdfs 是hadoop hdfs 的php扩展。用于便捷的操作HDFS。
class phdfs { /* variable */ public $ip= "127.0.0.1" ;//hadoop ip public $port = "9000";//hadoop port / /*** * Connect to a hdfs file system. Connect to the hdfs. * Returns true on success, false on error. */ public function connect(); /*** * Disconnect from the hdfs file system. Disconnect from hdfs. * Returns true on success, false on error. */ public function disconnect(); /*** * Checks if a given path exsits on the filesystem * Returns true on success, false on error. */ public function exists(string $path); /*** * Write data into an open file. * int mode: O_WRONLY 、O_CREAT、O_APPEND * Returns true on success, false on error. */ public function write(string $file,string buffer [, int mode ]); /*** * Read data from an open file. * $buffer_len default 1024k * Returns true on success, false on error. */ public function read(string $file[int $buffer_len]); /*** * Get information about a path * Returns array on success, false on error. */ public function file_info(string $path); /*** * make the given file and all non-existent parents into directories. * Returns true on success, false on error. */ public function create_directory(); /*** * Rename file. * Returns true on success, false on error. */ public function rename(sting $old_path,sting $new_ptah); /*** * Get list of files/directories for a given directory-path * Returns true on success, false on error. */ public function list_directory(string $path); /*** * Get the current offset in the file, in bytes. * Returns Current offset, false on error. */ public function tell(); /*** * Copy file * Returns true on success, false on error. */ public function copy(string $source_file,string $destination_file); /*** * Delete file * Returns true on success, false on error. */ public function delete();}
示例:
<?php try { $obj = new phdfs(); $obj->port = "9000"; $obj->ip = "127.0.0.1"; $obj->connect(); //create file $log = $obj->write("/a/b/c/test1.txt","test",O_WRONLY|O_CREAT); //appden file $log = $obj->write("/a/b/c/test2.txt","test",O_WRONLY|O_APPEND); var_dump($log); echo $obj->rename("/a/b/c/test2.txt","/a/b/c/test3.txt"); }catch (Exception $ex) { echo $ex->getMessage(); } ?>