前言

最近想学习下大数据,有点急于求成,于是去网上找了各种培训机构的视频,发现大都质量不佳,理论基本不说或者简单讲下,然后教你照猫画虎的敲代码,出了问题都没法分析。最后还是找了厦门大学的公开课从理论开始稳扎稳打的学习了。

一 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>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
  1. 配置好以后将Hadoop文件从主节点复制到各个从节点,Hadoop的HADFS与MapReduce就安装完成了。(CentOs系统需要关闭相应防火墙)

四 Hadoop生态圈其他组件安装

看看网友博客和官方文档差不多就会了,基本一个形式。下载解压-配置环境变量-配置组件的配置文件,基本都是xxxx-env.sh,xxx-site.sh,xxx-core.sh,slave,work这种,在里面按照需求配置参数就好了,具体参数意思和必须要配置的参数看看官方文档也就懂了(滑稽)。

Hadoop介绍与安装的更多相关文章

  1. 从零自学Hadoop(19):HBase介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...

  2. 从零自学Hadoop(14):Hive介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...

  3. Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装

     Hadoop介绍 Hadoop是一个能对大量数据进行分布式处理的软件框架.其基本的组成包括hdfs分布式文件系统和可以运行在hdfs文件系统上的MapReduce编程模型,以及基于hdfs和MapR ...

  4. 从零自学Hadoop(23):Impala介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...

  5. [Hadoop入门] - 1 Ubuntu系统 Hadoop介绍 MapReduce编程思想

    Ubuntu系统 (我用到版本号是140.4) ubuntu系统是一个以桌面应用为主的Linux操作系统,Ubuntu基于Debian发行版和GNOME桌面环境.Ubuntu的目标在于为一般用户提供一 ...

  6. Hadoop单机模式安装

    一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序: ...

  7. Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS

    摘自:http://www.powerxing.com/install-hadoop-cluster/ 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否 ...

  8. 3-1.Hadoop单机模式安装

    Hadoop单机模式安装 一.实验介绍 1.1 实验内容 hadoop三种安装模式介绍 hadoop单机模式安装 测试安装 1.2 实验知识点 下载解压/环境变量配置 Linux/shell 测试Wo ...

  9. Storm介绍及安装部署

    本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...

随机推荐

  1. ActiveMQ C#实例

    重点参考:NMS Documentation 一.ActiveMQ Queue 在ActiveMQ中Queue是一种点对点的消息分发方式,生产者在队列中添加一条消息,然后消费者消费一条消息,这条消息保 ...

  2. ps/top

    ps -e 显示所有进程,环境变量 -f 全格式显示 -a 显示所有用户的所有进程(包括其他用户) -u 按用户名和启动时间的顺序显示进程 -x 显示无控制终端的进程 -w 显示加宽可以显示较多信息 ...

  3. luogu 2331

    给出 $n * 1$ 的矩阵,选出 $k$ 个互不重叠的子矩阵,使得其最大$sum[i]$ 为列的前缀和设 $f[i][j]$ 表示前 $i$ 个数选出 $j$ 个互不重叠的子矩阵的最大价值若第 $i ...

  4. Codevs 1242 布局 2005年USACO(差分约束)

    1242 布局 2005年USACO 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近 ...

  5. 浅谈神经网络中的bias

    1.什么是bias? 偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b ...

  6. LOJ166 拉格朗日插值 2【卷积,NTT】

    题目链接:LOJ 题目描述:输入多项式的次数$n$,一个整数$m$和$f(0),f(1),f(2),\ldots,f(n)$,输出$f(m),f(m+1),f(m+2),\ldots,f(m+n)$ ...

  7. MySQL数据分析-(12)表操作补充:字段属性

    大家好,我是jacky朱元禄,很高兴继续跟大家学习MySQL数据分析实战,今天我们分享的主题是表操作补充之字段属性,依照惯例第一部分,jacky先跟大家分享本课时的学习逻辑 (一)学习逻辑 我们说创建 ...

  8. 跨域方案JSONP与CORS的各自优缺点以及应用场景

    转自 https://www.zhihu.com/question/41992168/answer/217903179 首先明确:JSONP与CORS的使用目的相同,并且都需要服务端和客户端同时支持, ...

  9. ph:做参考

    1  波动学 <伯克利物理学教程>第三卷  上.下册2  场论(朗道)3  场论与粒子物理学(上册)(李政道)出国留学必备书之一!4  场论与粒子物理学(下册)(李政道)5  非平衡态热力 ...

  10. linux rtc中废弃的接口和新的接口

    1. 废弃的接口 rtc_tm_to_time 2. 替换废弃接口的新接口 rtc_tm_sub