大数据生态

1、什么是大数据?

        大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。由IBM提出的大数据的五个特征(5V):Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)、Veracity(真实性)。

2、什么是大数据生态?

        大数据生态(BigData Ecology)。网络化数据社会与现实社会的有机融合、互动以及协调,形成大数据感知、管理、分析与应用服务的新一代信息技术架构和良性增益的闭环生态系统。

        大数据的核心是Hadoop生态系统。我们通常可能会根据特定的用特来描述软件工具,比如:Oracle是数据库、Apache Tomcat 是 Web 服务器。不过,Hadoop就有些复杂,Hadoop 是大量工具集合,这些工具可以协同工作来完成特定的任务。可以说Hadoop是一个数据管理系统,将海量的结构化和非结构化数据聚集在一起,这些数据涉及传统企业数据栈的几乎每一个层次,其定位是在数据中心占据核心地位。也可以说,Hadoop 是大规模并行执行框架,把超级计算机的能力带给大众,致力于加速企业级应用的执行。由于 Hadoop 提供如此广泛的功能,可以适用于解决大量问题,也可以说,Hadoop 是基础框架。Hadoop 提供所有这些功能,因此应该将 Hadoop 归类为一个生态系统,它包含大量的组件,从数据存储到数据集成、数据处理以及数据分析师的专用工具。

2.1 大数据生态(Hadoop)

MapReduce

主要由Google Reduce而来,它简化了大型数据的处理,是一个并行的,分布式处理的编程模型。

hadoop2.0它是基于YARN框架构建的。YARN的全称是Yet-Another-Resource-Negotiator。Yarn可以运用在S3|Spark等上。

HDFS

它是由Google File System而来,全称是Hadoop Distributed File System,是Hadoop的分布式文件系统,有许多机器组成的,可以存储大型数据文件。

它是由NameNode和DataNode组成,NameNode可以配置成HA(高可用),避免单点故障。一般用Zookeeper来处理。两个NameNode是同步的。

Hive

它是Hadoop的数据仓库(DW),它可以用类似SQL的语言HSQL来操作数据,很是方便,主要用来联机分析处理OLAP(On-Line Analytical Processing),进行数据汇总|查询|分析。

HBase

它是由Google BigTable而来。是Hadoop的数据库。HBase底层还是利用的Hadoop的HDFS作为文件存储系统,可以利用Hadoop的MR来处理HBase的数据,它也通常用Zookeeper来做协同服务。

Zookeeper

它是一个针对大型分布式系统的可靠协调系统,在Hadoop|HBase|Strom等都有用到,它的目的就是封装好复杂易出错的关键服务,提供给用户一个简单|可靠|高效|稳定的系统。提供配置维护|分布式同步|名字服务等功能,Zookeeper主要是通过lead选举来维护HA或同步操作等

Pig

它提供一个引擎在Hadoop并行执行数据流。它包含了一般的数据操作如join|sort|filter等,它也是使用MR来处理数据。

Mahout

它是机器学习库。提供一些可扩展的机器学习领域经典算法的实现,目的是帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐算法等。

2.2  大数据架构

大数据架构师,是架构师的一种。如何学习才能成为大数据架构师?从数据库SQL到NoSQL,从新手到大师?我们来看这篇现身说法的文章。

先扯一下大数据的4V特征:

        1、数据量大,TB->PB

        2、数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

        3、商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

        4、处理时效性高,海量数据的处理需求不再局限在离线计算当中。

现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

· 文件存储:Hadoop HDFS

· 离线计算:Hadoop MapReduce、Spark

· 流式、实时计算:Storm、Spark Streaming

· K-V、NOSQL数据库:HBase、Redis、MongoDB

· 资源管理:YARN、Mesos

· 日志收集:Flume、Scribe、Logstash、Kibana

· 消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ

· 查询分析:Hive、Impala、Presto、Phoenix、SparkSQL、Flink、Kylin、Druid

· 分布式协调服务:Zookeeper

· 集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

· 数据挖掘、机器学习:Mahout、Spark MLLib

· 数据同步:Sqoop

· 任务调度:Oozie

2.3 Hadoop快速入门(官方有文档说明最新版本)

 Apache Hadoop 3.3.1 

支持的平台: 

  • GNU/Linux作为开发和生产平台受到支持。Hadoop已经在具有2000个节点的GNU/Linux集群上进行了演示。
  • Windows也是一个受支持的平台,但以下步骤仅适用于Linux。要在Windows上设置Hadoop,请参见wiki页面。

所需软件:

Linux所需的软件包括:

  1. JAVA™ 必须安装。HadoopJavaVersions中描述了推荐的Java版本。
  2. 如果要使用可选的启动和停止脚本,则必须安装ssh并运行sshd才能使用管理远程Hadoop守护进程的Hadoop脚本。此外,还建议安装pdsh以更好地管理ssh资源。

安装软件:

如果您的集群没有必要的软件,则需要安装它。
例如,在Ubuntu Linux上:

$ sudo apt-get install ssh
$ sudo apt-get install pdsh

下载:
要获得Hadoop发行版,请从一个Apache下载镜像下载最近的稳定版本。

