大数据基础平台实施及运维

一、大数据介绍

1、为什么使用大数据技术

数据量越来越大,数据分析的实时性越来越强,数据结果应用范围越来越广。(从用户的访问量、量、访问时间、访问频率,市场可以得到很多信息)

2、大数据的定义

数据收集、数据清洗、数据处理就是大数据技术的整个流程。

二、大数据应用领域

1.广告
广告投放         广告策略
2.电信

深度包检测        流失分析        网络质量
3.金融        

风险识别(借贷款)        预测(12306买票换乘)
4.能源生物
基因组分析        地质分析
5.安全
入侵检测        图像识别

6.社交游戏
流失分析        社交推荐        使用分析
7.电商零售
推荐系统        交易分析

三、大数据技术处理框架

1、什么是大数据处理框架

处理框架和处理引擎负责对数据系统中的数据进行计算虽然“引擎”和“框架”之间的区别没有什么权威的定义,但大部分时候可以将前者定义为实际负责处理数据操作的组件,后者则可定义为承担类似作用的一系列组件。(ELK日志监控处理框架)

2、大数据处理框架有哪些

①仅批处理框架(滴滴打车数据量10个T一批处理)
用于批量处理大数据集的处理框架,可对整个数据集进行操作

例如:
Apache Hadoop,一种以MapReduce作为默认处理引擎批处理框架

②仅流处理框架(12306就是用流处理框架,数据的实时性很强,数据流找不到数据头和尾)

用于对随时进入系统的数据进行计算,是一种“无数据边界”的操作方式。

例如:
Apache Storm
Apache Samza

③混合处理框架

一些大数据处理框架可同时处理批处理和流处理工作负载
例如:
Apache Spark
Apache Flink

四、hadoop生态圈

1、项目定义

Apache Hadoop项目用于高可用,可扩展的分布式计算的开源软件

Apache Hadoop是一个大数据处理框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集

Apache Hadoop可以从单个服务器扩展到数千台计算机

Apache Hadoop集群中每台计算机都提供本地计算和存储

Apache Hadoop集群不是依靠硬件来提供高可用性,而是设计了用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务。

开源软件
大数据处理架构
单台服务可以,数千台服务器
每台服务器都存自己的数据及运算自己的数据
把硬件故障认为常态,通过软件把控故障

2、核心项目

Hadoop分布式文件系统(HDFS):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。Hadoop YARN:作业调度和集群资源管理的框架

Hadoop MapReduce:基于YARN的系统,用于并行处理大型数据集

Hadoop Common:支持其他Hadoop模块的常用实用程序。

Hadoop Ozone: Hadoop集群所提供的对象存储。

3、相关项目

Ambari
基于Web的工具,用于配置,管理和监控Apache Hadoop集群,包括对Hadoop HDFS MapReduce,Hive,HCatalog,HBase,Zookeeper,Oozie,Pig和Sqoop的支持。
Ambari还提供了一个用于查看集群运行状况的仪表板,例如热图,以及可视化查看MapReduce,Pig和oHive应用程序的功能,以及以用户友好的方式诊断其性能特征的功能。

Spark
用于Hadoop数据的快速通用计算引擎。Spark提供了一种简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL,机器学习,流处理和图形计算。

ZooKeeper
用于分布式应用程序的高性能协调服务。

核心项目 hdfs mapreduce yarn
相关项目 ambari hbase hive spark zookeeper

五、hadoop核心项目分布式文件系统HDFS

1、文件系统定义

HDFS (Hadoop Distributed File System,Hadoop分布式文件系统)它是一个高度容错性的系统它适合部署在廉价的机器上它能提供高吞吐量的数据访问它适合那些有着超大数据集(large data set)的应用程序(超大数据集例如:海量数据分析、机器学习等)

2、文件系统特点

支持大数据文件
非常适合上TB级别的大文件或者一堆大数据文件的存储,如果文件只有几个G甚至更小就没啥意思了

支持文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算节点上,它的意义在于读取文件时可以同时从多个计算节点上读取不同区块的文件,多主机读取比单主机读取效率要高得多。

支持一次写入,多次读取,顺序读取( 流式数据访问)这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件未添加内容。

