你的位置:首页 > 数据库

[数据库]Hadoop学习


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 建立索引

clip_image001

把运算分布到分布的机器上进行运行

作者 Doug Cutting

GFS 存储数据

MapReduce

BigTable 就是一个数据库

clip_image002

解决存储的问题!!!

clip_image003

某些机器负载就会特别大,而其他的机器负载很小!!!

某些机器坏了,这样就会导致文件的丢失!!!

更加可靠更加复杂

clip_image004

存储多个副本 即使宕机也没有关系,没有性能下降

文件所在的路径以及存储文件的路径应当有一个对应的关系,这个关系使用NameNode进行映射存储。

clip_image005

多个整数数字进行排序。!!!

能够并发运行的分开,分组并发

写两个程序:Map程序 在每个节点并发进行

Reduce程序 选择几个节点进行运行

clip_image006

http://hadoop.apache.org

安装-部署-开发-维护

2.4.1

2.5最新版本

clip_image007

最多解出的Cloudera CDH5 和Hadoop的版本号不是一致的

Aparche原生原汁原味

2.4.1

CenOS

clip_image008

搭建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-

修改

<property><name>fs.defaultFS</name><value>hdfs://zpfbuaa:9000/</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/app/hadoop-2.4.1/data/</value></property>

 

2.hdfs-site.

<property><name>dfs.replication</name><value>1</value></property>

 

3.mapred-site.

<property><name>mapreduce.framework.name</name><value>yarn</value></property>

 

4. yarn-site.

<property><name>yarn.resourcemanager.hostname</name><value>zpfbuaa</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>

 

5.slaves

修改为zpfbuaa

测试网络是否连通

使用指令 ping zpfbuaa

查看网页 zpfbuaa:8088

clip_image001[4]

查看网页 zpfbuaa:50070

clip_image002[4]

关闭linux防火墙

指令 service iptables stop