Hadoop简介
大数据处理技术:
- 储存技术:
- - 计算技术:
- 大数据处理模型
机架
架构模型
- 文件元数据metadata
- 主-NameNode节点保存文件元数据: 单节点 posix
- DataNode和NameNode保持心跳,提交Block列表
- hdfsclient和NameNode交互元数据信息
- hsfsclient和DataNode交互文件block数据(c/s)
- datanode用文件系统存储数据块
Hadoop版本介绍
版本
- 1.x
- 2.x
- 3.x
Hapoop3.0 GA版本于2017年12月真是发布
Hadoop3 新特新
- Classpath isolation - 防止不同版本jar冲突
- Shell脚本重写 - hadoop2脚本不同
- 支持HDFS中的擦除编码Erasure encoding
- DataNode内部添加负载均衡 Disk Balancer
- MapReduce任务级本地优化
- MR 内存参数自动推断
- 基于cgroup的内存隔离和IO Disk隔离
- 支持更改分配容器的资源 Container resizing
NN ports
| 应用 | Hadoop2 port | Hadoop3 port |
|---|---|---|
| Namanode | 8020 | 9820 |
| NN Http UI | 50070 | 9870 |
| NN HTTPS UI | 50470 | 9871 |
SNN PORTS
| 应用 | Hadoop2 port | Hadoop3 port |
|---|---|---|
| HTTP | 50091 | 9869 |
| HTTP UI | 50090 | 9868 |
DN PORTS
| 应用 | Hadoop2 port | Hadoop3 port |
|---|---|---|
| IPC | 50020 | 9867 |
| DN | 50010 | 9866 |
| HTTP UI | 50075 | 9864 |
| HTTPS UI | 50470 | 9863 |
Hadoop生态
- Hadoop Common 底层支持, 工具, api
- HDFS 分布式文件系统
- MapReduce 并行计算框架
- YARN 作业调度, 集群资源管理框架
- 相关项目:
- Ambari–管理平台
- Avro–数据序列化系统
- Cassandra–键值对数据库系统
- Chukwa–数据收集系统
- Hbase–分布式数据库系统
- Hive–分布式数据仓库管理工具
- Mahout–数据分析挖掘工具库
- Hama–科学计算工具
- Pig–大规模数据分析平台
- Zookeeper-分布式协调系统
- Sqoop–关系数据转换工具
- Flume–日志收集工具
配置
- 修改/path/hadoop/etc/hadoop/hadoop-env.sh 添加环境变量和用户
- core-site.xml, hdfs-site.xml slaves
- 格式化 hdfs namenode -format
1 | 查看clusterID |
如果datanode启动失败:
- 可能就是clusterID不一致,将name下VERSION的clusterID复制到data下的
高可用分布式配置
项目部署图
| NN-1 | NN-2 | DN | ZK | ZKFC | |
|---|---|---|---|---|---|
| node01 | * | * | * | ||
| node02 | * | * | * | * | |
| node03 | * | * | |||
| node04 | * |
- 将/opt/hadoop/hadoop/etc/hadoop 备份 hadoop-full并进入hadoop
- 配置hadoop-env.sh
1 | export JAVA_HOME=/opt/java8 |
- 配置core-site.xml
1 | <configuration> |
- 配置hdfs-site.xml
1 | <configuration> |
zookeeper
解压配置环境变量
更改/path/zookeeper/conf,将cfg_sample保存为cfg
- 更改dataDir=/var/bitdata/zk
- 末尾追加:
1
2
3server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888- more
1
2mkdir -p /var/bigdata/zk
echo 1 > /var/bigdata/zk/myid- run
1
zkServer.sh start/stop/status
- 总结
- 选取机制: 设置的myid编号越大越能成为从节点
启动journalnode
1 | hdfs -daemon start/stop journalnode |
- 同步standby
1 | #启动node01的namenode |
MapReduce介绍
MR语义:
数据控制Map数量, 人为控制Reduce数量
split, map, reduce, group, partion的关系:
Map task 和 Reduce task的工作
shuffle和sort的过程描述:
Yarn介绍
什么是 Jobtracker?
- MRv2: On Yarn
- Resourcemanager
- NodeManager
- Container
- MR:
- Client:
- RM-Client:请求资源
- AM-Client: 和AM交互
配置Yarn
官方例子:
1 | [root@node0 hadoop]# ll -h share/hadoop/mapreduce/ |
实例
晒选活动
1 | 2018-10-01 13 |
PageRank计算
原理:
先有权重值, 初始权重都相同
- 入链==投票
- 入链数量
- 入链质量, 质量高的入链,投票就重要
站在互联网的角度:
- 只出不入:PR为0
- 只入不出: PR很高
- 直接访问网页
阻尼系数:d=0.86
相同的key为一组,
数据:
1 | A B D |
处理:
初始值赋值为1,
1 | <D,1/2> |
页面关系数据:
TF/IDF算法
- 词频(term frequency) : 通俗就是词频
- 逆向文件频率(inverse document frequency,IDF)是一个词语普遍
电商推荐