支持廉价硬件
HDFS可以部署在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。
支持硬件故障
HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以讯速找另一块副本取文件。

总结:支持大文件存储  分块存储  支持廉价硬件  支持硬件故障

3、文件系统关键词

Block
最基本的存储单位;将文件进行分块处理,通常是128M/块,例如:256M文件会被分为2个Block.

Hadoop集群架构(主从),类似mysql、ceph、LB(主:调度器 从realserver)

NameNode(主)(最好做高可用)
用于保存整个文件系统的目录信息
文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果
出错,NameNode就失效了。

接收用户的操作请求
维护文件系统的目录结构
管理文件和Block之间的映射管理
管理 block 和 DataNode 之间的映射

DataNode(从节点)
分布在廉价的计算机上,用于存储Block块文件。文件被分成块存储到 DataNode 的磁盘上
每个Block(块)可以设置多副本

4、hdfs写数据流程

总结:客户端向namenode发起文件上传请求

           客户端向datanode发起建立连接请求

           客户端向datanode上传存储数据(block只要一个成功上传,NameNode会自动同步)

5、hdfs读数据流程

 总结:和存储文件一样必须通过NameNode门户,只不过读取文件过程很简单,不是单一block读取,多个block同时读取带宽大,速度也快。

6、Hadoop核心项目编程模型

1、MapReduce作用

通过对HDFS分布式文件系统的了解,我们已经可以把海量数据存储在集群中DataNode之上了,但这仅是Hadoop工作的第一步,那么如何从海量的数据中找到我们所需要的数据呢,这就是MapReduce要做的事情了。

例如:1+2    +    3+4  +  5+6   =?          客户需要马上知道自己的5亿资金还有多少(各个分行分头统计,最后报给总行,效率快)

Map: 1+2=3         3+4=7        5+6=11

Reduce: 3+7+11=21     

结论
将大的数据分析分成小块逐个分析,最后再将提取出来的数据汇总分析,最终获得我们想要的内容。通俗说MapReduce是一套从海量源数据提取、分析元素,最后返回结果集的方法
当然怎么分块分析,怎么做Reduce操作非常复杂,Hadoop已经提供了数据分析的实现,我们只需要编写简单的需求命令即可达成我们想要的数据

map 把大数据分成小数据,进行计算通过洗牌的方式给reduce

reduce 对map的结果进行汇总

2、MapReduce工作流程


当向MapReduce 框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map 任务,然后分配到不同的节点(DataNode)上去执行,每一个Map 任务处理输入数据中的一部分,当Map 任务完成后,它会生成一些中间文件,这些中间文件将会作为Reduce 任务的输入数据。Redue 任务的主要目标就是把前面若干个Map 的输出汇总到一起并输出。

 7、hadoop部署

1、单机部署

1.1、单机部署介绍

单机(本地模式)是Hadoop的默认部署模式。

当配置文件为空时,Hadoop完全运行在本地

不需要与其他节点交互,单机(本地模式)就不使用HDFS(使用的是本地的内存存储数据),也不加载任何Hadoop的守护进程

该模式主要用于开发调试MapReduce程序的应用逻辑。

1.2、获取部署软件包

1.2.1、获取hadoop软件包

hadoop.apache.org

1.2.2、获取JDK

Java Downloads | Oracle

建议下载二进制包tar.gz

1.3、部署

1.3.1、jdk部署

[root@localhost ~]#tar xf jdk-8u191-linux-x64.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local
[root@localhost local]# mv jdk1.8.0_191 jdk

1.3.2、hadoop部署

[root@localhost ~]# tar xf hadoop-2.8.5.tar .gz -C /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# mv hadoop-2.8.5 hadoop

1.3.3、Linux系统环境变量

[root@localhost ~]#vim /etc/profile

export JAVA_HOME=/usr/1ocal/jdk
export HADOOP_HOME=/opt/hadoop
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

$PATH是原来的环境变量,放在最后面,所以jdk就是用下载解压的。

G切换到vim编辑器最后一行编辑完成之后必须 source /etc/profile

1.3.4、应用测试

[root@localhost ~]#mkdir /home/input
[root@localhost ~]#cp /opt/hadoop/etc/hadoop/*.xml /home/input
[root@localhost ~]#hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /home/input/ /home/output  
[root@locaThost ~]#cat /home/output

