从零开始的Hadoop学习之旅
来源:互联网 发布:知乎 唯一视觉怎么样 编辑:程序博客网 时间:2024/05/01 17:07
问题1:hadoop 安装时要注意哪些?
答案:对所有的电脑进行(1)安装大环境,linux系统,java安装(2)linux语法上;建立专门的用户;修改/etc/hosts的IP地址与名字对应;然后在集群进行ssh的免密码登录,生成公钥,然后把所有的公钥,分发到集群的authorized_keys.(3)hadoop的配置文件夹;下载解压hadoop的版本,配置hadoop的5个文件。(4)打开。对namenode -format;start_all.sh;(5)测试;jsp下是有namenode,datanode,secendary namenode,jobtracker,tasktracker5个进程,然后在打开网页管理,查看。最后运行一个简单的例子,wordcount。
问题2:在权威指南中,气象数据的例子中,出现了大量的文件,对于这些文件hadoop是怎么进行split,并分布式的存储到不同的datanode,在mapreduce的时候又是怎么处理的?
最佳答案:
————————————————————————————————
如果block设置为64M,那么每个block就是64M,除了最后一个block可能不满64M,
block是不会考虑一行几行的,行或session概念是业务层面,hdfs是不会涉及的。
那么怎么在map阶段怎么处理行或session的边界问题,实际上由reader来处理的。
代码参考:
org.apache.hadoop.mapred.LineRecordReader.LineReader
简要来说,如果一行跨越了block,比如一行10个字节,前4个字节在第N个block,后6个在N+1个block里面,reader来处理,怎么处理?
因为reader是per block,就是一个block一个(准确的说是一个split一个),
第N个reader会留下最后4个字节不读,第N+1个reader会网络读取第N个block末尾一部分数据,足以包含那4个字节就行了。
到底是前面不读后面读, 还是前面读,后面不读,其实都行,在reader里面实现一种就行了。
本人有hadoop应用和hadoop本身开发不少经验,不会有错的。
block是不会考虑一行几行的,行或session概念是业务层面,hdfs是不会涉及的。
那么怎么在map阶段怎么处理行或session的边界问题,实际上由reader来处理的。
代码参考:
org.apache.hadoop.mapred.LineRecordReader.LineReader
简要来说,如果一行跨越了block,比如一行10个字节,前4个字节在第N个block,后6个在N+1个block里面,reader来处理,怎么处理?
因为reader是per block,就是一个block一个(准确的说是一个split一个),
第N个reader会留下最后4个字节不读,第N+1个reader会网络读取第N个block末尾一部分数据,足以包含那4个字节就行了。
到底是前面不读后面读, 还是前面读,后面不读,其实都行,在reader里面实现一种就行了。
本人有hadoop应用和hadoop本身开发不少经验,不会有错的。
——————————————————————————————————————
除此之外,hadoop的mapreduce如何自定义分割文件【改变默认按行分割】也值得一读。
update:2016/06/24 23:31 Friday
问题3:Hbase数据库的典型使用场景?
如电商的用户浏览痕迹。其用户多,因此请求多。其Hbase优点是天生的面向时间戳的查询,基于行键的查询异常的快速,特别是最近的数据被放在内存的memstore,完全没有IO开销。分布式的化解负荷。因此可以以userid作为行键,以book:bookid作为列族和列。为了充分利用分布式可以用reverse key,hash等技巧改造行键。
如帖子推荐:为了增加网站浏览,当用户(userid)点击一个帖子(threadid),推荐点击这个threadId的其他用户浏览的帖子。若使用mysql ,一千万,9s。Hbase设计模式:建立两个表:一个是u-t,一个是t-u。u-t的结构是行键为userid,列族和列卫thread:threadid,t-u的结构为行键为threadid,列族和列为user:userid。查询:从t-u表中进行key-value查询(hbase擅长)threadid-》userid,再从u-t表从userid-》threadid。然后读入java去重,统计功能。
0 0
- 从零开始的Hadoop学习之旅
- 从零开始最短路径学习Hadoop之01----Hadoop的安装配置测试
- 从零开始最短路径学习Hadoop之04----Hadoop的I/O
- Hadoop 从零开始学习系列-hadoop版本升级之文件迁移
- 从零开始学习Hadoop--前言
- 从零开始学习Hadoop--后记
- 《从零开始学习Hadoop》下载
- 从零开始学习Hadoop
- 从零开始学习Hadoop--第1章 Hadoop的安装
- 从零开始学习Hadoop--第7章 Hadoop MapReduce的运行机制
- 从零开始学习Hadoop--第1章 Hadoop的安装
- 从零开始学习Hadoop--第1章 Hadoop的安装
- 从零开始最短路径学习Hadoop之02----处理气象数据的第一个MapReduce程序
- 从零开始学习Hadoop--推荐书目
- Hadoop 从零开始学习系列-wordCount
- 从零开始学习Hadoop--推荐书目
- 从零开始学习Hadoop--第6章 MapReduce的输入输出
- 从零开始学习Hadoop--补一 一个实际的例子
- 第二天的打字练习
- Add Digits
- Struts2 Result详解
- PS用圆角矩形工具画出来的是实线而是虚线,哪里出问题了?
- C#设计模式—解释器模式
- 从零开始的Hadoop学习之旅
- ios多线程 - NSThread 简介
- 菜鸟的安卓之路。2016.06.24
- Android 属性动画详解 二、ValueAnimator与插值器
- Spring @Transactional事务浅谈
- 12-002-3 大的XML文件解析SAX
- java基础篇(五)访问控制符的使用
- mongodb用户安全认证详解
- 12-002-4 XML文件处理工具类DOM4J