准备启动Hadoop集群:
解压缩下载的Hadoop发行版。在发行版中,编辑文件etc/hadoop/hadoop-env.sh,定义一些参数如下:

 # set to the root of your Java installation
  export JAVA_HOME=/usr/java/latest

请尝试以下命令:

  $ bin/hadoop

这将显示hadoop脚本的用法文档。
现在,您可以使用以下三种支持的模式之一启动Hadoop群集:

独立操作:
        默认情况下,Hadoop被配置为在非分布式模式下作为单个Java进程运行。这对调试很有用。
下面的示例复制解压缩的conf目录作为输入,然后查找并显示给定正则表达式的每个匹配项。输出被写入给定的输出目录。

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'
$ cat output/*

伪分布式操作:
Hadoop还可以以伪分布式模式在单个节点上运行,其中每个Hadoop守护进程在单独的Java进程中运行。

配置
使用以下选项:
etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

 etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

安装无密码ssh:
现在检查您是否可以使用ssh连接到本地主机,而无需密码短语:

  $ ssh localhost

如果在没有密码短语的情况下无法ssh到localhost,请执行以下命令:

  $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  $ chmod 0600 ~/.ssh/authorized_keys

执行
以下说明用于在本地运行MapReduce作业。如果要在上YARN执行作业,参见 YARN on Single Node

格式化文件系统:

 $ bin/hdfs namenode -format

启动NameNode守护程序和DataNode守护程序:

 $ sbin/start-dfs.sh

hadoop守护程序日志输出被写入$hadoop\u log\u DIR目录(默认为$hadoop\u HOME/logs)。

浏览NameNode的web界面;默认情况下,它在以下位置可用:

  • NameNode - http://localhost:9870/

生成执行MapReduce作业所需的HDFS目录:

  $ bin/hdfs dfs -mkdir /user
  $ bin/hdfs dfs -mkdir /user/<username>

将输入文件复制到分布式文件系统:

  $ bin/hdfs dfs -mkdir input
  $ bin/hdfs dfs -put etc/hadoop/*.xml input

运行提供的一些示例:

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'

检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并进行检查:

  $ bin/hdfs dfs -get output output
  $ cat output/*

或者查看分布式文件系统上的输出文件:

 $ bin/hdfs dfs -cat output/*

完成后,使用以下命令停止守护程序:

  $ sbin/stop-dfs.sh 

YARN  在单个节点上

通过设置一些参数并另外运行ResourceManager守护程序和NodeManager守护程序,可以在YARN上以伪分布式模式运行MapReduce作业。
以下指令假设上述指令的1.~4.步骤已经执行。

  1. 配置参数如下:

    etc/hadoop/mapred-site.xml:

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.application.classpath</name>
            <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
        </property>
    </configuration>
    

    etc/hadoop/yarn-site.xml:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
        </property>
    </configuration>
    
  2. 启动ResourceManager守护程序和NodeManager守护程序:

      $ sbin/start-yarn.sh                 
  3.  浏览ResourceManager的web界面;默认情况下,它在以下位置可用:ResourceManager - http://localhost:8088/
  4. 运行MapReduce作业。

  5. 完成后,使用以下命令停止守护程序:

      $ sbin/stop-yarn.sh

 全分布式操作:
有关设置完全分布式的非平凡集群的信息,请参阅集群设置

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据生态系统是由多个组件构成的,这些组件相互之间通过数据的传输和处理进行连接,共同实现大数据的处理和分析。其中,hadoop生态系统是大数据生态系统中的一个重要组成部分。 hadoop生态系统的鱼骨图主要可以分为以下几个组件: 1. HDFS(Hadoop分布式文件系统):HDFS是hadoop生态系统中的分布式文件系统,它能够将大规模数据存储在集群的各个机器上,并提供高可靠性和高吞吐量的数据访问。 2. MapReduce:MapReduce是hadoop生态系统中的一种编程模型,用于处理大规模数据的并行计算。通过将任务分解为多个子任务,并在分布式环境中进行计算和结果的合并,MapReduce能够高效地处理大数据。 3. YARN(Yet Another Resource Negotiator):YARN是hadoop生态系统中的资源管理和作业调度框架,它负责分配集群中的计算资源,并协调各个作业的执行。YARN的出现使得hadoop生态系统能够同时运行多个并发作业,提高了系统的利用率和效率。 4. HBase:HBase是hadoop生态系统中的分布式非关系型数据库,它基于HDFS构建,具有高可靠性、高可扩展性和高性能的特点。HBase能够存储海量的结构化和半结构化数据,并支持快速的随机读写操作。 5. Hive:Hive是hadoop生态系统中的数据仓库工具,它提供了类似于SQL的查询语言,使得用户可以通过简单的SQL语句来查询和分析存储在hadoop集群中的数据。Hive的优势在于它能够将复杂的查询转化为MapReduce任务,从而实现对大规模数据的高效处理。 总之,hadoop生态系统的鱼骨图展示了其不同组件之间的关系和作用。通过理解和分析这些组件,可以更好地掌握和应用hadoop生态系统,实现对大数据的有效处理和分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值