導航:首頁 > 編程語言 > hdfsphp

hdfsphp

發布時間:2022-04-24 23:00:48

『壹』 php程序員要學習hadoop嗎

Hadoop布式系統基礎架構,由Apache基金發用戶解布式底層細節情況,發布式程序充利用集群威力高速運算存儲Hadoop實現布式文件系統(Hadoop Distributed File System),簡稱HDFSHDFS著高容錯性特點,並且設計用部署低廉(low-cost)硬體且提供高傳輸率(high throughput)訪問應用程序數據,適合些著超數據集(large data set)應用程序HDFS放寬(relax)POSIX要求(requirements)流形式訪問(streaming access)文件系統數據

『貳』 hadoop web管理Hue,Ambari 和CM 的區別是什麼

1.hue是什麼?
hue是hadoop生態系統的統一webUI。你可以通過hue的界面,鏈接hive,發出hive語句。這個類似phpmysql。 你可以瀏覽hdfs的文件。 你可以定義oozie的工作流,可以寫pig的腳本,可以配置zookeeper,可以可視化的配置kafka。總之,hue的目標就是作一個hadoop各種生態組建的webUI的平台。
hue既然是平台,那組件就是app。參考這里。App Store | Hue
我未來的工作會讀hue的 python代碼,挖掘更多hue的功能。國內有hue的玩家,或者感興趣的玩家,歡迎一起交流噢。
2.clouera manager。
是管理hadoop集群運維的webUI。你可以用cloudera manager在集群中,簡單的搭建hadoop,hbase集群。通過cloudera manager,你能看到哪些datenode結點和namenode 結點聯結有問題了,哪些磁碟快滿了,哪些cpu高,哪些磁碟io高。等等。 當你有個datenode的一塊硬碟壞了時,你可以在cm中輕松的把這個datenode先停止工作,然後把結點移除。在磁碟修好了之後,再添加回集群。 當你新添加了一批機器,需要運行集群負載平衡的指令時,cm也能簡單滿足。 cloudera manager的用處,是用來簡化hadoop運維人員的工作門檻的,webUI所見所得,提高效率。
更詳細的clouderamanager介紹,就去cm的官網擼文檔吧。Cloudera QuickStart
3.ambari
做hadoop商業化的公司,有3家比較大的。cloudera manager 、 hortonworks、mapR.
這里是個簡單的對比 Cloudera vs. Hortonworks vs. MapR
一句話。cloudera manager的自家管理套件就是同名的cm。 ambari是hortonworks公司的,純開源的用來對標cm的hadoop生態管理套件。

『叄』 hadoop適合asp.net php嗎

不知道你具體想做啥,hadoop是數據分析軟體,並不適合當做網頁運行

『肆』 hadoop是干什麼用的

提供海量數據存儲和計算的。需要java語言基礎。

Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬體上;而且它提供高吞吐量來訪問應用程序的數據,適合那些有著超大數據集(large data set)的應用程序。

Hadoop的框架最核心的設計就是:HDFS和MapRece。HDFS為海量的數據提供了存儲,而MapRece則為海量的數據提供了計算。

(4)hdfsphp擴展閱讀

Hadoop是一個能夠讓用戶輕松架構和使用的分布式計算平台。用戶可以輕松地在Hadoop上開發和運行處理海量數據的應用程序。能夠對大量數據進行分布式處理的軟體框架Hadoop 以一種可靠、高效、可伸縮的方式進行數據處理。

Hadoop 是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數據副本,確保能夠針對失敗的節點重新分布處理。Hadoop 是高效的,因為它以並行的方式工作,通過並行處理加快處理速度。

『伍』 如何使用Java API讀寫HDFS

Java API讀寫HDFS

public class FSOptr {

/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Configuration conf = new Configuration();
makeDir(conf);
rename(conf);
delete(conf);

}

// 創建文件目錄
private static void makeDir(Configuration conf) throws Exception {
FileSystem fs = FileSystem.get(conf);
Path dir = new Path("/user/hadoop/data/20140318");
boolean result = fs.mkdirs(dir);// 創建文件夾
System.out.println("make dir :" + result);

// 創建文件,並寫入內容
Path dst = new Path("/user/hadoop/data/20140318/tmp");
byte[] buff = "hello,hadoop!".getBytes();
FSDataOutputStream outputStream = fs.create(dst);
outputStream.write(buff, 0, buff.length);
outputStream.close();
FileStatus files[] = fs.listStatus(dst);
for (FileStatus file : files) {
System.out.println(file.getPath());
}
fs.close();
}

// 重命名文件
private static void rename(Configuration conf) throws Exception {

FileSystem fs = FileSystem.get(conf);
Path oldName = new Path("/user/hadoop/data/20140318/1.txt");
Path newName = new Path("/user/hadoop/data/20140318/2.txt");
fs.rename(oldName, newName);

FileStatus files[] = fs.listStatus(new Path(
"/user/hadoop/data/20140318"));
for (FileStatus file : files) {
System.out.println(file.getPath());
}
fs.close();
}