hadoop-mapreduce-examples-2.8.5.jar wordcount  

使用jar包中的wordcount方法去统计词频

 2、伪分布式部署

1、伪分布式部署介绍

Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入/输出,以及其他的守护进程交互。

2、修改配置文件

获取软件包和配置环境变量省略

主要涉及的配置文件有:hadoop-env.sh、mapred-env.sh、yarn-env.sh、core-site.xml

2.1、修改hadoop-env.sh、mapred-env.sh、yarn-envsh文件中JAVA HOME参数

[root@localhost ~]#vim $[HADOOP_HOME]/etc/hadoop/hadoop-env.sh


修改JAVA_HOME参数为:
export JAVA_HOME=/usr/local/jdk

 

2.2、修改 core-site.xml

[root@localhost ~]#vim $[HADOOP_HOME]/etc/hadoop/core-site.xml



(1)配置fs.defaultFs
<property>
<name>fs.defaultFS</name>
<value>hdfs://hd1:8020</value>
</property>

(2)配置hadoop临时目录
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>

hd1是主机名,可自定义  vim /etc/hosts

泛结构化格式必须有头有尾

配置临时目录前,请先创建此目录,不创建也可以(hadoop集群启动时会自动创建临时目录)。HDFS的NameNode数据默认都存放这个目录下,查看*-default.xml等默认配置文件,就可以看到很多依赖${hadoop.tmp.dir}的配置
默认的hadoop.tmp.dir是/tmp/hadoop-s{username],此时有个问题就是NameNode会将HDFS的元数据存储在这个/tmp目录下,如果操作系统重启了,系统会清空/tmp目录下的东西,导致NameNode元数据丢失,是个非常严重的问题,所有我们应该修改这个路径。

2.3、配置hdfs-site.xml

[root@localhost ~]#vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml

<property>
<name>dfs.repication</name>
<value>1</value>
</property>

dfs.replication配置的是HDFS存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1

2.4、格式化hdfs

[root@localhost ~]#hdfs namenode -format

格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据存储在NameNode中。
格式化后,查看core-site.xml里hadoop.tmp.dir(本例是/opt/data目录)指定的目录下是否有了dfs目录
如果有,说明格式化成功。

2.5、查看hdfs的临时目录

[root@localhost ~]#ls /opt/data/tmp/dfs/name/current

 

fsimage是NameNode元数据在内存满了后,持久化保存到的文件

fsimage*.md5 是校验文件,用于校验fsimage的完整性

seen_txid 是hadoop的版本
vession文件里保存:

namespacelD:NameNode的唯一ID。

clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群

3、启动角色

请把hadoop安装目录中的sbin目录中的命令添加到/etc/profile环境变量中,不然无法使用hadoop-
daemon.sh

 

3.1、启动namenode    

3.2、启动datanode

3.3、验证

 验证文件系统只需要创建文件夹上传文件进去,再删除就行。

 -put上传本地文件到hdfs文件系统   -get 下载文件系统中的文件到本地

3、配置yarn

A framework for job scheduling and cluster resource management.
功能:任务调度和集群资源管理
YARN (Yet An other Resouce Negotiator) 另一种资源协调者
是Hadoop 2.0新增加的一个子项目,弥补了Hadoop 1.0(MRv1)扩展性差、可靠性资源利用率低以及无法支持其他计算框架等不足。
Hadoop的下一代计算框架MRv2将资源管理功能抽象成一个通用系统YARNMRv1的jobtracker和tasktrack也不复存在,计算框架(MR, storm,spark)同时运行在之上,使得hadoop进入了多计算框架的弹性平台时代

yarn是一种资源协调者
从mapreduce拆分而来
带来的好处:让hadoop平台性能及扩展性得到更好发挥

3.1、使用yarn的好处

在某些时间,有些资源计算框架的集群紧张,而另外一些集群资源空闲。那么这框架共享使用一个则可以提高利率些集群资源空闲。
维护成本低
数据共享,避免了集群之间移动数据

YARN主从架构
 ResourceManager 资源管理
 NodeManager 节点管理

ResourceManager(主)
负责对各个NodeManager 上的资源进行统一管理和任务调度

