`

php访问HDFS

阅读更多

假定您的主机上已经安装了LAMP环境

1. 安装所需的依赖包

  #yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel php php-devel

2. 从http://thrift.apache.org/download/下载thrift源码包

3. 安装thrift

    ./configure –prefix=/usr/local/thrift

    make && make install

4. 安装php扩展

    cd /path/to/thrift-0.8.0/lib/php/src/ext/thrift_protocol

    phpize

    ./configure

    make && make install

    修改php.ini,添加extension=thrift_protocol.so

5. 从http://hadoop.apache.org/releases.html#Download下载hadoop源码包

6. 解压并编译hadoop(注意必须先安装好java编译器,ant编译环境,以及libtool, autoconf等工具)

    tar zxvf hadoop-1.0.4.tar.gz

    cd hadoop-1.0.4

    ant compile

7. 启动hdfs以及thrift代理(hdfs集群配置请参考官方文档,不再累述)

    cd /path/to/hadoop-1.0.4

    bin/start-dfs.sh

     cd /path/to/hadoop-1.0.4/src/contrib/thriftfs/scripts/

     ./start_thrift_server.sh [port] (如果port为空,则随机一个port)

8. 准备php依赖库

    cp -r /path/to/thrift-0.8.0/lib/php  /usr/local/thrift/lib

    mkdir -p /usr/local/thrift/lib/php/src/packages

    cp -r /path/to/hadoop-1.0.4/src/contrib/thriftfs/gen-php/ /usr/local/thrift/lib/php/src/packages/hadoopfs/

9. php测试代码

   

<?php

error_reporting(E_ALL);
ini_set('display_errors', 'on');

$GLOBALS['THRIFT_ROOT'] = '/usr/local/thrift/lib/php/src';
define('THRIFT_ROOT', $GLOBALS['THRIFT_ROOT']);

/**
 * Init Autloader
 */
require_once THRIFT_ROOT . '/Thrift.php';
require_once THRIFT_ROOT . '/transport/TSocket.php';
require_once THRIFT_ROOT . '/transport/TBufferedTransport.php';
require_once THRIFT_ROOT . '/protocol/TBinaryProtocol.php';

$socket = new TSocket('192.168.1.12', 11511);
$socket->setSendTimeout(10000);
$socket->setRecvTimeout(20000);
$transport = new TBufferedTransport($socket);
$protocol = new TBinaryProtocol($transport);

require_once $THRIFT_ROOT . '/packages/hadoopfs/ThriftHadoopFileSystem.php';
$client = new ThriftHadoopFileSystemClient($protocol);

$transport->open();
try{
	#$pathname = new Pathname(array('pathname' => '/user/hadoop/dir4test'));
	#$fp = $client->open($pathname);
	#var_dump($client->stat($pathname));
	#var_dump($client->read($fp, 0, 1024));
	
	$pathname = new Pathname(array('pathname' => '/user/hadoop/thrift'));
	if(!$client->exists($pathname)){
		$client->mkdirs($pathname);
		print("Created dir ". $pathname->pathname);
		var_dump($client->stat($pathname));
	}
}
catch(Exception $ex){
	print_r($ex);
}
$transport->close();
?>

 

分享到:
评论

相关推荐

    PHP操作操作hdfs是代码例子

    通过这样的方式,PHP应用就能灵活地处理Hadoop HDFS中的数据,实现了跨平台的数据访问。这种结合不仅拓宽了PHP的应用场景,也让大数据处理更加贴近Web开发者。记住,理解并熟练掌握Thrift的使用以及PHP与HDFS的交互...

    phdfs:使用PHP操纵Hadoop HDFS

    为了在PHP应用程序中无缝地访问HDFS,开发者创建了`phdfs`这个PHP扩展。 1. **phdfs扩展介绍** `phdfs`扩展是专门为PHP设计的,它提供了与Hadoop HDFS交互的API,使得PHP程序员能够读取、写入、移动、删除HDFS上的...

    Ttrift 访问hive的php客户包

    Hive则是大数据处理领域的一个重要工具,它提供了一个SQL-like接口来处理存储在分布式存储系统(如Hadoop HDFS)中的大量数据。当需要在PHP应用程序中访问和操作Hive数据时,Ttrift提供了连接Hive的PHP客户端库,...

    共享网盘系统PHP源码

    6. **文件存储与管理**:文件可能存储在本地文件系统、云存储服务(如AWS S3、阿里云OSS)或分布式文件系统(如HDFS)。PHP库如Flysystem提供了抽象层,方便对接不同存储服务。文件的元数据(如文件名、大小、创建...

    phpcore.zip

    PHP开发者需要学习如何使用PHP接口与这两个组件交互,包括读取和写入HDFS文件,提交MapReduce作业,以及处理作业的输出。 此外,结合Hadoop的大数据处理能力,PHP还可以在实时数据分析、日志分析、用户行为追踪等...

    php通过thrift获取hadoop资源

    标题中的“php通过thrift获取hadoop资源”指的是在PHP编程环境中,利用Thrift框架来访问和操作Hadoop分布式文件系统(HDFS)或者Hadoop的相关服务。Thrift是一种跨语言的服务开发工具,由Facebook开源,它允许用一种...

    hbase_hive_thrift_php

    它提供实时读写访问分布式存储的数据,并以列族为单位进行数据组织。HBase适用于处理海量结构化和半结构化数据,尤其适合那些需要实时查询和大数据量写入的场景。 2. **Hive**:Hive是由Facebook开发的,用于大数据...

    大数据综合案例-网站日志分析

    2. 注册用户数:计算公式:对访问 member.php?mod=register 的 url,计数。 3. IP 数:一天之内,访问网站的不同独立 IP 个数加和。计算公式:对不同的访问者 ip,计数。 4. 跳出率:只浏览了一个页面便离开了网站...

    高并发高访问量网站的运维技术[定义].pdf

    Hadoop、Spark等分布式计算框架,以及HDFS、GlusterFS等分布式文件系统,能够处理海量数据,提高运算效率,适应高并发环境。 9. **微服务架构**: 微服务架构将复杂应用分解为小而独立的服务,每个服务都能独立...

    为Apache Hadoop、Spark以及Tez等大数据计算框架集成.zip

    hadoop-cos(CosN文件系统)为Apache Hadoop、Spark以及Tez等大数据计算框架集成提供支持,可以像访问HDFS一样读写存储在腾讯云COS上的数据。同时也支持作为Druid等查询与分析引擎的Deep Storage. 各领域数据集,...

    java,python,hadoop,spring,php学习视频资源分享.zip

    它基于Google的MapReduce模型,通过分布式文件系统(HDFS)提供高容错性和可扩展性。Hadoop使得企业能够以相对较低的成本处理PB级别的数据,广泛应用于大数据分析、云计算等领域。 4. **Spring**:Spring是Java平台...

    05-Hbase安装部署及优化.pdf

    3. Thrift Gateway:利用Thrift序列化技术,支持多种语言访问Hbase,如C++、PHP、Python等。 4. REST Gateway:支持REST风格的HTTP API访问HBase,解除了语言限制。 5. MapReduce:通过直接使用MapReduce作业处理...

    Hadoop之Hbase从入门到精通 .doc

    * Thrift Gateway:利用 Thrift 序列化技术,支持 C++、PHP、Python 等多种语言,适合其他异构系统在线访问 HBase 表数据。 * REST Gateway:支持 REST 风格的 Http API 访问 HBase,解除了语言限制。 * Pig:可以...

    phpoop

    8. **安全性**:在使用phpoop时,需要考虑数据安全性和访问控制,确保只有授权的用户和应用能访问和处理数据。 9. **数据处理范例**:phpoop可能提供了几个示例MapReduce任务,帮助初学者理解和学习如何用PHP编写...

    Hbase从入门到精通

    3. **Thrift Gateway**:支持多种语言(如C++、PHP、Python等),适用于异构系统的在线访问。 4. **REST Gateway**:支持HTTP REST风格的API,提供语言无关的访问方式。 5. **Pig**:使用Pig Latin流式编程语言操作...

    业务文件管理系统 v1.0 测试版

    它可能采用分布式存储技术,如Hadoop HDFS或Ceph,以提供高可用性和扩展性。系统可能还包含备份和恢复策略,如定期备份到云存储服务,以防止数据丢失。 2. 我的文件:这个模块允许用户查看和管理个人的文件和文件夹...

    Easyhadoop学习笔记

    - 在`config/database.php`中配置数据库连接,使PHP可以访问MySQL数据库。 - 创建并导入数据库`easyhadoop.sql`,并使用初始用户名和密码`admin123456`登录。 3. **安装NodeAgent** - 将`NodeAgent.py`发送到每...

    业务文件管理系统 v1.0 测试版.rar

    存储系统可能采用了分布式文件系统技术,如Hadoop HDFS或Ceph,以确保数据的高可用性和容错性。 2. 我的文件:此模块允许每个用户创建自己的个人文件夹,存储和整理与他们工作相关的文件。用户可以根据项目、任务或...

    7-分布式数据库HBase.ppt

    HBase是Apache Hadoop生态系统的组成部分,与HDFS(Hadoop Distributed File System)和MapReduce紧密集成,提供了对大数据的实时访问和处理能力。 ### 1. HBase的出现背景 尽管关系型数据库在过去的几十年中占据...

    php-videosite-tube

    2. **存储方案**:视频文件通常较大,需要考虑云存储服务(如AWS S3或阿里云OSS)或者分布式文件系统(如Hadoop HDFS)。 3. **流媒体服务**:使用如HTTP Live Streaming (HLS) 或 Dynamic Adaptive Streaming over ...

Global site tag (gtag.js) - Google Analytics