7月17号day9总结
今天学习过程和小结
今天学习了如何使用idea操作hdfs。
public class HDFSTest {
Configuration configuration;
FileSystem fileSystem;
String HDFS_PATH="hdfs://192.168.122.141:9000";
@Before
public void beform() throws Exception{
configuration=new Configuration();
fileSystem=FileSystem.get(new URI(HDFS_PATH),configuration,"root");
}
//hdfs上创建目录
@Test
public void mkdir() throws IOException{
boolean result=fileSystem.mkdirs(new Path("/idea"));
System.out.println(result);
}
//hdfs上创建文件
@Test
public void createFile() throws IOException{
FSDataOutputStream fsDataOutputStream =fileSystem.create(new Path("/idea/hello.txt"));
fsDataOutputStream.write("hello,idea".getBytes());
fsDataOutputStream.close();
}
//查看HDFS上的文件内容/idea/hello.txt
@Test
public void readFromHDFS() throws IOException{
FSDataInputStream fsDataInputStream= fileSystem.open(new Path("/idea/hello.txt"));
//打印到控制台
IOUtils.copyBytes(fsDataInputStream,System.out,1024);
fsDataInputStream.close();
}
//文件重命名
@Test
public void rename() throws IOException{
Path oldFilePath=new Path("/idea/hello.txt");
Path newFilePath=new Path("/idea/h.txt");
fileSystem.rename(oldFilePath,newFilePath);
}
//上传文件到hdfs
@Test
public void uploadToHDFS() throws IOException{
Path localPath=new Path("E:/abc.txt");
Path hdfsPath=new Path("/idea/");
fileSystem.copyFromLocalFile(localPath,hdfsPath);
}
//下载HDFS到本地
@Test
public void downloadToLocal() throws IOException{
Path hdfsPath=new Path("/idea/h.txt");
Path localPath=new Path("E:/hello.txt");
fileSystem.copyToLocalFile(hdfsPath,localPath);
}
//查询目录下的所有文件
@Test
public void list() throws IOException{
Path distPath=new Path("/");
FileStatus[] fileStatuses=fileSystem.listStatus(distPath);
for(FileStatus fileStatus:fileStatuses){
String path= fileStatus.getPath().toString();
String status=fileStatus.isDirectory()?"目录":"文件";
System.out.println(path);
System.out.println(status);
}
}
//删除hdfs上的文件
@Test
public void deleteFile() throws IOException{
Path path=new Path("/idea/h.txt");
fileSystem.delete(path,true);
}
//带进度条文件上传
@Test
public void uploadFileByProcessbar() throws IOException{
InputStream inputStream=new BufferedInputStream(new FileInputStream("E:/feiq/feiq/Recv Files/javaHDFS.wmv"));
FSDataOutputStream fsDataOutputStream=fileSystem.create(new Path("/idea/javaHDFS.wmv "), new Progressable() {
@Override
public void progress() {
System.out.print(".");
}
});
IOUtils.copyBytes(inputStream,fsDataOutputStream,4096);
}
@After
public void destory(){
}
}
学习了MapReduce
分布式计算框架MapReduce
1.MapReduce概述
MapReduce优点:海量数据离线处理&易开发&易运行
MapReduce缺点:无法实时流式计算
- MapReduce编程模型
3.案例:TopN问题
词频统计wordcount
cat.txt内容如下:
hadoop welcome
hadoop hdfs mapreduce
hadoop hdfs
需求:统计每个单词出现的次数
MapReduce编程模型之Map阶段和Reduce阶段
将作业拆分成Map阶段和Reduce阶段
Map阶段:Map Tasks
Reduce阶段:Reduce Tasks
MapReduce编程模型之执行步骤
1,通过InputFormat讲文件读入并拆分成split
2,通过RecordReaders将split中的数据读入,并交给map处理。
3,map处理后的结果按照partitioner进行分区,然后将数据发送到对应的reduce上处理
4,reduce处理完成后,由outputFomat将结果写到文件系统
核心概念
Split:交由MapReduce作业来处理的数据块,是MapReduce中最小的计算单元。
InputFormat:将输入数据进行分片(split):InputSplit[] getSplits(JobConf job)
TextInputFormat:处理文本格式数据
OutputFormat:输出
Combiner
Partitioner
3.MapReduce架构
MapReduce架构之MapReduce1.x
JobTracker:JT
作业的管理者,将作业分解成一堆任务:Task(MapTask和ReduceTask),将任务分派给TaskTracker运行
作业的监控、容错处理(task作业挂了,重启task的机制)
在一定的时间间隔内,JT没有收到TT的心跳信息,TT可能挂了,TT上运行的任务会被指派到其它TT上去执行
TaskTracker:TT
任务的执行者 干活的
在TT上执行我们的Task(MapTask和ReduceTask)
MapTask
自己开发的map任务交给Task
解析每条记录的数据,交个自己的map方法处理
将map的输出结果写到本地磁盘(有些作业仅有map没有reduce====>HDFS)
ReduceTask
将MapTask输出的数据进行读取
按照数据进行分组传给我们自己编写的reduce方法处理
输出结果到HDFS
MapReduce架构之MapReduce2.x
- MapReduce
练习了wordcount的计算。
又学习了倒排索引。
遇到的问题汇总
- 对于hdfs的文件输入输出还不是很熟悉要多加练习。
- Wordcount是MapReduce方法中的基础计算,要熟悉代码的书写才可以。
3.掌握了基本的单词个数统计,对于更难一点的key,value.也要能熟悉它的数据流动分析过程才可以。
学习技能思维导图
7月17号day9总结的更多相关文章
- 2014年11月17号------html起始
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 8月17日 Power-BI关于全国房地产开发投资情况分析 QQ群视频交流开课啦
<ignore_js_op> 数读|中国的经济只剩下房地产了么? 引言: 近日一则标题为“房奴们又立功啦,7月份新增贷款几乎都来自房贷!”的报道吸引了大众的目光.该报道指出在央行8月13日 ...
- 《Genesis-3D开源游戏引擎-FQA常见问题解答》2014年01月10号版本
1.Genesis-3D开源游戏引擎主要面向哪些用户人群?有限制吗? 1.我们的引擎没有限制,只要您想了解和使用我们的引擎,就可以加入Genesis-3D的大家庭.2.我们的主要用户群是各个相关的企业 ...
- 西安Uber优步司机奖励政策(1月11日~1月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 关于我在17号“一个查询任意年份中任意月份的天数”程序编写中的代码&第二种方法!
PS:下面的代码是我对于17号的练习题的一些新的看法(其实就是从另一个角度思考问题) package day20180917;import java.util.Scanner;//导包public c ...
- 成都Uber优步司机奖励政策(4月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 北京Uber优步司机奖励政策(4月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 优步UBER司机全国各地奖励政策汇总 (4月11日-4月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 全国Uber优步司机奖励政策 (1月11日-1月17日)
本周已经公开奖励整的城市有:北 京.成 都.重 庆.上 海.深 圳.长 沙.佛 山.广 州.苏 州.杭 州.南 京.宁 波.青 岛.天 津.西 安.武 汉.厦 门,可按CTRL+F,搜城市名快速查找. ...
随机推荐
- SET UPDATE TASK LOCAL (ローカル更新 )
ローカル更新では.更新プログラムは要求を処理したのと同じワークプロセスによって実行されます.ダイアログユーザは更新が終了するまで待ってから追加データを入力しなければなりません.データベースへのアクセス ...
- responsive grid
http://csswizardry.com/csswizardry-grids/ http://unsemantic.com/demo-responsive http://getbootstrap. ...
- Lambda方式左连接有Linq方式左连接
网上查到的直接使用Join+DefaultIfEmpty的方式是错误的,实际生成SQL是两表先内联接,然后再LEFT JOIN.经过查证,参考资料,最终得到如下两种方式的左连接写法: public v ...
- leetcode笔记--3 Niim game
question: You are playing the following Nim Game with your friend: There is a heap of stones on the ...
- springmvc基础篇—修改默认的配置文件名称及位置
springmvc的默认配置文件是放在WEB-INF下的,叫action-servlet.xml.根据咱们编程的习惯,一般都将配置文件放到src的根目录下,那么如何将这个文件迁移过来呢?其实很简单,请 ...
- 讨伐Cucumber行为驱动
Cucumber行为驱动,简称BDD,其核心思想是把自然语言转换成代码:但在敏捷开发的过程中,这种东西极大的束缚了测试人员的手脚,感觉它像封建时代的八股文,要遵守严格的韵律,反正我个人十分反感:就像在 ...
- CVPR2018: Generative Image Inpainting with Contextual Attention 论文翻译、解读
注:博主是大四学生,翻译水平可能比不上研究人员的水平,博主会尽自己的力量为大家翻译这篇论文.翻译结果仅供参考,提供思路,翻译不足的地方博主会标注出来,请大家参照原文,请大家多多关照. 转载请务必注明出 ...
- LeetCode 389——找不同
1. 题目 2. 解答 2.1. 方法一 将 s 和 t 转化为 Python 的列表,然后遍历列表 s 的元素,将它们从列表 t 中删除,最后列表 t 中会余下一个元素,即为所求. class So ...
- Spark实战练习01--XML数据处理
一.要求 将XML中的account_number.model数据提取出来,并以account_number:model格式存储 1.XML文件数据格式 <activations> < ...
- 数据结构6——DFS
一.相关定义 深度优先遍历,也有称为深度优先搜索,简称DFS.其实,就像是一棵树的前序遍历. 初始条件:图G所有顶点均未被访问过,任选一点v. 思想:是从一个顶点V1开始,沿着一条路一直走到底,如果发 ...