Hadoop介绍与安装配置方法
作者:天降e包only 发布时间:2022-08-10 03:50:02
1. HADOOP背景介绍
1.1 什么是HADOOP
1.HADOOP是apache旗下的一套开源软件平台
2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
3.HADOOP的核心组件有 1.HDFS(分布式文件系统)
2.YARN(运算资源调度系统)
3.MAPREDUCE(分布式运算编程框架)
4.广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈
Hadoop hive hbase flume kafka sqoop spark flink …….
1.2 HADOOP产生背景
1.HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
2.2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。
——分布式文件系统(GFS),可用于处理海量网页的存储
——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
3.Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。
1.3 HADOOP在大数据、云计算中的位置和关系
1.云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。借助IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。
2.现阶段,云计算的两大底层支撑技术为“虚拟化”和“大数据技术”
3.而HADOOP则是云计算的PaaS层的解决方案之一,并不等同于PaaS,更不等同于云计算本身。
前言
最近想学习下大数据,有点急于求成,于是去网上找了各种培训机构的视频,发现大都质量不佳,理论基本不说或者简单讲下,然后教你照猫画虎的敲代码,出了问题都没法分析。最后还是找了厦门大学的公开课从理论开始稳扎稳打的学习了。
一 Hadoop起源
Hadoop的理论起源主要来自谷歌公司的三大论文,并迅速应用于全球各大互联网公司。因此,学习大数据Hadoop是绕不开的一个知识点。今年来,大数据的兴起其实来自于计算机技术的发展,物联网技术产生了大量的数据,云技术使得计算机存储与运算资源更加普及,因此大数据技术应运而出,用以解决大量数据的存储与计算的问题。
二 Hadoop生态圈
学习Hadoop,需要知道Hadoop生态圈中各个项目的功能与作用,为何要用开发这种新项目,而不使用已有项目实现这种功能。
2.1 HDFS
Hadoop的底层文件系统,与传统文件系统不同在于它是分布式的。同时与已有的分布式文件系统相比,它又有着旧分布式文件系统没有的优点。如:高可用性,高可靠性,吞吐量大,能使用廉价服务器构建,可通过不断增加机器数来进行拓展。具体实现在HDFS文章中记录。
2.2 HBase
构建在HDFS之上的分布式数据库系统。是一种基于列的NoSQL数据库,从另一个角度看也能看成键值对的NoSQL数据库。与传统关系型数据库相比,最大的优势在于可通过增加机器进行横向扩展,并且能使用廉价服务器。
2.3 Hive
一种分布式数据仓库,可以导入外部数据后用类SQL语言进行操作。一般用于历史数据的查询与分析。与HBase不同,HBase常用于实时的交互式查询。
2.4 MapRuduce
一种分布式计算框架,MapRuce本来就是一种计算模型的名称。核心思想是“分而治之”,能将计算分解成多个小计算,由多个机器同时计算。适合离线批处理。
2.5 Storm
一种流式计算框架,MapRuce适合批处理,无法完成流式数据的处理,因此开发出流式处理框架。
2.6 常见大数据处理需求
•离线批处理,特点:使用历史数据,大批量的处理,要求吞吐率。
•实时交互式处理,特点:用户交互使用,要求反映速度在秒级到数分钟之间。
•流式数据处理,特点:数据以流的形式输入,要求毫秒级的处理速度,且处理后的数据大部分都不用储存。
2.7 Hadoop组件关系
基本的关系就是,底层用HDFS存储,之上是核心计算框架MapRuduce。而Hive,Hbase,Pig等等组件一般都是将自身的操作转化成Mapreduce代码然后通过Mapreduce进行计算实现功能。同时与MapRuduce框架同一层次的Storm解决了流式数据的处理。Hbase虽然是使用Mapreduce框架进行处理,但是基本也能实现实时交互式处理的要求。(也正是Mapreduce存在种种问题,Spark渐渐兴起,虽然Mapreduce也做了各种优化,但是在某些领域相比Spark还是有些差距)。
三 Hadoop安装
1.准备。同一局域网的Linux服务器数台,我是用我的游戏本同时开了3个虚拟机代替的。
2.Linux里创建hadoop用户,专门负责Hadoop项目,便于管理与权限划分。
3.安装JDK,下载Hadoop时官方会指明JDK版本需求,设置JDK环境变量
4.安装SSH并设置免密登录。因为HDFS的NameNode与其他DateNode等节点的通讯与管理就是基于SSH协议的。并且将要使用的机器域名写入hosts文件,方便命名。
5.去官网下载并解压Hadoop。修改hadoop配置文件,位于hadoop/etc/hadoop /下面,分别有:
•slaves。写入DateNode的机器,因为之前修改了域名解析文件,可以直接写域名,不用写IP了。
•core-site.xml。Hadoop的核心配置文件
fs.defaultFS,默认文件系统的主机和端口,这里的文件系统就是hdfs。
hadoop.tmp.dir hadoop的临时文件路径,不设置则会使用系统临时文件路径,系统重启后就丢失了。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
•hdfs-site.xml。HDFS的配置文件
dfs.namenode.secondary.http-address。SecondNameNode的机器和端口
dfs.replication。HDFS系统保存的文件副本数。
dfs.namenode.name.dir,dfs.datanode.data.dir。NameNode和DataNode数据在原本文件系统中的存放位置。
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
•mapred-site.xml。MapReuce的配置文件
mapreduce.framework.name。MapReuce的资源管理系统。这个选yarn,原本是MapReuce自己进行分布式计算时的资源管理,后来发现效率不足便分割开来重新开发了一套框架。
mapreduce.jobhistory.address。MapReuce的任务日志系统,指定机器和端口。
mapreduce.jobhistory.webapp.address。任务日志系统web页面所使用的机器和端口,通过这个可以在web页面中查看任务日志系统。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
•yarn-site.xml。YARN的配置文件
yarn.resourcemanager.hostname。YARN的ResourceManager所使用的机器。这个负责进行全局的资源分配,管理。
yarn.nodemanager.aux-services。可以自定义一些服务,比如MapReuce的shuffle就是用这个配置的。目前我们使用填shuffle就行了。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
1.配置好以后将Hadoop文件从主节点复制到各个从节点,Hadoop的HADFS与MapReduce就安装完成了。(CentOs系统需要关闭相应防火墙)
四 Hadoop生态圈其他组件安装
看看网友博客和官方文档差不多就会了,基本一个形式。下载解压-配置环境变量-配置组件的配置文件,基本都是xxxx-env.sh,xxx-site.sh,xxx-core.sh,slave,work这种,在里面按照需求配置参数就好了,具体参数意思和必须要配置的参数看看官方文档也就懂了(滑稽)。
总结
以上所述是小编给大家介绍的Hadoop介绍与安装配置方法,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.cnblogs.com/taojinxuan/archive/2019/07/04/11130321.html


