目录

什么是大数据?

什么是数据?

数据的存储单位

大数据要解决什么问题?(海量数据的存储和海量数据的计算问题)

大数据的特点

大数据的应用场景

分布式系统概述

Hadoop

Hadoop的特性优点

Hadoop的集群搭建

Hadoop集群构建模型

Hadoop安装包目录结构

Hadoop配置文件的修改

SCP同步安装包

Hadoop的环境变量(N台机器都要配置)

格式化HDFS

集群的启动和关闭

配置电脑域名映射


什么是大数据?

什么是数据?

我们的一切语言文字、图形图画、音像记录,所有感官可以察觉的事物,只要能被记录下来,能够查询到,就都是数据(data)。

数据的存储单位

常见的数据单位

1Byte = 8bit 1K = 1024Byte 1MB = 1024K 1GB = 1024M
1T = 1024G

1P = 1024T

1E = 1024P

1Z = 1024E

1Y = 1024Z 1B = 1024Y 1N = 1024B 1D = 1024N

由此延伸出大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

大数据要解决什么问题?(海量数据的存储和海量数据的计算问题)

数据分析的前提是要有数据,数据存储的目的是支撑数据分析。究竟怎么样去存取庞大的数据量,是开展数据分析的企业在当下面临的一个问题。传统的数据存储模式存储容量是有大小限制或空间局限,怎样去设计出一个支撑大量数据的存储方案是开展数据分析的首要前提。

当解决了海量数据的存储问题,接下来面临的海量数据的计算问题也是比较让人头疼,因为企业不仅追求可以计算,还会追求计算的速度、效率。

以目前互联网行业产生的数据量级别,要处理这些数据,就需要一个更好、更便捷的分析计算方式了。传统的显然力不从心了,而且效率也会非常低下。这正是传统数据分析领域面临的另一个挑战,如何让去分析、计算。这个时候就需要有新的技术去解决这些问题,这个技术就是大数据。

大数据的特点

大数据的特点可以用5个字来形容

大,多 ,值,快,信

数据的采集,计算,存储量都非常的庞大。是数据体量巨大(Volume)。截至目前,人类生产的所有印刷材料的数据量是200PB(1PB=210TB),而历史上全人类说过的所有的话的数据量大约是5EB(1EB=210PB)。当前,典型个人计算机硬盘的容量为TB量级,而一些大企业的数据量已经接近EB量级。

种类和来源多样化。种类有:结构化、半结构化和非结构化数据等,常见的来源有:网络日志、音频、视频、图片等等。

大数据价值密度相对较低。如随着物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,存在大量不相关信息。因此需要对未来趋势与模式作可预测分析,利用机器学习、人工智能等进行深度复杂分析。而如何通过强大的机器算法更迅速地完成数据的价值提炼,是大数据时代亟待解决的难题。

数据增长速度快,处理速度也快,获取数据的速度也要快。这是大数据区分于传统数据挖掘的最显著特征。根据IDC的“数字宇宙”的报告,预计到2020年,全球数据使用量将达到35.2ZB。在如此海量的数据面前,处理数据的效率就是企业的生命。

数据的准确性和可信赖度,即数据的质量。

大数据的应用场景

电商方面

精准广告位,通过对用户的浏览行为,点击行为等进行大数据采集,分析,挖掘用户的二层三层喜欢,扩大产出。

传媒方面

猜你喜欢,通过对受众人群机型大数据分析,结合对应算法,对受众喜欢的进行交互推荐。

金融领域

理财投资,通过对个人的信用评估,风险承担能力评估,集合众多理财产品、推荐响应的投资理财产品。

交通方面

目前,交通的大数据应用主要在两个方面:一方面通过对车流量等海量数据的收集,估算,预测该路段一定时间内的车流量情况,给用户提供便利,合理进行道路规划;另一方面可以利用大数据来实现即时信号灯调度,提高已有线路通行能力。

电信方面

