原标题:0基础如何入门HADOOP
学习一样东西,肯定先要了解这个东西是什么,那什么是HADOOP呢?我们就来看看什么是HADOOP和如何学习HADOOP及学习内容。
一,什么是HADOOP
- HADOOP是apache旗下的一套开源软件平台
- HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
- HADOOP的核心组件有
HDFS(分布式文件系统)
YARN(运算资源调度系统)
MAPREDUCE(分布式运算编程框架)
4.广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈
二 ,Hadoop生态圈
重点组件:
HDFS:分布式文件系统
MAPREDUCE:分布式运算程序开发框架
HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具
HBASE:基于HADOOP的分布式海量数据库
ZOOKEEPER:分布式协调服务基础组件
Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
Oozie:工作流调度框架
Sqoop:数据导入导出工具
Flume:日志数据采集框架
三, Hadoop集群搭建
集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
HDFS集群:负责海量数据的存储,集群中的角色主要有 NameNode / DataNode
YARN集群:负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager
2.集群安装
3.集群启动:
初始化HDFS
bin/hadoop namenode -format
启动HDFS
sbin/
启动YARN
sbin/start-yarn.sh
4. 集群初步使用
1 查看集群状态
命令: hdfs dfsadmin –report
也可打开web控制台查看HDFS集群信息,在浏览器打开http://hdp-node:50070/
2 上传文件到HDFS
查看HDFS中的目录信息
命令: hadoop fs –ls /
上传文件
命令: hadoop fs -put ./ scala-2.10.6.tgz to /
从HDFS下载文件
命令:hadoop fs -get /
四,HDFS
1.设计思想
分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;
在大数据系统中作用:
为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务
重点概念:文件切块,副本存放,元数据
2. HDFS的概念和特性
首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;
重要特性如下:
HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( )来规定,默认大小在版本中是128M,老版本中是64M
HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/
目录结构及文件分块信息(元数据)的管理由namenode节点承担——namenode是HDFS集群主节点,负责维护整个hdfs文件系统的目录树,以及每一个路径(文件)所对应的block块信息(block的id,及所在的datanode服务器)
文件的各个block的存储管理由datanode节点承担---- datanode是HDFS集群从节点,每一个block都可以在多个datanode上存储多个副本(副本数量也可以通过参数设置)
HDFS是设计成适应一次写入,多次读出的场景,且不支持文件的修改
(注:适合用来做数据分析,并不适合用来做网盘应用,因为,不便修改,延迟大,网络开销大,成本太高)
五 ,MapReduce
Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;
Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上;
六 ,yarn
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序
yarn的重要概念:
- yarn并不清楚用户提交的程序的运行机制;
- yarn只提供运算资源的调度(用户程序向yarn申请资源,yarn就负责分配资源);
- yarn中的主管角色叫ResourceManager;
- yarn中具体提供运算资源的角色叫NodeManager;
- 这样一来,yarn其实就与运行的用户程序完全解耦,就意味着yarn上可以运行各种类型的分布式运算程序(mapreduce只是其中的一种),比如mapreduce、storm程序,spark程序,tez ……;
- 所以,spark、storm等运算框架都可以整合在yarn上运行,只要他们各自的框架中有符合yarn规范的资源请求机制即可;
- Yarn就成为一个通用的资源调度平台,从此,企业中以前存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享。
返回搜狐,查看更多
责任编辑: