学习hadoop应该预备的知识
- 面向对象
- IO操作
- 文件目录操作
- 常用命令
- VIM编辑器
hadoop是个什么玩意
解释:
- 目前的计算机处理不了的数据量
- 生成线上的数据放到数据仓库,离线进行处理。
- 不支持事物,文件内容很难修改,一般都是追加。
再次强调:Hadoop不是数据库,是个文件系统+计算框架
整个大数据变化都是很快速的
场景:
- 电子商务 浏览记录 日志记录
- 电信 通话行为
- 各种传感器 购买行为 货架摆货
物联网时代,都可能产出大数据。
想要达成的目标
- 安装部署 hadoop以及相关的产品
- 导入数据需要的工具
- 如果与其他 工具进行集成
- hdfs怎么工作的
- 会写mapreduce
Hadoop典型的职位
- 针对大公司 更改源码开发
- 架构师 基础架构 数据架构
- 数据仓库工程师 业务需求
大数据的知识路线图
- 流数据处理:计算后 触发某个动作
- 虚拟化:基本上是做平台
典型的实验环境(有服务器)
- ESXI:是VMware的产品 永久免费试用
- 通过远程连接 服务器
典型的实验环境(只有PC 或者笔记本)
- virtualbox是Oracle的产品 轻量级
- BIOS 要首先打开虚拟化
- linux 系统都可以
Hadoop的思想源泉
谷歌的搜索 很重要
YouTube 在被谷歌收购以后 运营成本就变低了
集装箱数据中心
- 很简单 放到集装箱中 找到一个破烂的地方 就可以搭建
Google 面对的数据和计算难题
- 我爬取的各种网页 怎么存储呢?
- 谷歌的算法 响应时间很短 怎么做的?
- 怎么推荐搜索结果?对价值进行排名
倒排索引
比如 有一个文章 首先将文章进行分词 搜我:找到我–在网页–在偏移量–快速定位
并不基于任何数据库产品,自己有一套。
但是目前 谷歌不会使用这么简单的算法 是核心的秘密 能够在一堆辣鸡中得到用户想要的东西,所以大量用户聚集到谷歌。如果页面的点击数越多是不是越好呢?理论上型的通,但是点击率只有站长知道
根据链接来判断页面的价值,大家都指向它。还有指向的价值也是不一样的。
类似数学建模中的判断矩阵
a是由工程师计算出来的 能够很好的区分页面
特征向量:求页面的价值 变成求特征值
迭代以后 向量是收敛的 也就是说得到稳定的特征向量
假设有100万个网页 那就是100万*100万,但是编写程序的时候是没有办法实现的!我可以使用分布式在不同的电脑上进行计算。
在q1节点上都做类似的事情,用分散的思想来把负荷映射到各个节点,最后在一个节点中汇总。
谷歌带给我们的关键技术和思想
Hbase:是bigtable的山寨版