Hadoop: 大数据里面的公认的解决方案标准
第一天 Hadoop的基本概念 伪分布式集群安装 hdfs mapreduce 演示
第二天 hdfs原理和使用操作
第三天 mapreduce 的原理和编程
第四天 常见mr算法实现和shuffle的机制
第五天 Hadoop2.x种HA机制的原理和全分布式集群安装部署及维护
第六天 hbase hive
第七天 strom+kafka
第八天 实战项目
What is Apache Hadoop?
The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing.
Hadoop 来源
解决问题:
1.海量数据的存储 HDFS
2.海量数据的分析MapReduce
3.资源管理调度 YARN
作者:Doug Cutting
受Google三篇论文的启发(GFS、MapReduce、BigTable)
处理海量数据
面临着公共问题:任务调度、节点存活精度、数据共享、中间节点传递。。。
需要框架的出现,减少开发的工作量
标准框架Hadoop
1.解决特定领域的公共问题:海量集数据的处理
2.Hadoop不是数据库、是有好多框架组成的生态系统。
3.导出文本文件,不是放到数据库中。几十个T放不到MySQL中
4.根本就不是数据库的搞法,但是Hadoop包含有数据库NoSQl
5.直接对文本文件进行处理(写逻辑使用Java或者C++编程),然后分发到集群上进行运行,这就是MapReduce
6.几十个T的文件存储方式:使用HDFS存储,分布式集群,不是存储在一台机器上面,存储在很多的机器上。
7.海量数据的存储以及海量数据的分析 组成狭义的Hadoop
Hadoop 0.20~2.5.x发展:
从1.x到2.x多了YARN这部分。
将jar包分发到各个机器上,然后分配一定的资源以及进程资源。这些工作和自己所写的代码的逻辑没有关系。因此这部分的逻辑处理封装为YARN (资源管理调度),MapReduce只管逻辑不管资源分配了。
实时的逻辑计算。。。
Lucene 建立索引
把运算分布到分布的机器上进行运行
作者 Doug Cutting
GFS 存储数据
MapReduce
BigTable 就是一个数据库
解决存储的问题!!!
某些机器负载就会特别大,而其他的机器负载很小!!!
某些机器坏了,这样就会导致文件的丢失!!!
更加可靠更加复杂
存储多个副本 即使宕机也没有关系,没有性能下降
文件所在的路径以及存储文件的路径应当有一个对应的关系,这个关系使用NameNode进行映射存储。
多个整数数字进行排序。!!!
能够并发运行的分开,分组并发
写两个程序:Map程序 在每个节点并发进行
Reduce程序 选择几个节点进行运行
安装-部署-开发-维护
2.4.1
2.5最新版本
最多解出的Cloudera CDH5 和Hadoop的版本号不是一致的
Aparche原生原汁原味
2.4.1
CenOS
搭建Hadoop
测试Hadoop
主机名zpfbuaa
端口219.142.245.200
修改hosts文件
# 219.142.245.200 zpfbuaa
219.142.245.200 zpfbuaa
向hadoop中put数据
1.hadoop fs -put 文件名 hdfs://zpfbuaa:9000/
在hadoop中创建文件夹
1.hadoop fs -mkdir /wordcount/
测试hadoop自带的jar包
1.在share文件夹下
进入hadoop
进入mapreduce
hadoop-mapreduce-examples-2.4.1.jar 包含示例程序
2.运行示例程序
a.hadoop jar hadoop-mapreduce-examples-2.4.1.jar pi 5 5
其中pi表示该程序用来计算pi的值 后面的5 5越大计算的pi的结果越精确
b.hadoop jar hadoop-mapreduce-examples-2.4.1.jar wordcount 文件所在目录 输出结果保存目录
可以先建立输出结果的保存目录,然后运行wordcount(计数程序)
配置文件
1.core-site-xml
修改
fs.defaultFS hdfs://zpfbuaa:9000/ hadoop.tmp.dir /home/hadoop/app/hadoop-2.4.1/data/
2.hdfs-site.xml
dfs.replication 1
3.mapred-site.xml
mapreduce.framework.name yarn
4. yarn-site.xml
yarn.resourcemanager.hostname zpfbuaa yarn.nodemanager.aux-services mapreduce_shuffle
5.slaves
修改为zpfbuaa
测试网络是否连通
使用指令 ping zpfbuaa
查看网页 zpfbuaa:8088
查看网页 zpfbuaa:50070
关闭linux防火墙
指令 service iptables stop