ubuntu使用PHP访问Hadoop,利用WebHDFS

本文介绍如何通过PHP访问Hadoop文件系统,利用WebHDFS接口和curl命令实现文件的读取、追加等操作,并提供了一个具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hadoop是使用JAVA语言编写的,有时候为了方便,需要使用PHP来访问Hadoop的文件系统,我们可以利用WebHDFS来访问,核心是利用curl命令。

确保ubuntu安装了curl

然后有美国人写的方法,https://github.com/simpleenergy/php-WebHDFS

还有一个日本人写的方法,这两种方法都行,链接https://github.com/Yujiro3/WebHDFS,下载他们的代码。

我这里使用的是美国人写的,文件结构目录如下:


然后写访问方法。testHDFS.php

<?php
/**
 * Created by PhpStorm.
 * User: ss
 * Date: 16-7-20
 * Time: 下午4:39
 */

require_once('../HDFS/org/apache/hadoop/WebHDFS.php');
require_once('../HDFS/org/apache/hadoop/tools/Curl.php');
require_once('../HDFS/org/apache/hadoop/WebHDFS/Exception.php');

$host = '192.168.111.73';

$hdfs = new org\apache\hadoop\WebHDFS(
    $host,
    '50070',
    'hadoop',
    'Master00',
    '9000',
    false);

echo $hdfs->getHomeDirectory();


//
echo "<br>";
//
$response = $hdfs->getFileStatus('/user/hadoop/input/capacity-scheduler.xml');
echo "<br>";
print_r('hahahahaaha' . $response);
echo "<br>";


print_r($hdfs->open("/user/hadoop/input/test.txt"));
echo '<br>';
print_r($hdfs->append("/user/hadoop/input/test.txt", "lalalaalalal"));
echo '<br>';
print_r($hdfs->open("/user/hadoop/input/test.txt"));
echo '<br>';

print_r($hdfs->append("/user/hadoop/input/test.txt", "\0a\32\12\77"));
echo '<br>';
print_r($hdfs->open("/user/hadoop/input/test.txt"));
然后访问结果如下:



成功。


有的时候catch报错显示不出来是因为namenode解析的访问的地址找不到,就会报错,但是又找不到错误在哪,只能自己手动利用curl命令找错误。我是在我的ubuntu下装了3台虚拟机Master00,Slave00,Slave01.有的时候我的ubuntu主机找不到Slave00和Slave01的网址,需要在我的ubuntu下配置/etc/hosts里面配置Master00,Slave00,Slave01的网址。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值