hadoop入门概念

本文介绍了Hadoop的背景、发行版本及主要供应商,包括Apache、Cloudera、Hortonworks和国内的华为、星环等。Hadoop是源于Google的分布式计算框架,通过廉价硬件构建大规模集群。1.x到2.x的主要变化是引入YARN进行资源管理,Hadoop 2.x的四大模块包括HDFS、YARN、MapReduce和Common。文章还详细阐述了Hadoop的安装模式、集群配置和基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hadoop的背景

apache发行版本大致:1.x 和 2.x 和 3.x

提供公司:
apache : 原生hadoop
cloudar公司 : cdh
hortworks公司提供 : hdp
mapR

国内:
华为
星环


海量数据诞生、同时没有海量数据的存储、和处理

goole:GFS、mapreduce、bigtable

hadoop创始人Doug cutting: 

hadoop起源,
起源思想:google
起源代码:luence ---> nutch(mapreduce、ndfs) ---> hadoop

核心思想:使用很多廉价性能低的机子连接在一起,搭成一个超大的集群对海量数据进行存储,分析,操作。

hadoop1.x 和 2.x 、 3.x的区别?
1.x和2.x最大的区别是,2.x将资源管理单独提取出来使用yarn模块来管理。
namenode角色能启动的个数:
块大小不一样,1.x : 64M,2.x :  128M,3.x :  256M

大数据的应用场景: ========== 有推荐的地方必有数据分析==================

hadoop到底是什么:

官方定义:The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

几点::1.开源的,2.可靠的,3.可伸缩的,4.采用分布事计算的,================  一个软件。

就是个软件。

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

最最官方的解释。

大概就是:

hadoop框架允许使用简单模型来分布式处理集群中海量数据集
hadoop框架设计从单台服务器扩展成千上万台服务器,每一个都能提供本地的存储和计算。
hadoop框架设计本身就可以检测和处理应用层的失败(容错),而不是依赖硬件,因为集群中每一个都有可能失败。

hadoop四大模块:-------2.x版本

  • Hadoop Common: The common utilities that support the other Hadoop modules.
  • Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
  • Hadoop YARN: A framework for job scheduling and cluster resource management.
  • Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.

 

三大核心: hdfs,yarn,mapreduce 

  1. common : 通用工具类支持其他hadoop的模块
  2. hdfs (hadoop distribut file system): hadoop分布式文件系统,提供高吞吐来处理应用数据
  3. yarn : 作业调度和集群资源管理的框架 
  4. mapredcue : 基于yarn来并行处理海量数据集的系统 

hdfs的三大服务:namenode,secondarynamenode,datenode

其他服务:matastore,client

每个服务具体职责:
hdfs的架构成主从架构master/slave.
namenode(master):接收来自client端的i/o请求;记录操作元素据;获取来自小弟(datanode)的汇报信息(心跳、块报告等);还决定副本存储;
datenode(slaves): clinet请求小弟真正读写数据内容;接受老大命令读写数据;
secondarynamenode(小秘): 协同老大管理元数据(合并元数据)
metastore: 元数据。描述hdfs块数据的数据的数据(块的地址、块id、块大小、块的创建人、创建时间等);
client : 客户端(发送读写数据请求) 

 

三种安装模式:--------- hadoop安装之前:需要linux系统,系统上安装有jdk(因为hadoop使用java写的,需要jdk运行环境)。 

Local (Standalone) Mode:单机版   ==============  三个服务只运行在单个JVM中,不是分布式存储,经常用于debug

Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.


Pseudo-Distributed Mode:伪分布式  =============== 在一台机子上启动三个服务(namenode,secondarynamenode,datanode),一个服务使用一个JVM实现伪分布式,不适用于实际场景,-------- 一台机子崩了,数据就全毁了,应该说这个模式根本就用不了。

伪分布式搭建:-----------------  在安装配置好hadoop之后,只需要hadoop相关配置的两个配置即可--core-site.xml和hdfs-site.xml

1、解压并配置环境变量
tar -zxvf /home/hadoop-2.9.1.tar.gz -C /usr/local/

vi /etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.9.1/

hadoop安装目录介绍:
bin : 操作hdfs和mapreduce的可执行命令
sbin : 启停hadoop相关服务的可执行命令
etc : hadoop相关配置文件目录
lib、libexec :相管扩展或者扩展库
share : 源码、文档和测试案例等。

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

source /etc/profile  : 是环境变量生效
hadoop version  : 检测hadoop版本信息

2、配置配置文件
etc/hadoop/hadoop-env.sh :指定JAVA_HOME的路径
etc/hadoop/core-site.xml : 配置核心配置文件

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://cent01:9000</value>    ----------------------- namenode主服务启动在那台主机,写哪台
</property>

etc/hadoop/hdfs-site.xml
<property>
    <name>dfs.replication</name>
    <value>1</value>    ------------------  设置副本数,伪分布式默认1个,
</property>

etc/hadoop/slaves    -----------------------  写当前用于hadoop的机子
cent01(这是服务器名,主机名,在已经设定好主机映射才可以这样设定)

3.安装完毕,格式化,并启动hdfs

hdfs namenode -format  : 格式化hdfs文件系统
/tmp/hadoop-root/dfs/name has been successfully formatted

