现在的位置: 首页 > 综合 > 正文

百度云平台使用说明

2018年04月20日 ⁄ 综合 ⁄ 共 3450字 ⁄ 字号 评论关闭

当我们登陆之后,百度提供了在服务器上面的工作目录,并且是以/user/username方式命名,其username就是我们注册的用户名,在百度网盘可以与HDFS分布式文件系统交互,同样在WEB服务器上也可以与HDFS分布式系统交互,其方法是:在web shell 界面输入upload可以将用户文件上传到WEB服务器上面用户对应的工作目录下面,然后我们可以使用hadoop fs -put test ./ 将WEB服务器上的文件上传到HDFS分布式系统上,在WEB服务器上面可以使用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分布式系统上的文件下载到WEB服务器:
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

在用户的服务器上工作目录下存在一个文件index.html,用户输入hadoop fs –put index.html ./001,则会拷贝用户服务器上工作目录下的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分布式系统上的文件是访问不了的,程序给出提示如下:

这里写图片描述

抱歉!评论已关闭.