智慧营业厅,通过对用户当前的行为习惯、偏好,节假日的相应数据变化,调节自身业务结构,做到按需分配。

安防方面

人脸识别,通过人脸识别,--匹配,存储用户数据,结合人工智能,分析及甄别用户行为,预防犯罪行为发生。

医疗方面

智慧医疗,通过对海量病例大数据的存储,匹配、检索、结合用户的饮食、行为等习惯,搭建智慧医疗体系。

分布式系统概述

简而言之是一群独立的计算机集合共同对外提供服务,对用户而言就像是一台计算机再提供服务。

分布式意味着可以采用更多的普通计算机(相对于昂贵的大型机)组成分布式集群对外提供服务

计算机越多,CPU、内存、存储资源等也就越多,能够处理的并发访问量也就越大。

从分布式系统的概念中我们知道,各个主机之间通信和协调主要通过网络进行,所以,分布式系统中的计算机在空间上几乎没有任何限制,这些计算机可能被放在不同的机柜上,也可能被部署在不同的机房中,还可能在不同的城市中,对于大型的网站甚至可能分布在不同的国家和地区。

Hadoop

Hadoop是Apache旗下用java实现的一个开源框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。

它的核心组件是

HDFS                        分布式文件管理:                         解决海量式文件存储

YARN                        作业调度和集群资源管理框架:    解决资源和任务调度

MAPREDUCE           分布式运算编程框架:                  解决海量式数据计算

广义上来讲,Hadoop指的是一个更广泛的概念,Hadoop生态圈。

当前Hadoop已经成长为一个庞大的体系,随着生态系统的成长,新出现的项目越来越多,其中不乏一些非Apache主管的项目,这些项目对HADOOP是很好的补充或者更高层的抽象。比如

框架 用途
HDFS 分布式文件系统
MAPREDUCE 分布式运算编程框架
Zookeeper 分布式协调服务基础组件
HIVE 基于Hadoop的分布式数据仓库,提供基础的sql查询数据操作
FLUME 日志数据采集框架
oozie

工作流调度框架

Sqoop

数据导入导出工具(比如用于mysql与HDFS之间)
Impala 基于hive的实时sql查询分析
Mahout 基于mapreduce、spark、flink等分布式运算框架的机器 学习算法库

Hadoop的特性优点

扩容能力

Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计的节点中。

成本低

Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低。

高效率

通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快。

可靠性

能自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。所以Hadoop的按位存储和处理数据的能力值得人们信赖。

Hadoop的集群搭建

HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。

HDFS集群

负责海量数据存储,集群中的主要角色有

DATENODE,NAMENODE,SECONDARYNAMENODE

YRAN集群

负责海量数据运算时的资源调度,集群中的主要角色有

RESOURCEMANAGER,NODEMANAGER

mapreduce是一个分布式运算编程框架 ,是应用程序开发包,由用户按照编程规范进行程序开发,然后打包运行到HDFS集群上,并收到YARN集群的资源调度管理。

standalone mode 独立模式

独立模式又称为单击部署,仅1台机器运行一个进程,主要用于调试

pseudo-Distributed  mode  伪分布式模式

伪分布模式也是在一台机器上运行HDFS的DATENODE和NAMENODE,YARN的RESOURCEMANAGER,NODEMANAGER,但分别启动单独的进程,主要用于调试。

cluster mode 集群模式

集群模式主要用于生产环境部署。会使用N台机器组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。

Hadoop集群构建模型

    第一种:NameNode与ResourceManager单节点架构模型

         文件系统核心模块

NAMENODE        集群中的主节点,主要用于管理集群中的各种数据

SECONDARYNAMENODE        主要用于Hadoop当中元数据信息的辅助管理

DATENODE        集群中的从节点,主要用来存储集群中的各种数据

数据计算核心模块

RESOURCEMANAGER        接受用户的计算请求任务,并负责集群中的资源分配

NODEMANAGER        负责执行主节点APPMaster分配的任务

    第二种:NameNode高可用与ResourceManager单节点架构模型

        

