一、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所需的占用空間。