Hadoop基础学习记录(慕课学习记录,方便查询)

一、hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

、hadoop部分开源工具

1、Hive(小蜜蜂):hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。另外一个是Windows注册表文件。

2、Hbase:存储结构化数据的分布式数据库,与关系型数据库相比:放弃了事物的特性,追求更高的扩展。

3、zookeeper:是一个分布式的,开放源码的分布式应用程序协调服务,监控hadoop集群内每个节点的状态,管理整个集群的配置,维护节点之间数据的一致性。

三、hadoop环境

1、Linux环境:1)安装Linux操作系统的计算机。2)虚拟机安装Linux环境。3)租用云主机,例如阿里云、unitedStack等,然后用ssh工具连接(putty,securtcrt等)。

2、JDK:1)安装jdk (安装命令:apt -get install 具体Jdk版本号) 。

2)设置环境变量 vim /etc/profile.d     键入如下的

 export JAVA_HOME=“安装路径”   

 export JRE_HOME=$JAVA_HOME/jre  

 export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  

 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

3、配置hadoop

1、下载Hadoop安装文件   wget http://apache.mirrors.tds.net//hadoop/common/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz

2、mv 文件名 /opt/                                                ----------------移动安装包到opt目录下

3、解压 tar -zxvf 文件名

4、 ll命令 查看hadoop 安装目录 ,hadoop 主要配置文件集中在conf目录下:

1)关于配置:http://blog.csdn.net/lin_fs/article/details/7349497这里讲得很详细

    2)在/etc/profile文件中配置hadoop路径

a、 export HADOOP_HOME=/opt/hadoop目录

b、在PATH中加入$HADOOP_HOME/bin  用“:”分割

c、source /etc/profile 使配置文件生效

d、执行hadoop 命令查看执行程序

e、在opt/hadoop/bin 目录下执行 hadoop namenode -format 对nameNode进行格式化操作

f、在bin目录下可以看到诸多的启动命令 例如:start-all.sh   启动hadoop

g、使用jps查看到:DataNode、TaskTracker、JobTracker、NameNode、Jps、SecondaryNameNode进程则表明正常运行hadoop

四、HDFS文件系统

HDFS文件系统设计架构:

1、block:块,固定大小的逻辑单元。默认大小64MB,是文件存储处理的逻辑单元。(文件会被分成块进行存储)

2、两类节点:

1)NameNode 是管理节点,存放文件元数据

a、元数据:文件与数据块的映射表,数据块与数据节点的映射表

2)DataNode  是HDFS的工作节点,存放数据块

3、HDFS中数据管理与容错

1)每个数据块3个副本,分布在两个机架内的三个数据节点中:如图

2)心跳检测

DataNode定期向NameNode发送心跳消息。从而知道DataNode的最新状态


3)二级NameNode

二级NameNode定期同步元数据映像文件和修改日志。在nameNode发生故障的时候,接手NameNode的工作。作数据备份,定期同步。


4、HDFS读取文件流程

5、HDFS写入文件流程

注:写入一份数据之后,相互之间的复制数据,作数据冗余操作、

HDFS的特点;

1、数据冗余、、硬件容错(数据备份)

2、流式数据访问(一次写入多次访问),不能修改(替代操作:删除之后,重新写入)

3、存储大文件

适用与局限:

1、适合数据批量读写,吞吐量高

2、不适合交互式应用、低延迟难以满足(例如:数据库应用)

3、适合一次写入多次读取,顺序读写

4、不支持多用户并发写相同对文件

五、mapReduce 并行处理框架

原理:分而治之,一个大的任务切分成多个小的子任务(map),并行执行后,合并结果(reduce)

基本概念:job & task

一个job切分成多个Task,Task分为mapTask(切割)和reduceTask(归约)

1、jobTracker作业调度

1)作业调度(例如:先到先服务)

2)分配任务监控任务执行进度

3)监控TaskTracker的状态

2、TaskTracker

1)执行任务

2)汇报任务状态

注:可多轮的mapTask、reduceTask

MapReduce的容错机制

1、重复执行(默认四次执行,放弃)

2、推测执行:在任务执行过程中,等所有的map端算完之后Reduce端才开始计算,如果存在某个节点过慢,jobTracker会发现其中一个TaskTracker节点特别慢,会新建一个TaskTracker来计算。谁先执行完,就终止另外一个。这样会让job不会一个节点的故障导致整个效率变低。


八、mapreduce的例子




程序中应用:

1、编写mapper类和reduce类

2、编译 需要导入相应的jar包:hadoop下core包、common包

3、打包成jar

4、作业提交到hadoop中运行。命令如下:

hadoop jar xxx.jar 主函数名  输入目录 输出目录 

例如:




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值