安装maven和eclipse,编写简单的API对hadoop进行测试

来源:互联网 发布:文华财经编程视频教程 编辑:程序博客网 时间:2024/05/21 11:33
本章主要讲解怎么安装maven仓库和eclipse,装好后对maven仓库进行配置,并且编写简单的API接口对hadoop进行测试
1、安装maven,这个步骤特别简单,直接解压就可以了
[tom@blue01 ibeifeng]$ tar zxvf /opt/softwares/apache-maven-3.0.5-bin.tar.gz

配置MAVEN_HOME:# vi /etc/profile (root用户)
MAVEN_HOME=/opt/modules/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin

2、创建maven本地仓库
*** 若.m2文件夹不存在,则自己创建
$ mkdir /home/ibeifeng/.m2
$ cd /home/ibeifeng/.m2
*** 将提供的本地仓库包解压缩
[tom@blue01 .m2]$ tar zxvf /opt/softwares/repository.tar.gz

# /home/tom/.m2/repository 是maven默认的本地仓库
# maven仓库分为远程仓库和本地仓库,当在pom里配置依赖项目后,maven首先会从本地仓库查找该项目,
如果没有找到,则通过远程仓库下载该项目并保存在本地仓库里

3、安装eclipse
[tom@blue01 modules]$ tar zxvf eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz
$ ./eclipse或是配置PATH(/etc/profile文件)
#others
export PATH=$PATH:/opt/modules/eclipse
# 在eclipse里设置maven路径
window--preference--maven--installation,添加(Add)maven安装路径

4、在eclipse里创建maven工程:
a)
maven archetype(就是创建项目的脚手架,用来简化项目创建工作):选择quickstart(默认)
groupId:你的主包名,比如:com.myblue
artifactId:你的项目名,比如:myhdfs
***参见maven项目目录结构

b)
创建好后,打开pom.xml
junit版本建议改为:4.10
添加dependency:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.5.0</version>
</dependency>
** 配置后,所需要的jar包会被自动导入

c)
创建"Source Folder":src/main/resources目录,用来存放core-site.xml、hbase-site.xml等
将core-site.xml拷贝过来:
$ cp etc/hadoop/core-site.xml /home/ibeifeng/workspace/hdfs/src/main/resources/

----HDFS API--------------------------------

package com.myblue.myhdfs;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class Hello {

public static FileSystem getFs() throws IOException {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://ibeifeng:8020");
FileSystem fs = FileSystem.get(conf);
return fs;
}

public static void main(String[] args) throws IOException {
FileSystem fs = Hello.getFs();
FSDataInputStream inStream = fs.open(new Path("/input/a.txt"));

//创建目录,会将所有不存在的目录一起创建出来
// fs.mkdirs(new Path("/input/xxx/yyy"));
//创建一个空文件,不存在的路径会自动创建
// fs.create(new Path("/input/aaa/c.txt"));
//是否递归删除,连带里面的内容一起删除
// fs.delete(new Path("/input/aaa"), true);
//将Linux本地文件拷到HDFS
// fs.copyFromLocalFile(new Path("/home/tom/a.txt"), new Path("/input/e.txt"));
//得到文件夹内所有文件的信息
// FileStatus[] status=fs.listStatus(new Path("/input"));
// System.out.println(status[0].getPath()+" "+status[0].getLen());
// System.out.println(status[1].getPath()+" "+status[1].getLen());

try {
//后两个参数:缓存大小、结束后是否关闭
IOUtils.copyBytes(inStream, System.out, 4096, false);
} catch (Exception e) {
System.out.println(e);
} finally {
IOUtils.closeStream(inStream);
}
}
}
阅读全文
0 0