- 博客(28)
- 资源 (7)
- 收藏
- 关注
原创 Hive on Spark源码分析(六)—— RemoteSparkJobMonitor与JobHandle
RemoteSparkJobMonitor负责监控一个RSC远程任务的执行状态。它会循环获取任务的执行情况,直到任务完成/失败/kill掉,并将当前任务的状态打印到console。RemoteSparkJobMonitor中主要的方法就是startMonitor,它会根据任务执行的不同情况修改返回码,调用过程是:SparkTask.execute => rc=jobRef.monitorJ
2016-08-17 15:55:40 2274
原创 Hive on Spark源码分析(五)—— RemoteDriver
RemoteDriver与SparkClient进行任务交互,并向Spark集群提交任务的。SparkClientImpl中通过调用RemoteDriver.main在新进程中启动了RemoteDrivermain函数public static void main(String[] args) throws Exception { new RemoteDriver(a
2016-08-17 01:12:42 4222 1
原创 Hive on Spark源码分析(四)—— SparkClilent与SparkClientImpl(下)
SparkClientImpl提交任务的方法是submit方法,在HiveSparkClient中被调用,提交SparkSession需要提交的任务,其内部其实是调用了内部类ClientProtocol的submit方法: @Override public T extends Serializable> JobHandleT> submit(JobT> job) {
2016-08-17 01:04:00 2333
原创 Hive on Spark源码分析(三)—— SparkClilent与SparkClientImpl(上)
SparkClient接口定义了远程Spark客户端的API// 提交一个异步执行的job,返回一个用于监控job的JobHandleT extends Serializable> JobHandleT> submit(JobT> job);// 请求远程context执行job。该方法忽视job队列,建议仅用于执行快速结束的任务。// 返回一个用于监控job的Future结果T exte
2016-08-17 00:59:26 3579
原创 Hive on Spark源码分析(二)—— SparkSession与HiveSparkClient
在Hive on Spark源码分析(一)—— SparkTask中已经介绍到,SparkSession是HOS任务提交的起点。在HOS的代码实现中,SparkSession是一个接口,具体的实现类是SparkSessionImpl,因此我们直接进入到SparkSessionImpl内部进行分析。首先是初始化://通过makeSessionId,随机生成一个id就可以初始化一个sp
2016-08-17 00:54:35 4057
原创 Hive on Spark源码分析(一)—— SparkTask
之所以首先分析SparkTask的源码的原因,是根据Hive on Spark的运行模式和任务提交流程的出来的。首先我们看一下Hive on Spark运行模式: Hive on Spark(HOS)目前支持两种运行模式:本地(local)和远程(remote)。当用户把Spark Master URL设置为local时,采用本地模式;其余情况则采用远程模式。本地模式下,Spark
2016-08-17 00:52:17 3450
转载 Spark配置参数
以下是整理的Spark中的一些配置参数,官方文档请参考Spark Configuration。Spark提供三个位置用来配置系统:Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置环境变量:可以通过每个节点的conf/spark-env.sh脚本设置。例如IP地址、端口等信息日志
2016-01-26 13:45:19 3601
转载 Spark性能优化——序列化、内存、并行度、数据存储格式、Shuffle
序列化背景:在以下过程中,需要对数据进行序列化:shuffling data时需要通过网络传输数据RDD序列化到磁盘时性能优化点:Spark默认的序列化类型是Java序列化。Java序列化的优势是兼容性好,不需要自已注册类。劣势是性能差。为提升性能,建议使用Kryo序列化替代默认的Java序列化。Kryo序列化的优势是速度快,体积小,劣势是兼容性差,需要自已注册类。
2016-01-15 15:42:54 1926
转载 常见的Hash算法
哈稀函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度可以得到一个公认的结论:哈希函数之间性能的比较可以通过比较其在伪随机生成方面的比较来衡量。一些常用的分析技术,例如泊松分布可用于分析不同的哈希函数对不同的数据的碰撞率(collision rate)。一般来说,对任意一类的数据存在一个理论上完美的哈希函数。这个完美的哈希函数定义是没有发生任何碰撞,这意味着没有出现重复的散列值。
2016-01-15 14:51:38 1574
原创 解决“org.apache.hadoop.security.AccessControlException”
在运行某个Spark Application的时候,需要向Hdfs写入文件,控制台会输出以下错误信息:Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=Administrator, access=WRI
2015-12-09 09:55:33 24410 11
原创 LIRE原理与源码分析(一)——代码结构
LIRE:Lucene Image Retrieval1. LIRE原理与源码分析(二)—— 代码结构2. LIRE原理与源码分析(二)—— 相关接口LIRE是一个基于Lucene实现的开源图像检索引擎,最早是由澳大利亚人Mathsia Lux用Java语言开发的。使用LIRE进行图像检索的过程可以概括为两部分:构建索引和查询。首先,LIRE可以读取一个目录内的图片,并基于多种不同的图像特征提取算法
2015-11-07 19:19:34 2379
原创 LIRE原理与源码分析(二)——相关接口
上一篇文章介绍了LIRE的基本内容和源码的代码结构。本文针对LIRE中主要的三个接口(LireFeature、DocumentBuilder、ImageSearcher)的相关内容进行分析。LireFeatureLireFeature是一个图像特征的Interface,其中定义了很多跟图像特征相关的方法,最重要的两个是extract()和getDistance()。extract()方法负责从图
2015-11-07 19:07:24 2238
原创 Spark 共享变量——累加器(accumulator)与广播变量(broadcast variable)
我们传递给Spark的函数,如map(),或者filter()的判断条件函数,能够利用定义在函数之外的变量,但是集群中的每一个task都会得到变量的一个副本,并且task在对变量进行的更新不会被返回给driver。而Spark的两种共享变量:累加器(accumulator)和广播变量(broadcast variable),在广播和结果聚合这两种常见类型的通信模式上放宽了这种限制。
2015-11-05 11:55:29 6942
原创 E2LSH的原理与实现
E2LSH一个是用来解决高维空间近邻搜索问题的工具包。E2LSH实现了R-NN问题的随机化解决方案,即(R, 1 −δ )-near neighbor:每个满足||q-p||2 ≤ R的点p被报告的概率至少为1 −δ。E2LSH的实现基于基本的LSH模式。
2015-10-19 21:16:03 9394 3
原创 Multi-Probe LSH原理分析
Multi-Probe LSHMulti-Probe LSH,即多探寻的局部敏感哈希,由Qin Lv、William Josephson、Zhe Wang、Moses Charikar、Kai Li在发表于VLDB 2007中的论文《MultiProbe LSH: Efficient Indexing for HighDimensional Similarity Search》中提出。该方法针对基本
2015-10-09 23:57:34 4573 2
原创 LSB-Tree:Locality Sensitive B-Tree原理分析
LSB-Tree原理分析Locality Sensitive B-Tree是Yufei Tao、Ke Yi、Cheng Sheng、Panos Kalnis在发表于SIGMOD 2009的论文:Quality and Efficiency in High Dimensional Nearest Neighbor Search 中提出来的一种用来解决高维空间最近邻搜索的方法。在很多应用场景中,高维
2015-10-05 17:02:02 2379
原创 Spark错误:WARN TaskSchedulerImpl: Initial job has not accepted any resources;
在windows环境下使用Intellij idea远程执行spark程序时,遇到了以下问题: Intellij控制台输出警告:WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and hav
2015-05-13 16:59:10 3672
原创 win7双网卡同时上内、外网
需要同时上内、外网的情况在生活中很常见,因为无论在企业还是在学校实验室,一般都有自己内部的工作或科研网络,以便进行内部交流、访问内部资源和保证内部数据安全性;同时我们在工作和学习过程中一定会需要通过外网查阅很多资料。此时在使用双网卡时,总是需要禁用一个,才能访问另一个的网络。本文就介绍一下win7环境下如何同时访问内网和外网。内外网的IP分配内网:IP地址:10.0.xxx.xxx 掩码:25
2015-05-13 11:12:59 5458
原创 使用Intellij IDEA开发并提交Spark应用到远程Spark集群
使用Intellij IDEA开发Spark应用,并提交到远程Spark集群执行通常我们写了一个spark程序,总是需要将程序打成jar包然后提交到集群执行,这样很麻烦,因此本文想说明通过像在eclipse中远程开发和执行Hadoop Job一样,使用Intellij IDEA开发Spark应用,并能够直接在IDE中提交作业到远程集群去执行,在console中看到输出结果或者各种错误原因。环境与工具
2015-05-06 09:01:54 18405 5
原创 MongoDB使用心得
在使用MongoDB过程中从片键的选择、分片配置等方面总结了以下一些经验。片键的选择 如果在某集合中一个键有N个值,那就只能有N个数据块,因此只能有N个分片。所以避免使用单一的小基数片键,如果要使用小基数片键,务必使用组合片键。如果一个集合有生命周期,使用该生命周期作为片键。不要使用升序键,这会使所有新插入的数据都插入到最后一个分片上。每个键上都有索引,而索引数量的增加会使
2015-02-08 11:37:42 1103
原创 CentOS下多节点Openstack安装(五)—— cinder安装
安装cinder服务器1. 安装cinderyum install openstack-cinderopenstack-utils openstack-selinux2. 配置cinder meta信息:openstack-config --set /etc/cinder/cinder.conf database connectionmysql://cinder:
2015-02-08 11:27:28 1373
原创 CentOS下多节点Openstack安装(三)—— glance安装
在controller节点上进行glance组件的部署1. 安装glance组件yum install openstack-glance2. 修改glance配置文件openstack-config--set /etc/glance/glance-api.conf DEFAULT sql_connectionmysql://glance:111111@contr
2015-02-08 11:26:33 1149
原创 CentOS下多节点Openstack安装(四)—— Nova安装
controller节点的部署1. 安装yum install openstack-nova python-novaclient2. 修改nova配置文件,配置数据库openstack-config --set /etc/nova/nova.conf database connection mysql://nova:111111@controller/nova open
2015-02-06 19:41:32 1162
原创 MongoDB控制与管理常用工具和指令
一、 关闭服务Use admin –> db.shutdownServer()不要用 kill -9 杀死mongo进程,会导致数据损坏二、 权限认证启动时加上 –auth 参数,然后在admin库中添加一个用户:db.addUser(name,passwd,isReadOnly)三、 进程控制Db.currentOp() ——查看进程Db.killOp(opid
2015-02-06 14:57:54 886
原创 CentOS下多节点Openstack安装(二)—— Keystone安装
1. 安装并配置依赖环境a).安装周边环境yum install ntpyum install qpid-cpp-server memcachedyum install mysql mysql-server MySQL-pythonservice mysqld startchkconfig mysqld on mysql_secure_installation
2015-02-06 14:25:33 1031
原创 实现MongoDB与Hadoop的连接
去年先后学习了MongoDB与Hadoop,后来因为需要,研究了下如何实现Hadoop与MongoDB的连接,即使用Hadoop从MongoDB中读取数据,处理得到想要的数据后再写入MongoDB中。当时由于对MapReduce编程还不是很熟悉,因此还是花了几天时间。后来完整地看了下MapReduce编程,才明白其实只要定义好自己的输入输出格式类,是可以实现从任何数据库(只要有相应的Java AP
2015-02-05 18:17:38 2132
原创 Ubuntu下彻底卸载MySql数据库
unbuntu下彻底卸载mysql:apt-get autoremove --purge mysql-serverapt-get remove mysql-serverapt-get remove mysql-clientapt-get remove mysql-common最后清楚残留数据(important!!!):dpkg -l | grep ^rc|aw
2015-02-04 14:48:22 1148
神经网络与深度学习(Michael Nielsen)
2018-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人