随笔分类 - 大数据
摘要:随着企业内部业务系统越来越多,基于JVM的服务,通常情况线上环境可能会有多套JDK跑不同的服务。大家都知道基于高版本的Java规范编写的服务跑在低版本的JVM上会出现: 的异常。 Spark 2.2开始移除了对Java 7的支持,大多数情况下,我们的Spark Application是和Hadoop
阅读全文
摘要:原创文章,转载请保留出处 最近刚刚忙完Spark 2.2.0的性能测试及Bug修复,社区又要发布2.1.2了,国庆期间刚好有空,过了一遍2.1.2的相关 "JIRA" ,发现有不少重要修复2.2.0也能用上,接下来需要将有用的PR合到我们内部维护的2.2.0分支上了。 经常有朋友问我是怎么把社区的P
阅读全文
摘要:原创文章,谢绝转载 Spark 2.x自2.0.0发布到目前的2.2.0已经有一年多的时间了,2.x宣称有诸多的性能改进,相信不少使用Spark的同学还停留在1.6.x或者更低的版本上,没有升级到2.x或许是由于1.6相对而言很稳定,或许是升级后处处踩坑被迫放弃。 Spark SQL是Spark中最
阅读全文
摘要:原创文章,谢绝转载 笔者出于工作及学习的目的,经常与Spark源码打交道,也难免对Spark源码做修改及测试。本人一向讲究借助工具提升效率,开发Spark过程中也在摸索如何更加顺畅的对源码进行调试。 Spark基于Scala,采用IntelliJ IDEA和sbt应对日常开发,自然是最佳选择了。如何
阅读全文
摘要:让代码分布式运行是所有分布式计算框架需要解决的最基本的问题。 Spark是大数据领域中相当火热的计算框架,在大数据分析领域有一统江湖的趋势,网上对于Spark源码分析的文章有很多,但是介绍Spark如何处理代码分布式执行问题的资料少之又少,这也是我撰写文本的目的。 Spark运行在JVM之上,任务的
阅读全文
摘要:前言 在国内编译Spark项目需要从Maven源下载很多依赖包,官方源在国内大环境下的下载速度大家都懂得,那个煎熬啊,简直是浪费生命。 如果你的下载速度很快,你现在就可以无视这篇文章了。 阿里云给国内开发者提供了一个非常的良心的服务:提供了一个国内Maven镜像,可以让我们拜托这种煎熬。 地址信息
阅读全文
摘要:前言 最近为了解决Spark2.1的Bug,对Spark的源码做了不少修改,需要对修改的代码做编译测试,如果编译整个Spark项目快的话,也得半小时左右,所以基本上是改了哪个子项目就单独对那个项目编译打包。 Spark官方已经给出了如何使用mvn单独编译子项目的方法: 使用mvn单独编译子项目是节约
阅读全文
摘要:SparkSQL从2.0开始已经不再支持 这种语法了(下文简称add columns语法)。如果你的Spark项目中用到了SparkSQL+Hive这种模式,从Spark1.x升级到2.x很有可能遇到这个问题。 为了解决这个问题,我们一般有3种方案可以选择: 1. 启动一个hiveserver2服务
阅读全文
摘要:假设这里出错的表为test表。 现象 Hive读取正常,不会报错,Spark读取就会出现: 在hive中执行 然后找到hdfs存储路径。然后 会发现,报错的路径确实不存在。 这也能说明为什么Spark读取会报错,确实找不到那个路径了。 问题分析 在hive中执行 ,查看test表对应的所有分区。 看
阅读全文
摘要:鄙人使用的Hadoop版本为2.6.4。Hadoop的默认日志级别为INFO,对于百台以上的集群,如果文件操作频繁的话,NameNode会狂打日志,对性能会有一定的影响。 我们可以通过 在线修改NameNode的日志级别。如下所示: 但是,如果NameNode重启的话,又得重新设置,好麻烦。 怎么设
阅读全文
摘要:运行Spark服务,需要在每个节点上部署Spark。可以先从主节点上将配置修改好,然后把Spark直接scp到其他目录。## 关键配置修改`conf/spark-env.sh`文件:```export JAVA_HOME=/usr/java/latestexport HADOOP_CONF_DIR=...
阅读全文
摘要:## 配置文件:/etc/profile```export JAVA_HOME=/usr/java/latestexport HADOOP_PREFIX=/opt/hadoop-2.4.1export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib...
阅读全文
摘要:## 关于CDH和Cloudera ManagerCDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。...
阅读全文
摘要:MongoDB的更新操作涉及到4个参数:db.collection.update(criteria,objNew,upsert,multi)criteria:查询条件objNew:update对象和一些更新操作符upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为...
阅读全文
摘要:这里只记录几个要点,比较容易出问题的地方。1.各服务器必须有相同的用户(便于使用相同的用户ssh登录)2.ssh互通,配置无密码登录ssh-keygen -t rsa,将id_rsa.pub的内容相互复制到各主机的authorized_keys文件中,注意设置authorized_keys的权限为600(必须的,不然ssh登录时还是提示密码);修改/etc/ssh/ssh_config配置文件,启用RSA和公钥认证方式,并重启sshd服务。(为了保证可以通过ssh登录其他服务器,启动或停止hadoop)3.各主机配置好$HADOOP_HOME(用于ssh登录后确定Hadoop的安装路径),及$
阅读全文
摘要:说明及前期准备为什么要在windows下配置hadoop?最适合运行hadoop的平台是linux,毕竟hadoop的文件系统是基于linux的文件系统构建的。因此可选的hadoop运行方案有:真机下的Linux运行,虚拟机下的Linux运行,Windows中安装Cygwin运行。内存够大,CPU速度够快,想体验原生Linux环境又不想脱离开Windows可以借助虚拟机运行hadoop。Cygwin为我们模拟了一个Linux环境(去官网查看更多的介绍),在Windows中使用Cygwin的好处是不用安装Linux虚拟机,可以直接在Windows中执行伪Linux命令,对于常在Windows下工
阅读全文
摘要:安装环境Linux平台:CentOS;hadoop版本:1.0.4;安装方式:使用官网提供的rpm安装包安装;所遇问题将rpm包的hadoop卸载后,使用hadoop提供的bin包运行hadoop会受到原来hadoop配置的影响,bin包下的配置总是出错,无法运行hadoop。如,会提示:/etc/hadoop/master找不到之类的错误。解决方案卸载rpm包后,重启系统,问题解决。试分析原因,应该是rpm方式安装影响了类似/etc/profile这样的配置文件。
阅读全文