HDFS:
1.分布式
2.commdity hardware 通用硬件上面
3.高容错
4.high throughput 高吞吐
5.large data set
普通文件系统 VS 分布式的文件系统
单机 横跨N个机器
前提和设计目标:
hardware failure硬件错误
崩溃后的快速恢复
Streaming Data Access HDFS更适合批处理,对延迟的要求不高
关注的是吞吐量,而不是低延迟
Large Data Set 大规模数据集
Moving Computation is cheaper than moving data移动计算比移动数据更划算
HDFS架构
1)Namenode(master)和Datanodes(slave)
2)master和slave 主从关系
hadoop软件包常见目录说明:
bin:客户端名单
etc/hadoop:hadoop相关的配置文件存放目录
sbin: 启动hadoop相关进程的脚本
share:常见例子
启动HDFS;
第一次执行的时候一定要格式化文件系统,不要重复执行。(hdfs namenode -format)
启动集群:$HADOOP_HOME/sbin/start-dfs.sh
命令:jps (验证是不是节点创建成功,应该有三个节点,NameNode,DataNode,SecondaryNameNode
启动之后其实可以去网页端查看一下信息,192.168.1.100:50070
前面是自己的IP,后面是hdfs默认端口50070
HDFS
存储拓展:put 1 file --> 1...n block -->存放在不同的节点上
get 去NN上查找这个file对应的元数据信息
使用javaAPI操作HDFS文件系统
- 1.创建confifuration
- 2.连接filesystem
- 3.HDFS操作
Mapper中的input key是读文件时的offset 也就是读到了哪一行
input value才是那一行对应的数据
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。