#HDFS Java API操作—上传文件
##【实验目的】
1)熟悉HDFS java编程—上传文件
##【实验原理】
通过hadoop 提供的java api对hdfs进行操作。
##【实验环境】
本次环境是:centos6.5 + jdk1.7 + hadoop2.4.1(64位)+ecplise
计算机名称(hostname):host01,对应ip地址为 192.168.0.201 【以实际情况而定】
##【实验步骤】
###一、启动Hadoop服务
1.1 查看服务状态。在命令终端,执行命令“jps”(查看hadoop服务是否已经启动,如未启动,启动服务)。如图1所示
1.2 启动hadoop服务。启动hadoop服务可以通过一次性启动hadoop所有服务,执行命令“start-all.sh”,如图2所示。
还可以通过单独启动(查看服务启动共有6项,如果缺少请执行stop-all.sh关闭,重新启动)
1.3 通过`touch /simple/HelloWorld.txt`在simple目录下创建HelloWorld.txt文件。如图3所示
![]()
###二、创建java项目包
2.1 打开ecplise开发工具,点击File选择“New”->“Java Project”新建名为“Hadoop”的java项目,点击“Hadoop”项目右键,选择“New” –>“Package”;如图4所示
![]()
2.2 输入名称“com.hdfs”点击完成。如图5所示
![]()
2.3 新建java 类。选中包名并右键点击,选择“New”->“Class”。如图6所示
![]()
2.4 在name 项输入“ HdfsTest”类名称,点击Finish完成。如图7所示
![]()
2.5 右击创建的项目选择“New”->“Folder”目录下创建文件夹libs。
2.6 拷贝桌面实验资料下lib文件下的所有hadoop jar包到libs文件夹下。
2.7 选中libs下的所有jar包,右键点击,然后选择“add to build path”即可把所有jar包添加到path环境中。
###三、编写程序
```java
package com.hdfs;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class HdfsTest {
// 获取HADOOP FileSystem对象
private FileSystem fs = null;
private List<String> hdfsPathsLists;
/**
* 初始化环境变量
*/
@Before
public void init() throws Exception {
/*
* new URI("hdfs://localhost:9000"):连接HADOOP连接 RUL new
* Configuration():使用HADOOP 默认配置
* "root":登录用户
*/
Configuration con = new Configuration();
con.setBoolean("dfs.support.append", true);
fs = FileSystem.get(new URI("hdfs://localhost:9000"),con, "root");
}
/**
* 将本地文件上传到HDFS上
*/
//注意,@Test此代表该方法为Junit测试,否则无法Junit Test运行
@Test
public void testUploadFile()throws Exception {
String src="/simple/HelloWorld.txt";
String hdfsDst= "/";
fs.copyFromLocalFile(new Path(src), new Path(hdfsDst));
System.out.println("upload sucess");
}
}
```
###四、程序运行
4.1 在项目栏目最右侧,选中要运行的方法“testUploadFile”—>点击右键—>选择“run as”—>选择“Junit Test”,等待执行结果。如图8所示
![]()
4.2 显示运行结果。如图9所示
![]()
###五、程序结果验证
5.1 通过hadoop shell 命令进行验证 。如图10所示
![]()
#HDFS Java API操作—下载文件
##【实验目的】
1)熟悉HDFS java编程—下载文件
##【实验原理】
通过hadoop 提供的java api对hdfs进行操作。
##【实验环境】
本次环境是:centos6.5 + jdk1.7 + hadoop2.4.1(64位)+ecplise
计算机名称(hostname):host01,对应ip地址为 192.168.0.201 【以实际情况而定】
##【实验步骤】
###一、启动Hadoop服务
1.1 查看服务状态。在命令终端,执行命令“jps”(查看hadoop服务是否已经启动,如未启动,启动服务)。如图1所示
1.2 启动hadoop服务。启动hadoop服务可以通过一次性启动hadoop所有服务,执行命令“start-all.sh”,如图2所示。还可以通过单独启动(查看服务启动共有6项,如果缺少请执行stop-all.sh关闭,重新启动)
1.3 通过`hdfs dfs -touchz /java`在HDFS上创建文件。如图3所示。
![]()
###二、创建java项目包
2.1 打开ecplise开发工具,点击File选择“New”->“Java Project”新建名为“Hadoop”的java项目,点击“Hadoop”项目右键,选择“New” –>“Package”;如图4所示
2.2 输入名称“com.hdfs”点击完成。如图5所示
2.3 新建java 类。选中包名并邮件点击,选择“New”->“Class”。如图6所示
2.4 在name 项输入“ HdfsTest”类名称,点击Finish完成。如图7所示
2.5 右击创建的项目选择“New”->“Folder”目录下创建文件夹libs。
2.6 拷贝桌面实验资料下lib文件下的所有hadoop jar包到libs文件夹下。
2.7 选中libs下的所有jar包,右键点击,然后选择“add to build path”即可把所有jar包添加到path环境中。
###三、编写程序
```java
package com.hdfs;
import java.io.IOException;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Before;
import org.junit.Test;
public class HdfsTest {
// 获取HADOOP FileSystem对象
private FileSystem fs = null;
/**
* 初始化环境变量
*/
@Before
public void init() throws Exception {
/*
* new URI("hdfs://localhost:9000"):连接HADOOP连接 RUL new
* Configuration():使用HADOOP 默认配置
* "root":登录用户
*/
fs = FileSystem.get(new URI("hdfs://localhost:9000"),new Configuration(), "root");
}
/**
* 文件下载到本地
*/
//注意,@Test此代表该方法为Junit测试,否则无法Junit Test运行
@Test
public void testDownloadFile() throws Exception{
String src= "/java";
String hdfsDst="/root";
fs.copyToLocalFile(new Path(src), new Path(hdfsDst));
System.out.println("downLoad sucess");
}
}
```
###四、程序运行
4.1 在项目栏目最右侧,选中要运行的方法“testDownloadFile”—>点击右键—>选择“run as”—>选择“Junit Test”,等待执行结果。如图8所示
![]()
4.2 显示运行结果。如图9所示
![]()
###五、程序结果验证
5.1 通过hadoop shell 命令进行验证。如图10所示
![]()












posted on
浙公网安备 33010602011771号