NodeManager(从)
在各个计算节点运行,用于接收RM中ApplicationsManager 的计算任务、启动/停止任务、和RM中Scheduler 汇报并协商资源、监控并汇报本节点的情况。

 4、配置MapReduce使用YARN框架

4.1、配置mapred-site.xml指定mapreduce使用yarn框架

默认没有mapred-site.xml文件,但是有个mapred-sitexml.template配置模板文件。复制模板生成mapred-site.xml。

[root@localhost ~]#cp /opt/hadoop/etc/hadoop/mapred-site.xml.template
/opt/hadoop/etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

4.2、配置yarn-site.xml

yarn.nodemanager.aux-services配置了yarn的默认混洗方式,选择为mapreduce的默认混洗算法yarn.resourcemanager.hostname指定了Resourcemanager运行在哪个节点(主机)上。

 启动四个服务,前两个服务是hdfs的namenode和datanode

后两个服务是yarn的resourceManager和nodeManager

 测试:用hadoop客户端工具里面的jar包中的wordcount词频统计函数计算写入hdfs中的数据

输出到output

在Hadoop的share目录里,自带了一些jar包,里面带有一些mapreduce实例小例子,位置在
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5ar,可以运行这些例子体验刚搭建好的hadoop平台

还可以用绝对路径运行实例

[root@localhost ~]#yarn jar /hadoop安装路径/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /test/input /test/output