// 刪除文件
@SuppressWarnings("deprecation")
private static void delete(Configuration conf) throws Exception {
FileSystem fs = FileSystem.get(conf);
Path path = new Path("/user/hadoop/data/20140318");
if (fs.isDirectory(path)) {
FileStatus files[] = fs.listStatus(path);
for (FileStatus file : files) {
fs.delete(file.getPath());
}
} else {
fs.delete(path);
}

// 或者
fs.delete(path, true);

fs.close();
}

/**
* 下載,將hdfs文件下載到本地磁碟
*
* @param localSrc1
* 本地的文件地址,即文件的路徑
* @param hdfsSrc1
* 存放在hdfs的文件地址
*/
public boolean sendFromHdfs(String hdfsSrc1, String localSrc1) {

Configuration conf = new Configuration();
FileSystem fs = null;
try {
fs = FileSystem.get(URI.create(hdfsSrc1), conf);
Path hdfs_path = new Path(hdfsSrc1);
Path local_path = new Path(localSrc1);

fs.ToLocalFile(hdfs_path, local_path);

return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}

/**
* 上傳,將本地文件到hdfs系統中
*
* @param localSrc
* 本地的文件地址,即文件的路徑
* @param hdfsSrc
* 存放在hdfs的文件地址
*/
public boolean sendToHdfs1(String localSrc, String hdfsSrc) {
InputStream in;
try {
in = new BufferedInputStream(new FileInputStream(localSrc));
Configuration conf = new Configuration();// 得到配置對象
FileSystem fs; // 文件系統
try {
fs = FileSystem.get(URI.create(hdfsSrc), conf);
// 輸出流,創建一個輸出流
OutputStream out = fs.create(new Path(hdfsSrc),
new Progressable() {
// 重寫progress方法
public void progress() {
// System.out.println("上傳完一個設定緩存區大小容量的文件!");
}
});
// 連接兩個流,形成通道,使輸入流向輸出流傳輸數據,
IOUtils.Bytes(in, out, 10240, true); // in為輸入流對象,out為輸出流對象,4096為緩沖區大小,true為上傳後關閉流
return true;
} catch (IOException e) {
e.printStackTrace();
}

} catch (FileNotFoundException e) {
e.printStackTrace();
}
return false;
}

/**
* 移動
*
* @param old_st原來存放的路徑
* @param new_st移動到的路徑
*/
public boolean moveFileName(String old_st, String new_st) {

try {

// 下載到伺服器本地
boolean down_flag = sendFromHdfs(old_st, "/home/hadoop/文檔/temp");
Configuration conf = new Configuration();
FileSystem fs = null;

// 刪除源文件
try {
fs = FileSystem.get(URI.create(old_st), conf);
Path hdfs_path = new Path(old_st);
fs.delete(hdfs_path);
} catch (IOException e) {
e.printStackTrace();
}

// 從伺服器本地傳到新路徑
new_st = new_st + old_st.substring(old_st.lastIndexOf("/"));
boolean uplod_flag = sendToHdfs1("/home/hadoop/文檔/temp", new_st);

if (down_flag && uplod_flag) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}

// 本地文件到hdfs
private static void CopyFromLocalFile(Configuration conf) throws Exception {
FileSystem fs = FileSystem.get(conf);
Path src = new Path("/home/hadoop/word.txt");
Path dst = new Path("/user/hadoop/data/");
fs.FromLocalFile(src, dst);
fs.close();
}

// 獲取給定目錄下的所有子目錄以及子文件
private static void getAllChildFile(Configuration conf) throws Exception {
FileSystem fs = FileSystem.get(conf);
Path path = new Path("/user/hadoop");
getFile(path, fs);
}

private static void getFile(Path path, FileSystem fs)throws Exception {
FileStatus[] fileStatus = fs.listStatus(path);
for (int i = 0; i < fileStatus.length; i++) {
if (fileStatus[i].isDir()) {
Path p = new Path(fileStatus[i].getPath().toString());
getFile(p, fs);
} else {
System.out.println(fileStatus[i].getPath().toString());
}
}
}

//判斷文件是否存在
private static boolean isExist(Configuration conf,String path)throws Exception{
FileSystem fileSystem = FileSystem.get(conf);
return fileSystem.exists(new Path(path));
}

//獲取hdfs集群所有主機結點數據
private static void getAllClusterNodeInfo(Configuration conf)throws Exception{
FileSystem fs = FileSystem.get(conf);
DistributedFileSystem hdfs = (DistributedFileSystem)fs;
DatanodeInfo[] dataNodeStats = hdfs.getDataNodeStats();
String[] names = new String[dataNodeStats.length];
System.out.println("list of all the nodes in HDFS cluster:"); //print info

for(int i=0; i < dataNodeStats.length; i++){
names[i] = dataNodeStats[i].getHostName();
System.out.println(names[i]); //print info

}
}

//get the locations of a file in HDFS
private static void getFileLocation(Configuration conf)throws Exception{
FileSystem fs = FileSystem.get(conf);
Path f = new Path("/user/cluster/dfs.txt");
FileStatus filestatus = fs.getFileStatus(f);
BlockLocation[] blkLocations = fs.getFileBlockLocations(filestatus,0,filestatus.getLen());
int blkCount = blkLocations.length;
for(int i=0; i < blkCount; i++){
String[] hosts = blkLocations[i].getHosts();
//Do sth with the block hosts

System.out.println(hosts);
}
}

//get HDFS file last modification time
private static void getModificationTime(Configuration conf)throws Exception{
FileSystem fs = FileSystem.get(conf);
Path f = new Path("/user/cluster/dfs.txt");
FileStatus filestatus = fs.getFileStatus(f);

long modificationTime = filestatus.getModificationTime(); // measured in milliseconds since the epoch

Date d = new Date(modificationTime);
System.out.println(d);
}

}

『陸』 用hadoop搭建大數據平台,前端頁面展示可以使用thinkphp嗎,

我們公司數據分析清洗是python 頁面展示是tp3

『柒』 用php做了一個本地資料庫搜索網頁,但是不知道如何把這個網頁和Hadoop連接上,求解!

Hadoop呵呵 不知道你是為了實現什麼,但是我覺得有點多此一舉把。普通的網站的話還是用不著的呀。

『捌』 phpHiveAdmin是如何通過Hive/Hadoop工作的

二、phpHiveAdmin將HQL請求發送給HAproxy負載的Hive server集群。三、phpHiveAdmin讀取Metadata的數據,注意這里是只讀,並不存在對Metadata的讀寫。因為元數據非常重要,涉及到底層數據的正確性,所以不能隨意修改。四、phpHiveAdmin目前可以通過Fuse-DFS的方式瀏覽HDFS中的文件五、被分配到HQL任務的某個Hive Server,將HQL轉換為Map/Rece的job,並提交給HDFS,進行計算。六、HDFS將job分配map,提交到大數據雲,也就是datanode節點中進行計算,並將計算結果rece,提交給Hive server,Hive server將結果返回給phpHiveAdmin。七、phpHiveAdmin 執行ETL任務,將計算結果直接存儲到Mysql中,提交給展示層應用查詢,並生成用戶友好的數據報表。注釋:小雲是HAProxy所做的Hive server集群,負載均衡以適應並發查詢的要求。由於找不到合適的圖標,就拿小雲彩代替了。

『玖』 大數據怎麼入行 做了兩年php研發,現在想轉做大數據,沒什麼經驗,想入行的話,hadoop和數據

大數據對於我們這些從業者來說,是不太喜歡說的一個詞。所謂內行看門道,外行看熱鬧,大數據這兩年風風火火,大家都爭先恐後的討論著,但說到如何掌握或者運用,很多人是不知所措的。
私以為,大數據的核心在三個地方:數學+計算機知識+業務
先說說題主說到的編程,我在這里將它納入計算機知識這一部分,因為編程對於我們來說只是大數據的冰山一角。這兩年大數據的發展,絕對不是因為編程語言的進步,很大一部分是由於計算機工具的進步或者硬體的提升。 尤其是現在計算機硬體價格的下跌,以及大數據處理工具的發展,如hadoop,spark等,帶來了數據處理能力的飛速提升,才導致了現在大數據的越來越火。
至於我們說的數據挖掘知識和編程語言,這些都是很早以前就已經存在的知識,這幾年也沒有得到很令人驚喜的新進展(我說的是知識本身,不是指應用)。
總之: 大數據之所以得到人們關注,最重要的是數據處理工具的進步以及數據量的累積(尤其是互聯網)
那麼是不是說明 掌握編程或者計算機工具就是邁入大數據的關鍵路徑呢?
答案:顯然不是,數學才是真正的核心知識。
沒錯,數學是在數據挖掘領域非常重要的甚至是核心的部分,編程只是工具,真的只是工具。 編程語言有好幾十種嗎,但是數據挖掘理論知識就那兒點。 你用任何一門語言去實現你的數學思想便可以達到數據挖掘的目標。 學術研究甚至可以拋棄編程,完全只研究演算法(注意:這樣的話會容易造成紙上談兵)。

閱讀全文

與hdfsphp相關的資料

熱點內容
機明自動編程軟體源碼 瀏覽:325
php埠號設置 瀏覽:540
phperegreplace 瀏覽:319
androidgridview翻頁 瀏覽:537
ssh協議編程 瀏覽:634
如何開我的世界電腦伺服器地址 瀏覽:861
玄關pdf 瀏覽:609
程序員學習論壇 瀏覽:940
程序員的毒雞湯怎麼做 瀏覽:547
安卓怎麼降級軟體到手機 瀏覽:281
雲與伺服器入門書籍推薦產品 瀏覽:636
delphi編程助手 瀏覽:761
電腦遇到伺服器問題怎麼辦 瀏覽:515
加工中心編程結束方法 瀏覽:296
了解什麼是web伺服器 瀏覽:139
面向對象的編程的基本特徵 瀏覽:718
php定時執行任務linux 瀏覽:787
php數組中刪除元素 瀏覽:724
螢石雲伺服器視頻 瀏覽:269
防火牆配置伺服器熱備的虛擬地址 瀏覽:189