首页
学习
活动
专区
工具
TVP
发布

行者悟空

专栏作者
51
文章
79441
阅读量
22
订阅数
Apache Hive 安装详解及相关问题解决方案
摘 要 本文介绍hive工具的安装及整合mysql 下载Hive 点击hive官方下载 hive目前两个运行版本分为两个分支:1.x 、2.x 1.x主要是运行在MapReduce上面。 2.x主要运行在Spark上面。 安装及配置 上传并解压Hive 将Hive上传到hadoop集群服务器/itunic/目录下,并解压到当前目录。 tar -zxvf apache-hive-1.2.1-bin.tar.gz 2.将hive配置到环境变量 vi /etc/profile #set hive env ex
天策
2018-06-22
5950
Spark之集群概述
摘 要 本文简要地概述一下Spark是如何在集群上运行,让它更容易理解。 Spark 组件说明 Spark的应用程序作为一个独立的进程在Spark集群上运行,并由SparkContext对象(驱动程序)来运行你的主应用程序。 总体来说,应用程序在集群上运行,SparkContext可以连接一下几种的管理组件:Spark自身具有的管理器,Mesos或者Yarn,来实现将资源分配给应用程序。一旦运行起来,Spark就可以获得需要执行的集群节点,并为应用程序提供计算和数据存储。接下来Spark将应用程序发送给执
天策
2018-06-22
5280
以编程方式执行Spark SQL查询的两种实现方式
摘 要 在自定义的程序中编写Spark SQL查询程序 1.通过反射推断Schema package com.itunic.sql import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkConf, SparkContext} /**   * Created by itunic.com on 2017/1/2.   * Spark SQL   * 通过反射推断Schema   * by me:   * 我本沉默是关注互联
天策
2018-06-22
2K0
利用Apache Spark实现pv统计分析
摘 要 本文将介绍通过Apache Spark实现离线统计网站每日pv的思路及代码。 需求 将数据按照域名分组,然后按照日期升序排序,点击量降续排序。 代码及思路 **   * 简单的pv统计   */ object PageView {   def main(args: Array[String]): Unit = { if (args.length < 2) {       System.err.println("Usage: <file>")       System.exit(1)    
天策
2018-06-22
4080
Spark核心数据结构RDD的定义
摘 要 RDD是Spark最重要的抽象,掌握了RDD,可以说就掌握了Spark计算的精髓。它不但对理解现有Spark程序大有帮助,也能提升Spark程序的编写能力。 RDD是Spark最重要的抽象,掌握了RDD,可以说就掌握了Spark计算的精髓。它不但对理解现有Spark程序大有帮助,也能提升Spark程序的编写能力。 什么是RDD RDD的全称是“弹性分布式数据集”(Resilient Distributed Dataset)。首先,它是一个数据集,就像Scala语言中的Array、List、Tupl
天策
2018-06-22
1.5K0
Spark的共享变量
Spark程序的大部分操作都是RDD操作,通过传入函数给RDD操作函数来计算。这些函数在不同的节点上并发执行,内部的变量有不同的作用域,不能相互访问,有些情况下不太方便,所以Spark提供了两类共享变量供编程使用——广播变量和计数器。 1. 广播变量 这是一个只读对象,在所有节点上都有一份缓存,创建方法是SparkContext.broadcast(),比如: scala> val broadcastVar = sc.broadcast(Array(1, 2, 3)) broadcastVar: org.a
天策
2018-06-22
6120
Spark的容错机制
摘 要 分布式系统通常在一个机器集群上运行,同时运行的几百台机器中某些出问题的概率大大增加,所以容错设计是分布式系统的一个重要能力。 容错体系概述 Spark以前的集群容错处理模型,像MapReduce,将计算转换为一个有向无环图(DAG)的任务集合,这样可以通过重复执行DAG里的一部分任务来完成容错恢复。但是由于主要的数据存储在分布式文件系统中,没有提供其他存储的概念,容错过程需要在网络上进行数据复制,从而增加了大量的消耗。所以,分布式编程中经常需要做检查点,即将某个时机的中间数据写到存储(通常是分布式
天策
2018-06-22
1.9K0
Spark RDD中的持久化
持久化在早期被称作缓存(cache),但缓存一般指将内容放在内存中。虽然持久化操作在绝大部分情况下都是将RDD缓存在内存中,但一般都会在内存不够时用磁盘顶上去(比操作系统默认的磁盘交换性能高很多)。当然,也可以选择不使用内存,而是仅仅保存到磁盘中。所以,现在Spark使用持久化(persistence)这一更广泛的名称。 如果一个RDD不止一次被用到,那么就可以持久化它,这样可以大幅提升程序的性能,甚至达10倍以上。默认情况下,RDD只使用一次,用完即扔,再次使用时需要重新计算得到,而持久化操作避免了这里的
天策
2018-06-22
7080
让Spark运行在YARN上(Spark on YARN)
在Spark Standalone模式下,集群资源调度由Master节点负责。Spark也可以将资源调度交给YARN来负责,其好处是YARN支持动态资源调度。Standalone模式只支持简单的固定资源分配策略,每个任务固定数量的core,各Job按顺序依次分配资源,资源不够时排队等待。这种策略适用单用户的场景,但在多用户时,各用户的程序差别很大,这种简单粗暴的策略很可能导致有些用户总是分配不到资源,而YARN的动态资源分配策略可以很好地解决这个问题。关于资源调度,第3章中还会详细讲解。 另外,YARN作
天策
2018-06-22
4.1K0
利用Spark通过nginx日志离线统计网站每日pv
摘 要 本文将介绍通过Apache Spark实现离线统计网站每日pv的思路及代码。 前言 在此之前,利用mapreduce实现了一版通过nginx日志离线分析网站每日pv,感兴趣的可以去看一下。本文实现思路与之前mapreduce的思路一致。可以很好的比较mapreduce和Spark的写法。在个人看来,Spark写起来更加优美简洁,有一种四两拨千斤的感觉。 想了解实现思路的,可以看一下利用Mapreduce实现的文章,详细思路已经阐述。 点击查看->利用HadoopMareduce实现pv统计分析 本
天策
2018-06-22
1.8K0
将SparkSQL计算结果写入Mysql中
编写代码 package com.itunic.sql import java.util.Properties import org.apache.spark.sql.{Row, SQLContext} import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType} import org.apache.spark.{SparkConf, SparkContext} /**   * Create
天策
2018-06-22
3K0
利用Spark RDD实现分组并排序
摘 要 本文将介绍利用Spark RDD实现分组并排序。 前言 被朋友问到Spark分组并排序怎么实现?当时,本人觉得So-Easy的问题。因为在MapReduce也会有类似的需求,相较于MapReduce,那Spark的实现简直简单爆了。but,依然阴沟翻船,具体思路是没有错的,但在纸上描述代码的时候出现了错误,这其实就是归根于用IDE的代价吧。好多东西,不需要刻意的去记忆。反思... ...所以在ide上手动实现了一遍Spark RDD 分组并排序,以示警戒。 思路 思路很简单,就是按照key分组,并
天策
2018-06-22
4.8K0
Spark DAG调度
SparkContext在初始化时,创建了DAG调度与Task调度来负责RDD Action操作的调度执行。 DAGScheduler DAGScheduler负责Spark的最高级别的任务调度,调度的粒度是Stage,它为每个Job的所有Stage计算一个有向无环图,控制它们的并发,并找到一个最佳路径来执行它们。具体的执行过程是将Stage下的Task集提交给TaskScheduler对象,由它来提交到集群上去申请资源并最终完成执行。 DAGScheduler的定义位于scheduler/DAGSched
天策
2018-06-22
7920
SparkContext初始化过程
SparkContext在构造的过程中,已经完成了各项服务的启动。因为Scala语法的特点,所有构造函数都会调用默认的构造函数,而默认构造函数的代码直接在类定义中。 除了初始化各类配置、日志之外,最重要的初始化操作之一是启动Task调度器和DAG调度器,相关代码如下: // 创建并启动Task调度器 val (sched, ts) = SparkContext.createTaskScheduler(this, master) _schedulerBackend = sched _taskScheduler
天策
2018-06-22
6570
Spark RDD的Shuffle
Shuffle的概念来自Hadoop的MapReduce计算过程。当对一个RDD的某个分区进行操作而无法精确知道依赖前一个RDD的哪个分区时,依赖关系变成了依赖前一个RDD的所有分区。比如,几乎所有<key, value>类型的RDD操作,都涉及按key对RDD成员进行重组,将具有相同key但分布在不同节点上的成员聚合到一个节点上,以便对它们的value进行操作。这个重组的过程就是Shuffle操作。因为Shuffle操作会涉及数据的传输,所以成本特别高,而且过程复杂。 下面以reduceByKey为例来介
天策
2018-06-22
6070
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档