ll /tmp/hadoop-root/dfs/name  : 元数据存储目录

start-dfs.sh  : 启动hdfs相关服务

4.测试是否成功:
jsp 检测进程是否符合
http://hadoop01:50070  : 检测hdfs web监控
对hdfs文件系统进行读写: 能正常读写浏览则ok
hdfs dfs -ls /  : 查看hdfs文件系统中的根目录
hdfs dfs -put /home/words / :上传/home/words 到hdfs中的根目录
hdfs dfs -cat /words :读hdfs中/words文件
 

出错处理:

服务启动不起来,查看对应的日志。hadoop-root-datanode-hadoop01.log
访问不到50070,检测防火墙,检测映射,检测namenode是否启动。
操作hdfs中的文件不行,connection异常,优先检测防火墙

 

Fully-Distributed Mode:全分布式   =================  正在实用的大佬,将某些服务分别启动在多台服务器中,可以用于实际生产中。

全分布式搭建:  ----------------------------- 首先要做好ssh免密登录,机子1可以免密登录机子2和3。


1.规划集群:------  虚拟机和对应ip地址

192.168.216.111    hadoop01    namenode,datanode,nodemanager 
192.168.216.112    hadoop02    datanode,resourcemamnager,nodemanager,secondarynamenode
192.168.216.113    hadoop03    datanode,nodemanager,jobhistroyserver

2.准备工作:
需要安装集群的服务器必须安装jdk
需要安装ssh,并且需要做好ssh免登陆(老大需要免登陆小弟)
hadoop01    hadoop01,hadoop02,hadoop03
hadoop02    hadoop01,hadoop02,hadoop03

3.解压配置环境变量
配置配置文件 

 全部配置文件在官网看和设定自己需要的变量 

如hdfs-site.xml   的 -----------  http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml


vi ./etc/hadoop/hadoop-env.sh
vi ./etc/hadoop/core-site.xml
vi ./etc/hadoop/hdfs-site.xml
vi ./etc/hadoop/slaves

mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
vi ./etc/hadoop/mapred-site.xml
vi ./etc/hadoop/yarn-site.xml

4.发送配置好的hadoop到每一台服务器中:
scp -r ../hadoop-2.9.1/ hadoop02:/usr/local/
scp -r ../hadoop-2.9.1/ root@hadoop02:/usr/local/

5.格式化和启动服务
hdfs的格式化:
在namenode的服务器上执行格式化命令:
hdfs namenode -format

启动服务:
start-all.sh (在namenode服务器上模块启动hdfs,在resourcemanager服务器上模块启动yarn)
mr-jobhistory-daemon.sh start historyserver

检查是否按照规划启动进程(如没有可以尝试当个启动)

6.测试是否能用:

查看web:
http://hadoop01:50070   namenode的web
http://hadoop02:50090   secondarynamenode的web
http://hadoop02:8088    resourcemanager的web
http://hadoop03:19888   jobhistroyserver的web

hdfs的读写数据:  注:读取hdfs的文件如果有多级目录必须写绝对路径
hdfs dfs -put /home/words /   ----------------------------  这个 “/” 是hdfs系统的根目录,完整的写法是:hdfs://cent01:9000/
hdfs dfs -put /home/words hdfs://hadoop01:9000/

hdfs dfs -cat hdfs://hadoop01:9000/words

yarn的job的测试:
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar wordcount /words /out/00

错误解决:

1.我在搭建的过程中,配置文件错了,配置文件我已经发送到其他机器了,做到格式化那步了,(格式化我的理解是使配置文件生效,里面配置的路径全都生成),这是我发现自己的配置文件有错,想再格式化的话来一遍,所以必须把上一遍生成的目录(hadoopdata)删除,以及在其他两台机器上删除接收到的hadoop相关文件--------即是hadoop整个目录 。

如果需要重新搭建集群:    ------------- 把整个 hadoopdata删了就ok
注意需要删除所有的数据,所有数据如下:
元数据:/home/hadoopdata/dfs/name
datanode数据:/home/hadoopdata/dfs/data
secondarynamenode的日志数据:/home/hadoopdata/checkpoint/edits
secondarynamenode的镜像数据:/home/hadoopdata/checkpoint/fsimage

------------- 把整个 hadoopdata删了就ok

 

hadoop各个服务的启停命令:
启动命令:
start-all.sh  : 全启动(启动hdfs和yarn的模块的所有服务)
stop-all.sh  : 全停止(停止hdfs和yarn的模块的所有服务)

模块启动:
start-dfs.sh  : hdfs的模块启动
stop-dfs.sh  : hdfs的模块停止
start-yarn.sh  : yarn的模块启动
stop-yarn.sh  : yarn的模块停止

单个启动:
hadoop-daemon.sh start/stop namenode  :启动单个namenode
hadoop-daemons.sh start/stop namenode  :启动多个namenode
hadoop-daemon.sh start/stop datanode  :启动单个datanode
hadoop-daemons.sh start/stop datanode  :启动多个datanode
hadoop-daemon.sh start/stop secondarynamenode  :启动单个secondarynamenode
hadoop-daemons.sh start/stop secondarynamenode :启动多个secondarynamenode

yarn-daemon.sh start/stop resourcemanager 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值