文件系统核心模块

NAMENODE        集群中的主节点,主要用于管理集群中的各种数据,其中NAMENODE会有两个,形成高可用

DATENODE        集群中的从节点,主要用来存储集群中的各种数据

JOURNALNODE        文件系统元数据信息管理

数据计算核心模块

RESOURCEMANAGER        接受用户的计算请求任务,并负责集群中的资源分配,以及计算任务的分配

NODEMANAGER        负责执行主节点RESOURCEMANAGER分配的任务

    第三种:NameNode单节点与ResourceManager高可用架构模型

文件系统核心模块

NAMENODE        集群中的主节点,主要用于管理集群中的各种数据

SECONDARYNAMENODE        主要用于Hadoop当中元数据信息的辅助管理

DATENODE        集群中的从节点,主要用来存储集群中的各种数据

数据计算核心模块

RESOURCEMANAGER        接受用户的计算请求任务,并负责集群中的资源分配,以及计算任务的划分,通过Zookeeper实现RESOURCEMANAGER的高可用。

NODEMANAGER        负责执行主节点RESOURCEMANAGER分配的任务

    第四种:NameNode与ResourceManager高可用架构模型

         文件系统核心模块

NAMENODE        集群中的主节点,主要用于管理集群中的各种数据,其中NAMENODE会有两个,形成高可用

JOURNALNODE        文件系统元数据信息管理进程,一般都是奇数个

DATENODE        从节点,用于数据存储

数据计算核心模块

RESOURCEMANAGER        YRAN平台的主节点,主要用于接受各种任务,通过2个,构建成高可用。

NODEMANAGER        YARN平台的从节点,负责执行主节点RESOURCEMANAGER分配的任务

Hadoop安装包目录结构

bin        Hadoop最基本的管理脚本和使用脚本目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以使用这些脚本管理和使用Hadoop。

etc        Hadoop配置文件的所在目录。包括core-site.xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0等新增的配置

include        对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序问HDFS或者编写MapReduce程序

lib        该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。

libexec        各个服务对用的shell配置文件的所在目录,可用于配置日志输出,启动参数等。

sbin        Hadoop管理脚本所在的目录,主要包含HDFS和YRAN中各类服务的启动、关闭脚本。

share        Hadoop各个模块编译后的jar包所在的目录。

Hadoop配置文件的修改

Hadoop的安装主要就是对配置文件的修改

hadoop.env.sh

文件中设置的是Hadoop运行时所需要的环境变量。JAVA_HOME是必须设置的,即使我们当前的系统中设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机山执行,它也是把当前执行环境当成远程服务器

export JAVA_HOME=/export/server/jdk1.8.0_241#文件最后添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

core-site.xml

Hadoop的核心配置文件,有默认的配置项core-defalu.xml

core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动获取core-default.xml里相同属性的值。

<property><name>fs.defaultFS</name><value>hdfs://node1:8020</value>
</property><property><name>hadoop.tmp.dir</name><value>/export/data/hadoop-3.3.0</value>
</property><!-- 设置HDFS web UI用户身份 -->
<property><name>hadoop.http.staticuser.user</name><value>root</value>
</property><!-- 整合hive -->
<property><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property>

hdfs-site.xml

HDFS的核心配置文件,有默认配置文件hdfs-default.xml。hdfs-default.xml与hdfs-site.xml的功能是一样的。如果在hdfs-site.xml没有配置的属性,则会自动获取hdfs-default.xml里的相同属性的值。

<!-- 指定secondarynamenode运行位置 -->
<property><name>dfs.namenode.secondary.http-address</name><value>node2:50090</value>
</property>

mapred-site.xml

MapReduce的核心配置文件,有默认的配置项mapred-default.xml。mapred-default.xml与mapred-site.xml的功能是一样的,如果在mapred-site.xml里没有配置的属性,则会自动会获取mapred-default.xml里的相同属性的值。

