使用Spring-hadoop小结

SpringHadoop是通过Spring框架来调用hdfs,跟直接调用hdfs的最大的不同区别是Spring通过依赖注入的方式生成操作hdfs所需要的configuration和filesystem对象,其他所有调用hdfs的api不变

1.在项目的main目录下创建resources文件夹,并将其添加到项目的资源文件中,如图

-w300

2.在resources文件夹下创建beans.xml和application.properties文件,分别用来注入对象及管理配置文件

-w300

3.添加hadoop和spring-hadoop的依赖

    
<!--在这里可以定义变量,可以统一管理版本号-->
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--对hadoop版本进行统一管理--><hadoop.version>2.6.0-cdh5.7.0</hadoop.version>
</properties><repositories><!--添加下载hadoop的仓库--><repository><id>cloudera</id><url>https://repository.cloudera.com/artifactory/cloudera-repos</url></repository>
</repositories><dependencies><!--添加hadoop依赖--><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>${hadoop.version}</version><!--由于生产环境上已经有这个包,因此不需要打到项目里去--><scope>provided</scope></dependency><!--添加spring-hadoop依赖--><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-hadoop</artifactId><version>2.5.0.RELEASE</version></dependency></dependencies>

4.配置beans.xml和application.properties文件中的configuration和filesystem对象

beans.xml文件

   
<!--将属性配置文件application.properties引用进来,这样在该xml文件就可以使用该配置文件里面的属性-->
<context:property-placeholder location="application.properties"/><!--配置hdfs的configurtion-->
<hdp:configuration id="hadoopConfiguration" ><!--配置namenode的地址-->fs.defaultFS=${spring.hadoop.fs-uri}
</hdp:configuration><hdp:file-system id="fileSystem" configuration-ref="hadoopConfiguration" user="root"/>

application.properties文件

spring.hadoop.fs-uri=hdfs://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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火热物联网下,中国传感器的冷思考

文章来源于传感器专家网&#xff0c;转载自物联传媒&#xff0c;图片来源于网络近20年&#xff0c;移动互联网的发展催生物联网产业的发展。如今智能硬件层出不穷&#xff0c;从智能手环到智能手表&#xff0c;从智能盒子到智能家居&#xff0c;无不是在强化硬件的远程操控力。…

java c 基本类型_java 基本数据类型

java的8种基本数据类型&#xff1a;类型&#xff1a;bye short int long float double char boolean字节数&#xff1a;1 2 4 8 4 8 1 ???????对应的封装类是&#xff1a;Byte、Short、Integer、Long、Float、Double、Character、Boolean除…

因果推断的起源

转自&#xff1a;通识联播如涉版权请加编辑微信联系因果推断的起源朱迪亚珀尔但它&#xff08;地球&#xff09;仍在动。——出自伽利略&#xff08;1564—1642&#xff09;弗朗西斯高尔顿爵士在皇家学院展示他的“高尔顿板”&#xff08;Galton board&#xff09;或称“梅花机…

​台媒:台积电2nm制程获重大突破

来源&#xff1a;本文来自「经济日报」&#xff0c;谢谢。据台媒经济日报透露&#xff0c;台积电2纳米制程研发获重大突破。供应链透露&#xff0c;有别于3纳米与5纳米采用鳍式场效电晶体&#xff08;FinFET&#xff09;架构&#xff0c;台积电2纳米改采全新的多桥通道场效电晶…

院士论坛 | 郭毅可院士:人工智能的热望与冷思考

本文转载自微信公众号&#xff1a;慧天地&#xff0c;来源&#xff1a;上海人工智能学会。版权归原作者及刊载媒体所有&#xff0c;所刊载内容仅供交流参考使用&#xff0c;不代表本刊立场。郭毅可 欧洲科学院院士、英国皇家工程院院士、香港浸会大学副校长。1985年本科毕业于清…

sae 微信 java web_[1] 微信公众号与sae的web应用之间的配置

第一步&#xff1a;申请sae账号&#xff0c;并新建web应用。第三步&#xff1a;配置微信公众号接口&#xff1a;输入接口配置信息&#xff0c;填写URL和Token。点击提交按钮。※ 此时会发现配置不成功&#xff01;需要在代码中添加&#xff1a;header(content-type:text);全部代…

用肖像画追踪历史上的信任度变化 |《自然-通讯》论文

来源&#xff1a;Nature自然科研《自然-通讯》发表的一项研究Tracking historical changes in trustworthiness using machine learning analyses of facial cues in paintings指出&#xff0c;从1500年到2000年&#xff0c;欧洲肖像画中传递信任度的面部表达有所增加&#xff…

华为:求生存是当前主线 下阶段重点 to B数字化

作者 | 王刚出品 | 雷锋网产业组华为全联接&#xff08;HUAWEI CONNECT &#xff09;是华为自办、规模最大的面向ICT行业的全球生态大会&#xff0c;今年是第五载。 这里一直是华为公司发布重大战略的平台。 过去在这个舞台上&#xff0c;华为呼吁过全球伙伴共建哥斯达黎加式生…

