一、phdfs拓展
结果:暂时舍弃
安装此拓展时,无法make成功,因为缺少hdfs.n文件。
换了其他版本的拓展包,并编译都没有找到此文件。
后搜到官网的相关资料,此hdfs.h的文件路径的地址是$HADOOP_HDFS_HOME/include/hdfs.h。
顿时对此拓展失去了好感觉,因为这意味着,我必须再PHP环境中再装一个hdfs。很不符合常规的目前的应用场景。
而且网上用此拓展人的并不多,暂时舍弃。
二、webhdfs php文件包
结果:容易产生权限问题
看了下webhdfs的源码,只是普通的抓包代码。
所以核心还是hadoop中,原来hadoop对hdfs提供的http的访问模式,只需要对hdfs_site.xml的配置中关于http的访问开启即可。
配置好hadoop后,用curl命令进行访问测试,并不顺利,容易受到权限的影响。
由于我对hadoop的了解较少,具体的权限分析,我还要再研究下
三、httpfs
结果:可用。
基本上公司用的httpfs(但却叫成了webhdfs),httpfs默认端口为14000,但webhdfs的默认端口为50070。
这两个模块有几乎相同的作用。
WebHDFS REST API
Apache Hadoop 2.4.1 - Hadoop Distributed File System-2.4.1 - WebHDFS REST API
资料显示:
webhdfs与httpfs的主要区别在于:webhdfs需要访问集群的所有节点,当读取某些数据时,它直接从该节点传输,而在httpfs中,单个节点的作用类似于“网关”,将是向客户机节点传输数据的单点。因此,在大型文件传输过程中,httpfs可能会被阻塞,但好处是我们正在最小化访问hdfs所需的占用空间。