首页 > 代码库 > 第三周:Hadoop 入门 之helloworld
第三周:Hadoop 入门 之helloworld
**********************3A*************************
简介运算 helloworld
1. 验证 hadoop 安装正常
2. bin/hadoop jar hadoopexamples-1.1.2.jar wordcount in out
3. bin/hadoop dfs -ls 查看 hdfs 下面有什么东西
4. bin/hadoop dfs put ../input ./in
5. hadoop 是没有当前路径的概念 必须全路径
6. 节点很小的时候是体现不出速度的优势 20个集群里面
7. 当运行成功的时候 生成三个文件: SUCCESS(运行成功提示) _logs(日记文件) part-r-00000(结果)
web 监控 (一登网页就开始可以看到集群的内容, 其实是不安全的 很危险)
50070(namenode) 50030(jobtrack)
最后是运行在内网里面
现在hadoop还在高速发展着,很多东西还要优化, 大企业在使用的时候都要修改源码
**********************3B*************************
hadoop的版本演进
受到观众关注的特性,特性的更改和优化就是版本的演进历史。
主要特性如下:
1. Append 支持文件追加功能,如果想使用HBase 需要使用这个特性
hdfs 是半只读的系统 ,基本操作是插入、读出和删除
一致性的问题;修改数据 就必须是三个数据一起更改, 但是修改必须要时间 这就必然会照成不同步 ,如果此时有人读取数据的话,就会产生不一样的数据, 发生一致性的问题
放弃修改功能能对上层功能能会有影响 oltp 联机事务处理 可是HBASE可以修改
我不修改东西,但是我可以在文件里面有追加功能
2. nameNode HA !namenode多点! nameNode是单点 ,必须进行手工切换 ,即使自动切换也不能无缝切换。
3. 安全性 security
4. raid5(百度下) 在保证数据可靠的前提下,通过引入校验码减少数据块数目 ---- 剩余数据来恢复丢失的数据
..............
版本介绍(经典)
2012年推出了 1.0.1~1.0.4 说明hadoop已经开始成熟
hadoop 现在的版本管理是比较混乱的
Cloudera发布版 (也是道格自己办的公司)
对hadoop 开源官办的 商业版本
cloudera 提供一键安装
公布了一下CDH的发布版下载地址
**********************3C*************************
HDFS 设计基础和目标
HADOOP两大支柱之一 (ps mapreduce)
什么是hdfs !@
提供分布式存储机制,可线性增长的海量存储能力
自动数据冗余 无须使用RAID 无需另行备份
为进一步分析计算提供数据基础
本地化数据计算
(是不是和 fat32)
HDFS 设计的目标和理念
硬件错误是常态,因此需要冗余(这句话 老师输了N次)
流式数据访问,即数据批量读取而非随机读写 (他不是一个oltp系统--ps 随机存取)
大规模数据集
程序采用 “数据就近” 原则分配节点执行
简单一致性模型。为了降低系统复杂度,对文件采用一次写多次度的逻辑设计,就是文件已经写入,关闭,就再也不能修改(比如日记分析)
HDFS体系结构
namenode 存放元数据(命名空间 文件和数据是怎么对应的 怎么找到数据等等)
元数据是放在内存的
记录每个文件数据块在各个datanode 上的位置和副本信息
管理文件系统的命名空间
协调客服端对文件访问
使用事务日志 记录hdfs元数据的变化。使用映像文件存储文件系统的命名空间,包括文件映射 文件属性等
current目录下几个文件的说明:
fsimage(每隔一段事件 内存元数据写入 检查点 )
edits(写入的时候发生了掉电 会发生损失, ----操作记录)
vesion fstime
secondarynamenode
和namenode很一样 是namenode的备份(老师这里说得我觉得不对把) 不应该是备份吧
datanode 存放具体的数据
存储数据。
blk 开头的就是一个数据块,典型大小是64M
数据块尽量散步各个节点
读取数据的流程
1. 客服端访问 hsfs的一个文件
2. 首先namenode 获得组成 这个文件的数据块位置列表
3. 根据列表知道存储数据的datanode
4. 访问datanode获取数据
namenode 并不参与数据实际传输
写数据的流程
1. 请求namenode 创建文件
2. 客户端将数据写入dfsoutputstream
3. 建立 pipeline依次将目标数据快写入各个datanode 建立多个副本
事务日记
映像文件
**********************3D*************************
hdfs 的可靠性
1. 冗余副本
hdfs-site dfs.replication(冗余副本数量)
2. 安全模式
datanode 启动的时候,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列 表(blockreport) 汇报给namenode
3. 机架策
机架感知 一层交换机,不要通过多层交换机 --使用者设计的 core-site.xml
写rackaware.py脚本
一个机架放10台服务器左右把
集群一般放在不同机架上,机架间带宽比机架内带宽要小
4. 心跳机制
侦测datenode的状态, 发送datenode的blockkreport
引发重新复制的原因:数据副本本身损坏 磁盘错误 复制因子被增大
5. 安全模式
namenode 启动时候 会经过 安全模式 阶段
集群不能写数据,读数据
在这个阶段 namenode 收集各个datanode的报告 当数据块达到最小的副本数以上就 因为是安全的
在一定比例的数据块被却认为为 “安全” 时 经过若干事件 安全模式结束
./hadoop dfsadmin -safemode enter/leave 进入或者关闭安全模式
6. 校验和
.meta 校验和crc校验、元数据信息
在文件创立时 每个数据块都产生校验和
客服端获取数据的时候可以检查检验和是否相同,从而发现数据块是否损坏
jvm的优化 就是 hadoop的优化
7. 回收站
删除文件的时候 其实是放入 回收站 /.trash
回收站里面的文件可以被快速恢复
可以设定阈值 当回收站超过这个值的话 就彻底删除
8. 元数据保护
印象文件和事务日记是namenode 的核心数据,可以配置我i多个副本
副本会降低namenode 会处理速度 但增加安全性
9. 快照机制
时光倒流机制 还不支持 但是已经在开发中
**********************3E*************************
HDFS 的命令行操作模式
shell命令: rmr mv ls put get jar cat ... ...
current curr 是什么意思呢
dfsadmin -report 查看节点报告
热启动一个datanode
在新节点安装好 hadoop
把namenode的相关配置文件复制到该节点
修改masters slaves文件
设置ssh免密码进出该节点
单独启动该节点的datanode 和 tasktracker
运行start-blancer.sh 进行负载均衡
作业答案:
原来论坛已经有人把6题全做了,在下拜服
http://f.dataguru.cn/thread-165041-1-1.html
windows host 文件 位置:C:\WINDOWS\system32\drivers\etc
修改 ip地址 三部曲
setup
hostname
etc/sysconfig/network hostname
第三周:Hadoop 入门 之helloworld
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。