百度云平台使用说明
當我們登陸之后,百度提供了在server上面的工作文件夾,而且是以/user/username方式命名,其username就是我們注冊的用戶名,在百度網盤能夠與HDFS分布式文件系統交互,相同在WEBserver上也能夠與HDFS分布式系統交互,其方法是:在web shell 界面輸入upload能夠將用戶文件上傳到WEBserver上面用戶相應的工作文件夾以下,然后我們能夠使用hadoop fs -put test ./ 將WEBserver上的文件上傳到HDFS分布式系統上,在WEBserver上面能夠使用ls直接查看當前文件夾以下文件,能夠使用hadoop fs -ls ./查看HDFS分布式系統上文件夾以下的文件。
主辦方提供三種數據:
1.關鍵詞數據集(文件為:hdfs://share/data/compad/keyword_class.txt)
2.關鍵詞輔助信息數據集(文件為:hdfs://share/data/compad/keyword_titles.txt)
3.關鍵詞與廣告主關聯關系數據集(文件為:hdfs://share/data/compad/keyword_users.txt)
使用例如以下命令將hdfs分布式系統上的文件下載到WEBserver:
hadoop fs -get /share/data/compad/keyword_class.txt ./keyword_class.txt
hadoop fs -get /share/data/compad/keyword_titles.txt ./keyword_titles.txt
hadoop fs -get /share/data/compad/keyword_users.txt ./keyword_users.txt
下載之后其存放路徑是:
當我想使用download命令將文件下載到本地時候。會提示文件超過大小,百度提供的文件大小權限是10M。超過10M文件無法下載。
相同我們還能夠使用
hadoop fs -cp /share/data/compad/keyword_users.txt ./keyword_users.txt
將文件復制到HDFS分布式系統上面我們自己的用戶文件夾下
如:我拷貝過之后,使用命令查看, hadoop fs -ls ./其所在路徑是:
注意:兩種方式拷貝的文件的目的路徑是不同的。
Hadoop 運行jar文件命令:hadoop jar xxx.jar mainclass args
hadoop jar ./My.jar
My.jar 應該存在你的JobClient的個人文件夾下(/home/shijiebei2009/My.jar),
而不是你的hdfs個人文件夾下。
假設我運行位于HDFS分布式系統上的jar文件,那么會出現permission denied錯誤提示。
我們能夠實現百度網盤與HDFS分布式文件系統進行交互。
從百度網盤到HDFS的文件傳輸
pan –put ./tupian.png ./test/tupian.png
從HDFS到百度網盤的文件傳輸
pan –get ./test/tupian.png./test/tupian.png
在用戶的server上工作文件夾下存在一個文件index.html,用戶輸入hadoop fs –put index.html ./001,則會拷貝用戶server上工作文件夾下的index.html。保存在用戶在HDFS的工作文件夾下的001子文件夾中。
Question:
在從HDFS上向網盤轉移文件時候,使用例如以下命令
pan -get /share/data/compad/keyword_class.txt ./keyword_class.txt
會出現
hdfs file not exist!
使用命令:
pan -get /share/data/compad/keyword_titles.txt ./keyword_titles.txt
會出現:
com.baidu.pcs.exception.PcsHttpException: org.apache.http.HttpException: IOException java.net.SocketException: Connection reset
當我在使用命令從網盤向HDFS上載文件時候,提示上載成功
可是在文件夾以下并不能找到我上載的文件
pan -get /user/shijiebei2009/keyword_class.txt ./keyword_class.txt
pan -get /user/shijiebei2009/keyword_users.txt ./keyword_users.txt
這兩條命令均能夠成功將文件下載到百度網盤,可是例如以下命令下載還有一個文件時候
會提示文件過大,不能下載。
在使用例如以下程序訪問keyword_titles.txt時候,出現的錯誤提示
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class hi {
public static void main(String[] args) {
ArrayList<String> keywordclass=new ArrayList<String>();
ArrayList<String> keywordtitles=new ArrayList<String>();
ArrayList<String> keywordusers=new ArrayList<String>();
keywordtitles = GetData("keyword_titles.txt");
// keywordclass = GetData("keyword_class.txt");
// keywordusers = GetData("keyword_users.txt");
// System.out.println(keywordclass.size()+" "+keywordtitles.size()+" "+keywordusers.size());
// System.out.println(keywordclass.size());
System.out.println(keywordtitles.size());
}
public static ArrayList<String> GetData(String filename) {
String dir=System.getProperty("user.dir")+"/"+filename;
ArrayList<String> datalist=new ArrayList<String>();
File file=new File(dir);
String line;
try {
BufferedReader reader=new BufferedReader( new FileReader(file));
while((line=reader.readLine())!=null)
datalist.add(line);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(dir);
return datalist;
}
}
當我想知道keyword_class.txt文件的大小的時候。程序結果例如以下:
程序輸出的數據是行數
當我想知道keyword_users.txt文件的大小的時候,程序結果例如以下:
經過試驗,假設我將程序中的dir改成例如以下形式
dir = “hdfs://share/data/compad/keyword_class.txt”;
即我要訪問HDFS分布式系統上的文件是訪問不了的,程序給出提演示樣例如以下:
總結
- 上一篇: 「达人分享」鸡肋是趋避冲突吗
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?