Apache Spark探秘:如何利用Intellij IDEA构建开发环境



Apache Spark探秘:如何利用Intellij IDEA构建开发环境。前段时间写了几篇使用Eclipse构建Spark源码阅读和开发环境的文章。经过一段时间的试用,发现Eclipse在Scala支持方面很不完善,体验非常差,因此转而使用Intellij IDEA,本文介绍如何使用Intellij IDEA构建Spark源码阅读和开发环境。

 

(1)准备工作

1)  安装JDK 6或者JDK 7

2)  安装scala 2.10.x (注意版本)

2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Ed[......]

Read more

Hadoop YARN最近几个新特性



本文介绍Hadoop YARN最近版本中增加的几个非常有用的特性,包括:
(1)ResourceManager HA
在apache hadoop 2.4或者CDH5.0.0版本之后,增加了ResourceManger HA特性,支持基于Zookeeper的热主备切换,具体配置参数可以参考Cloudera的文档:ResourceManager HA配置。
需要注意的是,ResourceManager HA只完成了第一个阶段的设计,即备ResourceManager启动后,会杀死之前正在运行的Application,然后从共享存储系统中读取这些Application的元数据信息,并重新提交[......]

Read more

Apache Twill—YARN上应用程序开发包图文教程

Apache Twill—YARN上应用程序开发包图文教程。尽管YARN自带的编程API已经得到了极大的简化,但从头开发一个YARN应用程序仍是一件非常困难的事情。在YARN上编写一个应用程序,你需要开发Client和ApplicationMaster两个模块,并了解涉及到的几个协议的若干API和参数列表,其中ApplicationMaster还要负责资源申请,任务调度、容错等,总之,整个过程非常复杂。

 

Apache Twill(官方首页:Apache Twill)这个项目则是为简化YARN上应用程序开发而成立的项目,该项目把与YARN相关的重复性的工作封装成库,使得[......]

Read more

如何从10亿大量数据中查询词找出出现频率最高的10个

如何从10亿大量数据中查询词找出出现频率最高的10个。

1. 问题描述

在大规模数据处理中,常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载率最高的前10首歌等等。

2. 当前解决方案

针对top k类问题,通常比较好的方案是【分治+trie树/hash+小顶堆】,即先将数据集按照hash方法分解成多个小数据集,然后使用trie树或者hash统计每个小数据集中的query词频,之后用小顶堆求出每个数据集中出频率最高的前K个[......]

Read more

c++位图排序图文介绍

c++位图排序图文介绍。

一.位图排序的应用:

1.给40亿个不重复的unsigned int的整数,没有排过序,然后再给一个数,如果快速判断这个数是否在那40亿个数当中。

因为unsigned int数据的最大范围在在40亿左右,40*10^8/1024*1024*8=476,因此只需申请512M的内存空间,每个bit位表示一个unsigned int。读入40亿个数,并设置相应的bit位为1.然后读取要查询的数,查看该bit是否为1,是1则存在,否则不存在。

2.给40亿个unsigned int的整数,如何判断这40亿个数中哪些数重复?

同理,可以申请512[......]

Read more

c++判断有向图是否有环 、环的个数以及环中元素

c++判断有向图是否有环 、环的个数以及环中元素。判断有向图是否有环有三种方法:拓扑排序、深度遍历+回溯、深度遍历 + 判断后退边

这里使用 拓扑排序 和 深度遍历 + 回溯判断是不是环。使用 深度遍历 + 判断后退边找出环个数 以及环中元素

1、拓扑排序

思想:找入度为0的顶点,输出顶点,删除出边。循环到无顶点输出。

若:输出所有顶点,则课拓扑排序,无环;反之,则不能拓扑排序,有环

使用:可以使用拓扑排序为有向无环图每一个结点进行编号,拓扑排序输出的顺序可以为编号顺序

源代码:

    [......]

Read more

c++有向图中顶点的路径问题

c++有向图中顶点的路径问题。

主要解决三个问题:

前提:有向图+邻接矩阵存储

问题1、判断有向图中是否存在顶点u到v的路径

问题2、求u到v的所有简单路径

问题3、求u到v长度为k的简单路径

具体如下:

问题1:判断有向图中是否存在顶点u到v的路径

方法:可以使用深度遍历或广度遍历

源代码:

  1. #include <iostream>
  2. using namespace std;
  3. const int MAX_Vertex_Num = 20;
  4. templ[......]

Read more

c++递归学习_组合_类循环组合排列

c++递归学习_组合_类循环组合排列。

Sample Input:
4 2

Sample Output

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

实例分析:例子中,每一位都可以是0或1,这就可以直接为其赋值,递归下去为止

[cpp] view plaincopy
#include <iostream>
using namespace std;[......]

Read more

c++非重复组合排列(含重复数字时,生成不重复组合排列)

c++非重复组合排列(含重复数字时,生成不重复组合排列)。

Sample Input
4

1 2 2 3

Sample Output

1223

1232

1322

2123

2132

2213

2231

2312

2321

3122

3212

3221

分析数据:这里和不含重复数据生成全组合排列代码是不同的,如果使用原代码会出现重复的数据,主要原因是在递归的时候,会把那些重复的数字当作不同的数字利用,而平等对待,直接进行递归。我们要做的就是把相同的数区分出来,我们这里可以引入一个数组mat,专门记[......]

Read more