环境:Ubuntu 9.10
hadoop 0.20.2
apache2+PHP5
1.安装Apache。具体安装命令如下所示:
$ sudo apt-get install apache2
然后运行Apache,命令如下所示:
$ sudo /etc/init.d/apache2 restart
Apache在安装期间将会新建一个目录:/var/www,该目录是该服务器中存放文档的根目录。只要在浏览器的地址栏输入 http://localhost/ 或机器的IP地址就能访问放置在 此目录中的所有文档。
2.安装php
$sudo apt-get install libapache2-mod-php5
$sudo apt-get install php5
在/var/www/下新建一个phpinfo.php文件,文件内容如下:
<?php
phpinfo();
?>
在浏览器中输入http://localhost/phpinfo.php查看php相关信息
3.JavaBridge
在网站http://php-java-bridge.sourceforge.net/上下载JavaBridge.war和php-java-bridge_5.5.4.1.tar.gz
解压php-java-bridge_5.5.4.1.tar.gz,README里面的有较为详细的使用说明。简要步骤
a.在/var/www目录下新建目录JavaBridge, 并将JavaBridge.war copy到该目录下
b.$java -classpath JavaBridge.war TestInstallation 将JavaBridge.war解压到当前文件
c.在./ext目录下执行$sudo java -jar JavaBridge.jar打开JavaBridge服务,在对话框中选择SERVLET_LOCAL:8080,
日志文件是ext目录下的JavaBridge.log
d.在浏览器中输入http://localhost/JavaBridge/test.php, 如果JavaBridge运行成功,在页面后面会有Java环境的信息。
4.hadoop链接
将写好的代码压缩成jar包,copy到java.ext.dirs(在JavaBridge.log中会查到,3-c中)所在的一个目录中。
将hadoop的相关类库也都copy进去。
重新启动JavaBridge服务
获取文件的例子getpic.php
<?php require_once("JavaBridge/java/Java.inc");
try {
$hd = new java("hdfs.HDFS");
$hd->get("hdfs://master:9000/user/hadoop/test-in/logo_cn.png", "/home/hadoop/1.png");
} catch (JavaException $ex) { echo "An exception occured: "; echo $ex; echo "<br>\n";}
?>
问题:Warning: java_require() not supported anymore. Please use tomcat or jee hot deployment instead in /var/www/JavaBridge/java/Java.inc on line 1661
解决方法:按照第4步,将库导入到java.ext.dirs下