YARN的Web页面
YARN的Web客户端端口号是8088,通过http://hd1:8088/可以查看

 

 停止hadoop服务

 

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
大数据标准化工作组织:ISO/IEC ITU NIST TPC SPEC TPC和SPEC两个组织关注大数据技术平台的基准测试: 测试标准: TPCx-HS、TPCx-BB 工具:TeraSort 大数据测试第一阶段 大数据平台(Hadoop平台)基准测试的方法论和具体实施方案: 《大数据平台基准测试第一部分:技术要求》 《大数据平台基准测试第二部分:测试方法》 基准测试主要从性能的角度衡量大数据平台,主要考虑数据生成、负载选择和明确测试 指标等内容。根据Hadoop平台的特点,从NoSQL任务、机器学习、SQL任务、批处理四大 类任务中选择了10个测试用例作为负载。 大数据测试第二阶段 《Hadoop平台基础能力测试方法》 《Hadoop平台性能测试方法》 性能测试在基准测试的基础上进行了升级,如图2所示,增加了SQL用例的比重,按照SQ L任务的类型,从两个维度确立了5类任务,分别是CPU密集型任务、I/O密集型任务、报 表任务、分析型任务、交互式查询。HBase的优势在于并发检索和读的性能,在负载方面 选择了批量写入数据、并发读任务占多、并发更新任务较重、读取更改然后写回4类场景 ,充分检验了HBase数据库的并发执行能力。在机器学习和批处理方面相对基准测试方法 减少了2个用例 Hadoop平台基础能力测试用例分布 Hadoop平台基础能力涵盖了运维管理、可用性、功能、兼容性、安全、多租户和扩展性 等指标,总共38项测试用例: MPP数据库(面向在线分析处理(on-lineanalyticalprocessing,OLAP))的标准化 《MPP数据库基础能力测试方法》 工具: Terasort BigDataBench HBase性能由YCSB(Yahoo!cloudservingbenchmark)工具来测试 ----------------------- 大数据平台测试标准全文共2页,当前为第1页。 大数据平台测试标准全文共2页,当前为第2页。
科技创新导报 2019 NO.08 Science and Technology Innovation Herald 创 新 管 理 科技创新导报 Science and Technology Innovation Herald 178 DOI: 10.16660/j.cnki.1674-098X.2019.08.178 大数据时代下的数据中心运维管理 徐雪艳 (辽河石油勘探局有限公司信息工程分公司机关信息运维中心 辽宁盘锦 124010) 摘 要: 在社会经济和数据信息技术持续发展中 , 数据中心现已成为影响企业稳步运行的重要因素。 此时, 传统意义上的 数据中心已经无法满足企业数据管理要求, 且涌现出大量问题。 本文在了解传统数据中心运行情况的基础上, 明确了 大数 据运维管理的数据来源, 并深入研究大数据时代下数据中心运维管理工作的应用措施, 从而满足日益革新的市场需求。 关键词: 大数据时代 数据中心 运维管理 信息技术 中图分类号: TP308 文献标识码: A 文章编号: 1674-098X(2019)03(b)-0178-02 在经济全球化的发展背景下, 信息技术发展速度也越 来越快, 此时为了更好适应多变的市场环境, 各行企业要 在整合全球经济和内部信息化建设水平的基础上, 明确认 识到数据中心是企业内部处理和传递信息数据的重要平 台, 其展现出的工作水平影响着企业内部运行效率。 因此, 在现代化和科技化技术理念全面推广的过程中, 企业要明 确未来发展方向, 并提出健全的数据中心运维管理工作。 需要注意的是, 当前虽然有很多企业已经提出并构建了数 据中心, 但其设定的运维管理工作却存在很多问题。 因此, 下面对大数据时代下数据中心运维管理工作进行分析。 1 大数据时代下的数据中心变化 现阶段, 很多企业都已构成了一体化企业级数据中心 平台, 虽然这符合日常工作要求, 但难以满足大数据时代 对企业发展各项能力的要求, 因此大数据时代对传统数 据中心提出了新的挑战。 其中, 具体展现为以下几点: 其 一, 非结构化数据的重要性增加。 以往数据中心获取的信 息数据都是个人、 移动终端等结构化内容, 而大数据时代 下的数据种类非常多, 不管是半结构化还是非结构化都展 现出了爆发式的增长趋势, 且增加速度远远超出传统数据 中心。 在这一背景下 , 企业需要引用高效率、 高价值的技术 进行优化和完善; 其二, 增加对数据时效性的要求。 传统 数据中心革新数据的时间周期大都是月、 周及日, 而大数 据时代对处理数据的速度和时间都提出了更高要求, 这就 要求企业在竞争越发激励的市场环境中, 必须要结合实时 分析报表和结果数据来掌控企业发展情况, 并提出有效 的处理措施; 其三, 优化数据分析形式。 传统数据分析是 以结构化为核心进行操作, 业务分析也只能被动接受。 通 过研究大量数据信息, 明确其中潜藏的关联和趋势, 而后 在研究结构化、 半结构化及非结构化等数据融合关系后, 引用空间分析、 文本分析等形式进行操作, 以此为管理者 提供有效的信息依据[1]。 2 大数据时代下运维管理的数据来源 对大数据时代而言, 数据中心在运行阶段获取的数据 主要分为以下几点: 其一, 动力环境监控系统。 其主要对 水量、 网路通讯情况及电压等内容进行全面监管, 因此具 备信息量大的特点; 其二, 管理流程。 这一类数据是指工 单记录、 设备部署信息等, 且需要工作人员进行布线、 安装 与卸载应用设备等; 其三, 员工设备出入管理。 相关数据 有设备出入记录、 访客出入情况等; 其四, CMDB库的设备 资源。 CMDB库作为数据中心的基础内容, 储备着大量资 产信息, 工作人员可以引用RFID等技术, 对资产信息数据 实施及时革新。 3 大数据时代下数据中心运维管理措施分析 3.1 优化数据中心管理能力 在大数据时代下 , 受数据中心管理水平的提升, 促使对 应运维管理工作也提出了新要求, 国家也在了解未来发展 方向的基础上提出了相应的管理措施和优惠政策。 因此, 企业要在实践发展中从以下几点入手: 其一, 优化运维人 员的技能培训能力; 其二, 科学推广日常工作中的管理制 度, 并注重这一制度的具体要求, 以此加强工作人员对工 作规范性的认知; 其三, 优化运维管理者对管理工作的认 知和理解, 确保其可以科学引用所学技能, 并提升数据中 心管理工作的质量和效率[2]。 3.2 培育强大的运作团队 在大数据下, 企业要想更好地进行数据中心运维管理 工作, 必须要培育一批有素质、 高效率的运维管理团队。 尤其是在这一背景下衍生出的并行计算技术、 数据分析技 术等内容全面推广后, 有关运维员工的业务能力和综合素 养也在随之优化。 不管是基础运维

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值