发新款电池!成本降低14%,特斯拉会继续降价吗?

来源&#xff1a;网易智能在美国当地时间周二举行的“电池日”活动上&#xff0c;电动汽车制造商特斯拉公布了其“无极耳电极”电池计划(极耳是电池正极突出的那一小块)&#xff0c;可以提高电动汽车的续航里程和功率。特斯拉将在内部生产新电池&#xff0c;其首席执行官埃隆马…

[并查集][排序][dfs][启发式合并] JZOJ P3635 Peaks

Description 有一个居住在多山岛屿的登山家&#xff0c;已经攀上了一座山峰&#xff0c;并且要攀爬另外一座更高的山峰。 更精确地说&#xff0c;岛上的每一点都有一个大于零的海拔&#xff08;海面的海拔为零&#xff09;&#xff0c;并且如果登山家位于海拔Ei的山峰上&#x…

华为汪涛:打造全场景智能联接解决方案,共建行业智能体

来源&#xff1a;华为2020年9月24日&#xff0c;在HUAWEI CONNECT 2020期间&#xff0c;华为全面阐述全场景智能联接解决方案&#xff0c;从技术、网络、行业三个层面打造泛在千兆、确定性体验和超自动化的智能联接&#xff0c;共建行业智能体。同时&#xff0c;华为面向企业发…

斐波那契数java实现_斐波那契数列Java实现[剑指offer]

描述大家都知道斐波那契数列&#xff0c;现在要求输入一个整数n&#xff0c;请你输出斐波那契数列的第n项(从0开始&#xff0c;第0项为0)。n<39题解1.递归实现采用递归的方式进行实现时&#xff0c;从第n个节点向下递归时&#xff0c;存在重复节点&#xff0c;当n越大时&…

Facebook发布AR眼镜研究项目Project Aria

Facebook来源&#xff1a;IEEE电气电子工程师近日&#xff0c;在Oculus Connect直播活动中&#xff0c;Facebook宣布了Aria项目&#xff0c;这是一个专注于构建可穿戴增强现实设备的研究项目。但这些智能眼镜更像是一个研究平台&#xff0c;而不是为消费者提供的现成的小玩意。…

博士发公众号文章也能评国奖?双一流高校新规引热议!

来源&#xff1a; 募格学术本文为募格学术撰写。参考资料&#xff1a;南京大学官网、百度百科、知乎、中央广电总台中国之声等。作为研究生来说&#xff0c;如果能在读研期间获得国家奖学金&#xff0c;是一项莫大的荣誉。不过一般&#xff0c;国家奖学金的申请条件要求都比较高…

世界的下一个主宰——人工智能

一、人工智能的诞生及发展艾伦图灵是英国数学家、逻辑学家、密码学家&#xff0c;对计算机科学的发展具有重大影响。他于1936 年提出了抽象计算“图灵机”&#xff0c;使算法的概念得以形式化&#xff0c;至今仍在许多理论和实践研究中得到应用。世人公认&#xff0c;图灵的科学…

1.5亿重奖50位青年科学家!第二届“科学探索奖”揭晓

来源&#xff1a;科学网作者&#xff1a;赵广立9月25日&#xff0c;启动资金高达10亿元的“科学探索奖”正式公布第二届获奖名单&#xff0c;50位青年科学家获奖。他们将在未来5年各获得由腾讯基金会资助的300万元科研奖金。值得一提的是&#xff0c;50位获奖者中&#xff0c;最…

dokcer3

安装好的文件位置&#xff1a;/usr/sbin/nginx&#xff1a;主程序/etc/nginx&#xff1a;存放配置文件/usr/share/nginx&#xff1a;存放静态文件/var/log/nginx&#xff1a;存放日志其实从上面的根目录文件夹可以知道&#xff0c;Linux系统的配置文件一般放在/etc&#xff0c;…

BERT为什么是NLP的革新者

来源 | AI前线作者 | Jerry Wei译者 | 马可薇策划 & 编辑 | 刘燕语言模型 BERT 可以大幅提升许多任务的性能&#xff0c;那么它成功的背后是什么呢&#xff1f;本文最初发表在 Towards Data Science 博客&#xff0c;由 InfoQ 中文站翻译并分享。什么是 BERT&#xff1f;BE…

Mac idea中git igenore设置

转载于:https://www.cnblogs.com/hoge66/p/8406290.html

一文看懂BATH新基建:5G是基础,AI是内核

文章原载于 视觉中国“新基建”政策升温&#xff0c;“竞标赛”将启。“新基建”这一概念最早提出是在2018年底的中央经济工作会议上&#xff0c;会议指出要“加快5G商用步伐&#xff0c;加强人工智能、工业互联网、物联网等新型基础设施建设”&#xff0c;“新基建”概念由此…