标签:版本 imp cal class oca 通过 window pat nod
通过Java API来访问HDFS
1.Windows上配置环境变量
解压Hadoop,然后把Hadoop的根目录配置到HADOOP_HOME环境变量里面
然后把HADOOP_HOME/lib和HADOOP_HOME/bin配置到path里面
2.替换bin目录
将官网下载的Hadoop目录下面的bin目录替换成Windows下编译的Hadoop的bin目录:
我已经上传了自己编译好的hadoop-2.6.1的bin目录,可以从https://pan.baidu.com/s/1P50N60Qb16zuZxSwPq6HaA下载
也可参考他人博客http://blog.csdn.net/mrbcy/article/details/55806809 自已编译适合自己电脑系统的版本即可
需要添加的jar包列表如下:
4.1.上传文件(有HADOOP_HOME就可以上传)
package cn.bigdata.hdfs; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; 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; /** * 客户端去操作HDFS时,是有一个用户身份的 * 默认情况下,hdfs客户端api会从jvm中获取一个参数来作为自己的用户身份:-DHADOOP_USER_NAME=root * 也可以在构造客户端fs对象时,通过参数传递进去 */ public class HdfsCientDemo { private FileSystem fs = null; Configuration conf = null; @Before public void inin() throws IOException, InterruptedException, URISyntaxException{ Configuration conf = new Configuration(); //拿到一个文件系统操作的客户端实例对象,最后一个参数为用户名,nameNode访问路径:hdfs://shizhan2:9000 fs = FileSystem.get(new URI("hdfs://shizhan2:9000"),conf,"root"); } //上传文件 @Test public void testUpload() throws Exception{ fs.copyFromLocalFile(new Path("c:/regist.log"), new Path("/regist-copy.log")); fs.close(); } }
运行后,上传文件成功:
4.2.下载文件(替换了bin才可以下载)
@Test public void testDownload() throws Exception { fs.copyToLocalFile(false, new Path("/regist-copy.log"), new Path("D:/"), false); fs.close(); }
4.3.下载文件(替换了bin才可以下载)
标签:版本 imp cal class oca 通过 window pat nod
原文地址:https://www.cnblogs.com/yaboya/p/9192461.html