网站建设公司浙江,北京的制作网站的公司,开源无代码开发平台,海口发布最新通告SpringHadoop是通过Spring框架来调用hdfs,跟直接调用hdfs的最大的不同区别是Spring通过依赖注入的方式生成操作hdfs所需要的configuration和filesystem对象,其他所有调用hdfs的api不变 1.在项目的main目录下创建resources文件夹,并将其添加到项目的资源文件中,如图 #xfffc… SpringHadoop是通过Spring框架来调用hdfs,跟直接调用hdfs的最大的不同区别是Spring通过依赖注入的方式生成操作hdfs所需要的configuration和filesystem对象,其他所有调用hdfs的api不变 1.在项目的main目录下创建resources文件夹,并将其添加到项目的资源文件中,如图 2.在resources文件夹下创建beans.xml和application.properties文件,分别用来注入对象及管理配置文件 3.添加hadoop和spring-hadoop的依赖
!--在这里可以定义变量,可以统一管理版本号--
propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding!--对hadoop版本进行统一管理--hadoop.version2.6.0-cdh5.7.0/hadoop.version
/propertiesrepositories!--添加下载hadoop的仓库--repositoryidcloudera/idurlhttps://repository.cloudera.com/artifactory/cloudera-repos/url/repository
/repositoriesdependencies!--添加hadoop依赖--dependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion${hadoop.version}/version!--由于生产环境上已经有这个包,因此不需要打到项目里去--scopeprovided/scope/dependency!--添加spring-hadoop依赖--dependencygroupIdorg.springframework.data/groupIdartifactIdspring-data-hadoop/artifactIdversion2.5.0.RELEASE/version/dependency/dependencies 4.配置beans.xml和application.properties文件中的configuration和filesystem对象 beans.xml文件
!--将属性配置文件application.properties引用进来,这样在该xml文件就可以使用该配置文件里面的属性--
context:property-placeholder locationapplication.properties/!--配置hdfs的configurtion--
hdp:configuration idhadoopConfiguration !--配置namenode的地址--fs.defaultFS${spring.hadoop.fs-uri}
/hdp:configurationhdp:file-system idfileSystem configuration-refhadoopConfiguration userroot/ application.properties文件 spring.hadoop.fs-urihdfs://hadoop01:8020 5.最后是java单元测试代码 package spring;import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import java.io.IOException;/*** author ht* create 2018-01-30 23:03* desc SpringHadoop测试类**/
public class SpringHadoopApp {//Spring上下文private ApplicationContext mContext;//hdfs文件系统对象private FileSystem mFileSystem;/*** 测试创建文件夹*/Testpublic void mkdir() throws IOException {mFileSystem.mkdirs(new Path(/test));}/*** 测试从服务器读取文件*/Testpublic void text() throws IOException {FSDataInputStream is mFileSystem.open(new Path(/test/install.log.syslog));IOUtils.copyBytes(is,System.out,1024);is.close();}Beforepublic void setUp() {//获取Spring上下文,spring的依赖注入,是将对象注入到beans中,类似dagger2中的moudle,专门负责生成对象mContext new ClassPathXmlApplicationContext(beans.xml);//通过beans.xml文件获取filesystem对象mFileSystem (FileSystem) mContext.getBean(fileSystem);}Afterpublic void tearDown() throws IOException {mContext null;mFileSystem.close();}
}转载于:https://www.cnblogs.com/flowyourheart/p/shi-yongSpringhadoop-xiao-jie.html