hadoop之php-java-bridge使用小结

时间:2022-10-29 15:57:22

环境: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下