认识hadoop:
- hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据。
- hadoop与其他分布式系统的比较
其他分布式系统:把数据移动计算即将发生的地方——》计算——》返回数据——》存储数据
hadoop:把可执行代码移动到数据所在的机器——》计算——》存储数据
注:网络上移动数据的时间>加载代码的时间
- hadoop与SQL的比较
SQL:针对结构化数据设计
hadoop:针对非结构化数据(如,文本)
hadoop | SQL | |
扩 展 | 需要更多的机器(向外扩展) | 要运行一个更大的数据库,就要买一个更大的机器(向上扩展) |
数据模式 | 键/值对 | 关系表 |
查询方式 | 使用脚本和代码 | 使用查询语句 |
适 用 | 离线处理和大规模数据分析而设计,适合一次写入,多次读取 | 几个记录随机读写的在线事务处理模式 |
- 认识MapReduce——数据处理模型
优点:容易扩展到多个计算节点上处理数据
理解:Map和Reduce其实是两种操作。
We want to count all the books in the library. You count up shelf #1, I count up shelf #2. That's map. The more people we get, the faster it goes.
我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。
Now we get together and add our individual counts. That's reduce.
现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。 ——注:这里也并不仅仅是一个人在统计,可以很多人参与
我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。
Now we get together and add our individual counts. That's reduce.
现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。 ——注:这里也并不仅仅是一个人在统计,可以很多人参与
map:输入过滤及转换
reduce:完成聚合
—————————————————————————————————————————————————————————————————————————————
hadoop的构造模块
运行hadoop=在网络分布的不同服务器上运行一组守护进程
- NameNode——名字节点
- 最重要
- 位于HDFS的主端,指导从端的DataNode执行底层的I/O任务
- 跟踪文件如何被分割成文件块,这些块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常
- DataNode——数据节点
- Secondary NameNode(SNN)——次名字节点
监测HDFS集群状态的辅助守护进程
- JobTracker——作业跟踪节点
应用程序和Hadoop之间的纽带。用于确定执行计划,若任务失败,则自动重启任务。
- TaskTracker——任务跟踪节点
与存储守护进程一样,计算的守护进程也遵循主/从架构. JobTracker作为主节点,监测MapReduce作业的整个执行过程,同时,TaskTracker管理各个任务在每个节点上的执行情况。
—————————————————————————————————————————————————————————————————————————————
为hadoop集群安装SSH
∵如上图,主端要去联络并激活从端上的守护进程(DataNode&TaskTracker)
∴采用无口令的SSH协议来支持远程访问(公钥存在集群的每个节点上,私钥存在主节点)
验证SSH安装:
生成密钥对:
将公钥分布并登陆验证
运行hadoop