php操作phdfs扩展,phdfs: hadoop hdfs 的php扩展

本文介绍了如何使用PHP扩展phdfs,通过phdfs类操作Hadoop HDFS文件系统,包括连接、断开、文件操作、路径检查等,并提供了安装Hadoop和配置环境的步骤,以及一个简单的phdfs类使用示例。
摘要由CSDN通过智能技术生成

###Summary

phdfs - PHP extensions, using PHP to manipulate Hadoop HDFS filesystem

###Maintainers

yuduanchen

Install

Requirements

PHP Version: PHP 5.3+

ZTS Enabled ( Thread Safety )

Installing Hadoop

##Hadoop installation

hadoop Local environment configuration

vim /etc/profile

32-bit system

export JAVA_HOME=/usr/jdk1.7.0_40/

export JRE_HOME=$JAVA_HOME/jre/

export HADOOP_HOME=/usr/local/hadoop/

export C_INICLUDE_PATH=$HADOOP_HOME/hdfs/src/c++/libhdfs:$JAVA_HOME/include:$JAVA_HOME/include/Linux

export LD_LIBRARY_PATH=$HADOOP_HOME/c++/Linux-i386-32/lib:$JAVA_HOME/jre/lib/i386/server

for i in $HADOOP_HOME/*.jar

do

CLASSPATH=$CLASSPATH:$i

done

for i in $HADOOP_HOME/lib/*.jar

do

CLASSPATH=$CLASSPATH:$i

done

export CLASSPATH

64-bit system

export JAVA_HOME=/usr/jdk1.7.0_40/

export JRE_HOME=$JAVA_HOME/jre/

export HADOOP_HOME=/usr/local/hadoop/

export C_INICLUDE_PATH=$HADOOP_HOME/hdfs/src/c++/libhdfs:$JAVA_HOME/include:$JAVA_HOME/include/Linux

export LD_LIBRARY_PATH=$HADOOP_HOME/c++/Linux-amd64-64/lib:$JAVA_HOME/jre/lib/i386/server

for i in $HADOOP_HOME/*.jar

do

CLASSPATH=$CLASSPATH:$i

done

for i in $HADOOP_HOME/lib/*.jar

do

CLASSPATH=$CLASSPATH:$i

done

export CLASSPATH

source /etc/profile

vim /etc/ld.so.conf

32-bit system

${HADOOP_HOME}/c++/Linux-i386-32/lib

${JAVA_HOME}/jre/lib/i386/client

64-bit system

${HADOOP_HOME}/c++/Linux-amd64-64/lib

${JAVA_HOME}jre/lib/amd64/

ldconfig -v

##phdfs installation

$/path/to/phpize

$./configure --with-php-config=/path/to/php-config/

$make && make install

Documentation

The phdfs class

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();

}

Demo

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();

}

?>

more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值