<property><name>mapreduce.framework.name</name><value>yarn</value>
</property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

yarn-site.xml

YARN的核心配置文件,有默认的配置项yarn-default.xml。

yarn-default.xml与yarn-site.xml的功能是一样的,如果在yarn-site.xml里没有配置的属性,则会自动会获取yarn-default.xml里的相同属性的值。

<!-- 指定YARN的主角色(ResourceManager)的地址 -->
<property><name>yarn.resourcemanager.hostname</name><value>node1</value>
</property><!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property><!-- 是否将对容器实施物理内存限制 -->
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property><!-- 是否将对容器实施虚拟内存限制。 -->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>
<!-- 开启日志聚集 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property><!-- 设置yarn历史服务器地址 -->
<property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value>
</property><!-- 保存的时间7天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>

workers

workers里记录的是集群主机名。主要作用是配合一键脚本(start-dfs.sh/stop-yarn.sh)来管理集群,这时候workers里的主机标记的就是从节点角色所在的机器。

node1
node2
node3

SCP同步安装包

在刚刚配置好的node1机器上进行此操作

cd /export/serverscp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD

Hadoop的环境变量(N台机器都要配置)

vim /etc/proflieexport HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource /etc/profile

格式化HDFS

首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的。只需要在node1上进行格式化,只能格式化一次

cd /export/server/hadoop-3.1.4
bin/hdfs namenode -format

集群的启动和关闭

方式1

启动HDFS集群

# 1 选择node1节点启动NameNode节点
hdfs --daemon start namenode# 2 在所有节点上启动DataNode
hdfs --daemon start datanode# 3 在node2启动Secondary NameNode
hdfs --daemon start secondarynamenode

启动YARN集群

# 4 选择node1节点启动ResourceManager节点
yarn --daemon start resourcemanager# 5 在所有节点上启动NodeManager
yarn --daemon start nodemanager

注意:如果在启动之后,有些服务没有启动成功,则需要查看启动日志,Hadoop的启动日志在每台主机的/export/server/hadoop-x.x.x/logs/目录,需要根据哪台主机的哪个服务启动情况去对应的主机上查看相应的日志,以下是node1主机的日志目录.

关闭HDFS集群

# 1 关闭NameNode
hdfs --daemon stop namenode# 2 每个节点关闭DataNode
hdfs --daemon stop datanode# 3 关闭Secondary NameNode
hdfs --daemon stop secondarynamenode

关闭YARN集群

# 3 每个节点关闭ResourceManager
yarn --daemon stop resourcemanager# 4 每个节点关闭NodeManager
yarn --daemon stop nodemanager

方式2

HDFS集群一键脚本

start-dfs.sh
stop-dfs.sh

YARN集群一键脚本

start-yarn.sh
stop-yarn.sh

方式3

一键启动、关闭HDFS/YARN

# 一键启动HDFS、YARN
start-all.sh
# 一键关闭HDFS、YARN
stop-all.sh

配置电脑域名映射

windowsC:\Windows\System32\drivers\etc\hostsMac/etc/hosts内容
ip 名称192.168.88.161 node1
192.168.88.162 node2
192.168.88.163 node3

