随笔分类 - 大数据
摘要:### Spark SQL Spark SQL和我们之前讲Hive的时候说的hive on spark是不一样的。 hive on spark是表示把底层的mapreduce引擎替换为spark引擎。 而Spark SQL是Spark自己实现的一套SQL处理引擎。 Spark SQL是Spark中的
阅读全文
摘要:### 性能优化分析 一个计算任务的执行主要依赖于CPU、内存、带宽 Spark是一个基于内存的计算引擎,所以对它来说,影响最大的可能就是内存,一般我们的任务遇到了性能瓶颈大概率都是内存的问题,当然了CPU和带宽也可能会影响程序的性能,这个情况也不是没有的,只是比较少。 Spark性能优化,其实主要
阅读全文
摘要:### 宽依赖和窄依赖 - 窄依赖(Narrow Dependency):指父RDD的每个分区只被子RDD的一个分区所使用,例如map、filter等这些算子 一个RDD,对它的父RDD只有简单的一对一的关系,也就是说,RDD的每个partition仅仅依赖于父RDD中的一个partition,父R
阅读全文
摘要:### 创建RDD RDD是Spark编程的核心,在进行Spark编程时,首要任务是创建一个初始的RDD,这样就相当于设置了Spark应用程序的输入源数据 然后在创建了初始的RDD之后,才可以通过Spark 提供的一些高阶函数,对这个RDD进行操作,来获取其它的RDD Spark提供三种创建RDD方
阅读全文
摘要:### WordCount程序 这个需求就是类似于我们在学习MapReduce的时候写的案例 需求这样的:读取文件中的所有内容,计算每个单词出现的次数 注意:由于Spark支持Java、Scala这些语言,目前在企业中大部分公司都是使用Scala语言进行开发,个别公司会使用java进行开发,为了加深
阅读全文
摘要:### 什么是Spark Spark是一个用于大规模数据处理的统一计算引擎 注意:Spark不仅仅可以做类似于MapReduce的离线数据计算,还可以做实时数据计算,并且它还可以实现类似于Hive的SQL计算,所以说它是一个统一的计算引擎 既然说到了Spark,那就不得不提一下Spark里面最重要的
阅读全文
摘要:### 为什么要学习Scala语言 - 最直接的一点就是因为我们后面要学的Spark框架需要用到Scala这门语言,但是Spark其实是同时支持Scala语言和Java语言的,为什么非要学Scala呢,使用java难道不香吗? - 这就要说第二点了:scala相比java代码量更少,更适合函数式编程
阅读全文
摘要:### Hbase简介 Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型,辅助索引,触发器,和高级查询语言等待。那Hbas
阅读全文
摘要:### 一个SQL语句的分析 ```sql SELECT a.Key, SUM(a.Cnt) AS Cnt FROM ( SELECT Key, COUNT(*) AS Cnt FROM TableName GROUP BY Key, CASE WHEN Key = 'KEY001' THEN Ha
阅读全文
摘要:### 函数的基本操作 和mysql一样的,hive也是一个主要做统计的工具,所以为了满足各种各样的统计需要,它也内置了相当多的函数 ```sql show functions; # 查看所有内置函数 desc function functionName; # 查看指定函数的描述信息 desc fu
阅读全文
摘要:### Event Event是Flume传输数据的基本单位,也是事务的基本单位,在文本文件中,通常一行记录就是一个Event Event中包含header和body; - body是采集到的那一行记录的原始内容 - header类型为Map,里面可以存储一些属性信息,方便后面使用 我们可以在Sou
阅读全文
摘要:### 什么是Flume Flume是一个高可用,高可靠,分布式的海量日志采集、聚合和传输的系统,能够有效的收集、聚合、移动大量的日志数据。 通俗一点来说就是Flume是一个很靠谱,很方便、很强的日志采集工具。它是目前大数据领域数据采集最常用的一个框架 为什么它这么香呢?主要是因为使用Flume采集
阅读全文
摘要:在MySQL中没有表类型这个概念,因为它就只有一种表。但是Hive中是有多种表类型的,我们可以分为四种,内部表、外部表、分区表、桶表 下面来一个一个学习一下这些类型的表 ### 内部表 内部表也可以称为受控表,它是Hive中的默认表类型,表数据默认存储在 warehouse 目录中。 在加载数据的过
阅读全文
摘要:### Hive中数据库的操作 ```sql show databases; # 查看数据库列表 use default; # 选择数据库 create database mydb1; # 创建数据库 create database mydb2 location '/user/hive/mydb2'
阅读全文
摘要:### Hive的使用方式 可以在Shell命令行下操作Hive,或者使用JDBC代码的方式操作 ### 命令行方式 针对命令行这种方式,其实还有两种使用 - 第一个是使用bin目录下的hive命令,这个是从hive一开始就支持的使用方式 - 后来又出现一个beeline命令,它是通过HiveSer
阅读全文
摘要:### 原生命令 正常情况我们是通过以下命令来停止和开启集群的 ```sh sbin/stop-all.sh sbin/start-all.sh ``` 但有时候不生效,通过ps还能查看到,但jps命令查看不到 ### 自定义停止命令 ```sh #!/bin/bash # 停止hadoop进程 h
阅读全文
摘要:### 什么是Hive Hive是建立在Hadoop上的数据仓库基础架构。它提供了一系列的工具,可以用来进行数据提取转化加载,可以简称为ETL。 Hive 定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户直接查询Hadoop中的数据,同时,这个语言也允许熟悉MapReduce的开发者
阅读全文
摘要:### YARN的由来 从Hadoop2开始,官方把资源管理单独剥离出来,主要是为了考虑后期作为一个公共的资源管理平台,任何满足规则的计算引擎都可以在它上面执行。所以YARN可以实现HADOOP集群的资源共享,不仅仅可以跑MapReduce,还可以跑Spark、Flink。 ### YARN架构分析
阅读全文
摘要:现在我们已经掌握了MapReduce程序的开发步骤,注意了,针对MapReduce的案例我们并不需要学习太多,主要是因为在实际工作中真正需要我们去写MapReduce代码的场景已经是凤毛麟角了,因为后面我们会学习一个大数据框架Hive,Hive支持SQL,这个Hive底层会把SQL转化为MapRed
阅读全文
摘要:### 前言 前面我们学习了Hadoop中的HDFS,HDFS主要是负责存储海量数据的,如果只是把数据存储起来,除了浪费磁盘空间,是没有任何意义的,我们把数据存储起来之后是希望能从这些海量数据中分析出来一些有价值的内容,这个时候就需要有一个比较厉害的计算框架,来快速计算这一批海量数据,所以MapRe
阅读全文