猜你喜欢
- 没有办法,实践证明最好的解决办法是自己写一个OCX控件,这样就只要注册一下OCX控件就可以了,同时OCX控件的可扩展性非常大,也就是给vc\
- 一 字典的嵌套在机器学习实战决策树部分,生成决策树时用到了字典的嵌套。>>>s1={'no surface'
- FFmpeg简介FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录
- explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。简单讲,它的作用就
- 本文实例为大家分享了JavaScript实现鼠标经过显示下拉框的具体代码,供大家参考,具体内容如下代码:<!DOCTYPE html&
- 可以直接跳到最后整体代码看一看是不是很少的代码!!!!思路:1. 数据的整合2. 图片的灰度转化3. 图片的二值转化4. 图片的轮廓识别5.
- 在 Python 中,* 和 ** 具有语法多义性,具体来说是有四类用法。1. 算数运算* 代表乘法** 代表乘方>>>
- 错误信息Attempting to use uninitialized value input_producer/input_produce
- 在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡量应用系统成败的标准。而采用索引来加快数据处理速度也成为广大数据库用户所
- 首先是最常规的方法:<p id="para" title="cssrain demo!" on
- 前言如果一个类是别人编写的,又没有帮助文档,怎么样来查看所有成员函数呢?本文详细给大家介绍了关于python用dir函数查看类中所有成员函数
- 本文实例为大家分享了python人民币大小写转换的具体代码,供大家参考,具体内容如下大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数
- 今天为大家介绍几个Python“装逼”实例代码,python绘制樱花、玫瑰、圣诞树代码实例,主要使用了turtle库Python绘制樱花代码
- 我想将一个二维数组横纵列转过来,我就不信只有我有这个需求,可是百度了好久,四海八荒都找遍了……后来证明还是大神说的google好用 ~ 第一
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 11 - Using Fx.Morph, Fx O
- 本文实例讲述了Python实现将HTML转成PDF的方法。分享给大家供大家参考,具体如下:主要使用的是wkhtmltopdf的Python封
- 目录1、原始需求2、解决方案3、canal介绍、安装canal的工作原理架构安装4、验证1、原始需求既要同步原始全量数据,也要实时同步MyS
- linux默认是安装了python,默认是安装python2.6.6,可能安装的版本是不能符合我们需要的python要求的。我们需要重新安装
- 本文实例讲述了Mysql存储过程中游标的用法。分享给大家供大家参考。具体如下:1. 批量插入商户路由关联数据:DELIMITER $$USE
- 使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现:下载包:paramikoimport paramiko#服务器