大数据[博学谷IT技术支持]相关推荐

  1. HDFS入门[博学谷IT技术支持]

    企业存储系统 硬盘 硬盘 硬盘是计算机的主要存储硬件,可以用来存储大量数据.目前(2020年),市面上比较流行的硬盘多数是TB级的. SATA硬盘 SATA即Serial ATA(串行ATA),是由I ...

  2. MapReduce[博学谷IT技术支持]

    MapReduce是什么 1.MapReduce是分布式计算的鼻祖,通过它可以更容易去理解分布式计算的思想和架构. 2.HiveSql的底层用的就是MapReduce 3.很多分布式计算引擎都借鉴了M ...

  3. 大数据怎么学习:大数据学习的关键技术知识体系、学习路径和误区

    由于大数据技术涉及内容太庞杂,大数据应用领域广泛,而且各领域和方向采用的关键技术差异性也会较大,难以三言两语说清楚,本文从数据科学和大数据关键技术体系角度,来说说大数据的核心技术什么,到底要怎么学习它 ...

  4. 大数据流通与交易技术国家工程实验室成立大会在京举行

    3月11日,由国家发改委正式批复的"大数据流通与交易技术国家工程实验室"成立大会暨第一次研究中心主任联席会议召开.国家发展和改革委员会.中央网信办.工业和信息化部以及上海市政府等相 ...

  5. AI和大数据下,前端技术将如何发展?

    简介:2010年前后,各种大数据应用进入爆发期.如果说之前的Web应用更多地是在"产生"数据,那在2010年之后,如何更好地"展现"数据则被提上了新的高度,很多 ...

  6. 大数据算法与分析技术国家工程实验室将建设

    国家发展改革委近日正式下发通知,同意由西安交通大学作为承担单位,国家电网公司全球能源互联网研究院作为联合共建单位,筹建"大数据算法与分析技术国家工程实验室". 国网信通部落实公司党 ...

  7. 《大数据》杂志——大数据容灾备份技术挑战和增量备份解决方案

    大数据容灾备份技术挑战和增量备份解决方案 罗圣美1,2,李 明1,叶郁文1 (1.中兴通讯股份有限公司 南京 210012: 2.清华大学计算机科学与技术系 北京 100084) 摘要:大数据已成为当 ...

  8. 大数据包围你我,技术人如何走知识分享之路

    本期推荐:[云享人物·大咖面对面]华为云首席产品官方国伟独家专访:当下云发展有待突破的并不是技术问题:现在为什么是#华为云# 的最佳时机:以不变应万变,什么是云产品规划的三个关键出发点:生态对于云的意 ...

  9. 大数据需要学习哪些技术?

    大数据是对海量数据进行存储.计算.统计.分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算.高并发处理.高可用处理 ...

最新文章

  1. jquery_3month
  2. 如何将本地数据库迁移到数据库上?
  3. 当我们做MVP产品时,我们到底在做什么?
  4. iphone怎么长截屏_新iPhone又要为中国定制?除了价格,还有这些惊喜
  5. 分布式计算与机器学习
  6. step3 . day1 数据结构之线性表顺序表
  7. java8流分组 性能_Java性能教程– Java 8流有多快?
  8. 前馈神经网络中的前馈_前馈神经网络在基于趋势的交易中的有效性(1)
  9. 2015年《大数据》高被引论文Top10文章No.9——大数据是数据、技术,还是应用
  10. Python:如何获取一个用户名的组ID
  11. a标签的href属性
  12. spring-session实现分布式集群session的共享(转)
  13. 【优化算法】粒子群优化算法简介
  14. LuatOS-HMI概述
  15. 《可复制的领导力》思维导图读书笔记,提升职场竞争力
  16. 这个开源的去马赛克神器 修复受损漫画无压力
  17. 手机访问电脑文件_你还在苦恼电脑和手机文件如何快速传输吗?
  18. 裂变是什么?如何让用户自行裂变?流程、细节大曝光
  19. Hyde And Hebbe
  20. 【工大SCIR】基于动态图交互网络的多意图口语语言理解框架

热门文章

  1. English语法_人称代词
  2. 毕业生必看的方法:CAJ文件如何免费转换成word文档
  3. HTML5之placeholder属性
  4. scratch案例——深水炸弹
  5. 七牛---借助第三方平台实现移动直播
  6. 一个项目经理必备的素质
  7. 强化学习 | Multi Agents | Trust Region | HATRPO | HAPPO
  8. 牛顿迭代法例题 matlab,牛顿迭代法-matlab程序(解线性方程组)
  9. 【WebGIS】二、基于Openlayers实现地图的加载与显示
  10. 小青蛙跳台阶的另类思考