java
大数据运维
大数据运维研发SRE
展开
-
Linux多版本JDK刷新JAVA_HOME
使用Linux/Mac时间,有时候存在多个版本的JDK,而某些编译需要java_home设置,单纯的java/javac/javah无法满足需求。因此在变更java的时候,期望可以自动设置java_home的路径。使用linux命令配置bash_profile可以自动获取当前java版本对应的java_home,设置如下export CURRENT_PATH=`ls -l /etc/alt...原创 2019-09-15 09:58:26 · 828 阅读 · 0 评论 -
Kafka->SparkStreaming->Hbase【二】
根据业务需求,将Kafka中数据抽取插入到Hbase中。目前网上可以找到许多相关的文章,这里介绍Github上的一个开源工具。 上一章节讲到选择SparkOnHbase为主要原型,将之修改为我们需要的源代码。这里给出修改之后的源代码,修改之后符合我们的业务需求,并尽量避免引起其他不必要的问题。同时,后期优化程序执行效率问题。源代码class HBaseContext( @...原创 2018-05-16 20:46:26 · 1381 阅读 · 0 评论 -
Java Queue整理
《Java并发编程 从入门到精通》读书笔记。原创 2018-05-15 20:26:55 · 627 阅读 · 0 评论 -
Java同步辅助类总结
《Java并发编程 从入门到精通》读书笔记。原创 2018-05-13 11:52:07 · 631 阅读 · 0 评论 -
Java安全集合类
《Java并发编程 从入门到精通》读书笔记。Java集合类非常方便,但适用于现成安全场景下的集合类平常使用的比较少一点,主要是ConcurrentHashMap。原创 2018-05-13 10:57:19 · 1253 阅读 · 0 评论 -
Java单例模式的几种写法
《Java并发编程 从入门到精通》读书笔记。错误模式该种模式,不安全也不正确class Test{ private static Test instance; privae Test(){} public static Test getInstance(){ if(null==instance) instance = ...原创 2018-05-13 10:24:07 · 577 阅读 · 0 评论 -
HiveServer遇到一个问题
基于给开发同学使用与BI用户使用的需求,打算开启HiveServer2服务,集群上面的Hive任务执行、调度,都走HiveServer2方式。之前只有调度任务与开发同学使用,所以使用的是Hive CLI方式,开发同学没有添加权限控制。 使用一段时间之后,发现HiveServer2存在各种问题。突出的问题就是不稳定、运行日志很难获取、任务ID需要解析等,最近遇到一个概率性出现的问题。I...原创 2018-05-12 09:15:14 · 1114 阅读 · 0 评论 -
调度工具技术选型与开发参考
无论是自研调度工具,还是技术选型,都需要实先确定自己的业务需求,今儿根据具体的业务需求进行相关的研究与开发工作。 主要是个人记录日常事物,读者仅供参考。一、调度工具目标1、支持依赖配置:任务间依赖2、支持定时任务与临时任务,灵活配置与启动停止3、支持分布式运行任务4、支持触发式运行任务:存在依赖的任务,上游任务运行结束,可以触发下游任务的运行5、软件要求...原创 2018-03-15 11:51:04 · 1331 阅读 · 1 评论 -
记一个Spark模块Hive-thriftserver编译报错
[ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile (scala-compile-first) on project spark-hive-thriftserver_2.10: Execution scala-compile-first of goal net.alchim31.mav...原创 2018-02-26 16:53:58 · 1593 阅读 · 1 评论 -
Maven使用各种问题汇总
查找损坏Jar find ~/.m2/repository/ -name "*jar" | xargs -L 1 zip -T | grep error | grep invalid原创 2018-06-07 14:10:21 · 1099 阅读 · 0 评论 -
HDFS之我遇到的各种问题
Hostname问题问题描述Datanode denied communication with namenode because hostname cannot be resolved (ip=xx.xx.xx.xx, hostname=xx.xx.xx.xx) at org.apache.hadoop.hdfs.server.blockmanagement.Datanode...原创 2018-06-07 20:03:51 · 2818 阅读 · 0 评论 -
翻译: Flink vs. Spark
在流处理技术框架的技术选型中,Storm/Spark/Flink进入视线。其中简单分析,就除去了Storm选项。Spark Streaming与Flink在流处理方面相差不大,甚至小规模流处理时可以直接使用Spark Streaming,因此需要详细的对比一下它们两者之间的共性与不同点。 本文是一篇译文,翻译自:Apache Spark vs. Apache Flink 。引言 Ap...翻译 2018-10-31 14:17:04 · 1034 阅读 · 0 评论 -
Oracle JDBC为什么不能在Maven中直接配置?
在实际项目中,我们通常使用这样的方式:首先,下载ODBC的Jar到本地;然后,通过Maven安装在本地库中。这样在项目中就可以使用ODBC的Jar包了,而大部分的jar是可以通过Maven中直接引用的。这是为什么呢?项目报错 项目直接编译,报错如下Failed to execute goal on project sql2o-oracle: Could not reso...原创 2018-09-12 16:38:29 · 2086 阅读 · 0 评论 -
Hive复杂类型的导入
Hive是大数据体系下ETL、数据预处理、数仓等领域比较重要的组件,应用广泛。博主空闲时间研究一下Hive的数据类型。1. Hive数据类型组成 关于Hive的数据类型,官方文档展示的比较全面,关于数据类型的详细说明Hive数据类型,这里总结如下 大类 类型 具体类型 基本类型 数值型 tinyint,smallint,int,bigint,...原创 2018-08-11 18:07:32 · 744 阅读 · 0 评论 -
Hive相关的两个疑问[一]
从疑问出发,寻根问底探究原理: 1. Hive CLI/Hive Beeline/Hive JDBC断开连接之后,运行在Yarn上的任务是否继续运行? 2. 我们知道JDBC是无法做缓存的,那么HUE是如何实现缓存功能的? 本部分研究第一个问题,即客户端的状态是否影响Yarn上正在运行的任务。 首先我们从现象谈起然后逐渐找到问题的答案,既是一个解疑的过程也是一个探究研究问题...原创 2018-07-05 20:40:42 · 2556 阅读 · 0 评论 -
Alibaba DataX调研使用
接触DataX是基于公司离线数据同步需求,从而开始接触到DataX的使用。前异构数据之间开源同步工具,主要有Sqoop Sqoop是一款开源的工具,主要用于Hadoop与传统RDBMS之间的数据同步,可以将RDBMS中的数据同步到HDFS中,也可以进行逆向操作。主要是基于MR任务的进行同步,具有支持并发、增量更新、支持海量数据同步等优点。 Sqoop Wiki Sqoo...原创 2018-06-26 23:01:08 · 9457 阅读 · 0 评论 -
Chromeheadless安装与使用
如果是小规模爬虫或模拟效果要求不高的话,使用Selenium HtmlUniDriver基本可以满足需求。但HtmlUnitDriver是基于JS模拟浏览器原理,存在许多浏览器可以做,但它其实无法操作的功能,比如截图等高级功能。 之前爬虫使用Phantomjs,感觉效果还不错,而且使用方便。Phantomjs可以设置远程模式,方便本地调试;方便设置代理,但这里有一个坑,就是代理地址不...原创 2018-06-30 12:47:19 · 17053 阅读 · 2 评论 -
安装Chrome Headless遇到的问题
下载地址https://dl.lancdn.com/landian/software/chrome/m缺少依赖warning: 67.0.3396.79_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEYerror: Failed dependencies: /usr/bin/lsb_release...原创 2018-06-11 08:39:39 · 6249 阅读 · 0 评论 -
Linux使用命令备忘
在使用Centos或Ubuntu时,遇到各种Linux的命令,用到的时候回去查一下语法、参数、使用等内容,但使用过后基本上就忘记了。后面再使用的话,还的继续查找相关文档。ls命令lsls -lls -ltrdu/df命令du -h --max-depth=1 /dfdf -lhtop命令toptop -Utop -p PIDfind命令fin...原创 2018-06-10 05:58:47 · 1045 阅读 · 0 评论 -
Ganglia-Spark/Kafka编译与安装总结
Ganglia是一款优秀的监控软件,能够监控节点级别以及组件级别的监控,并且与Nagios配合可以做到监控提示的发送通知功能。Ganliga安装预先安装配置## 服务器端yum -y install rrdtool epel-release ganglia-devel ganglia-gmetad ganglia-gmond ganglia-web httpd php#...原创 2018-02-26 13:21:55 · 1293 阅读 · 0 评论 -
各种典型反爬虫套路
反击爬虫,前端工程师的脑洞可以有多大?转载 2017-10-17 11:03:47 · 3024 阅读 · 0 评论 -
微博分析报告学习
一份微博分析报告, 本文主要将网页内容截屏为图片,主要用于学习,有兴趣的同学可以到原文微博传播效果分析转载 2017-10-15 16:41:07 · 1320 阅读 · 0 评论 -
判断GPS省市/区县非API调用方法
判断一个GPS点是否位于某省市/区县内,通常可以调用地图API来解决,通过调用逆地理信息API,可以获得完整的地址信息,因此可以判断该GPS的省市/区县。本文基于省市/区县的隶属关系,及其形状的几何关系,判断一个GPS点的隶属信息。原理如何判断一个点是否位于某几何形状之内呢? 参考文献:判断一个点是否在多边形区域内判断根据中国各省/直辖市边界,以及省市包含二级行政划分的边界信息,以及三级区县划分的原创 2017-09-23 18:15:02 · 1626 阅读 · 0 评论 -
一种可行性Java爬虫框架
简单的Java爬虫框架流程图,不包括容灾机制、异常处理等内容。框架流程图 搭建分布式爬虫系统,框架的主要工作是打通队列、存储之间的联系。之后的工作,包括爬虫策略、容灾机制、错误处理等,都是通过爬虫节点来处理。 事实上,只要框架搭建好之后,不断完善本地爬虫策略【使用内存队列】,就能够很好的实现分布式爬虫。爬虫节点爬虫节点设计的主要内容,包括但不限于: 1. 爬虫深度; 2. 爬虫策略;原创 2017-09-23 17:45:16 · 778 阅读 · 0 评论 -
JXL简单操作xls表格文件--写入文件
工作时用到写入Excel的场景,发现有Apache POI提供的jar包与JXL的jar包。实际操作时,个人感觉poi比较高大上,基本上能够实现excel的大部分功能,包括字体设置、表格设置等内容,但相对门槛较高,操作复杂。相比POI,JXL操作简单,容易入门,相比而言得到的EXCEL文档也是比简单,不需要特殊的格式化。 public static void write2xlsStr(Writ原创 2017-09-23 17:08:17 · 755 阅读 · 0 评论 -
我与汽车之家的三生三世
说起爬虫,目前存在许多流行的爬虫框架。其中最著名的莫过于Python语言方面的Scrapy,Java语言方面的Webcollector。它们都是开源的爬虫工具,根据不同的使用场景、业务特点、开发人员的语言偏好,可以选择不同功能的开源框架。当然老司机,也可能自己开发一种爬虫功能框架,毕竟自己编写的才能够更好的配置、控制、使用爬虫,完成爬虫业务的需求。第一生初进入爬虫坑洞,感觉爬虫很难。刚开始,选择的是原创 2017-07-10 20:49:48 · 2811 阅读 · 0 评论 -
Java邮件客户端发送邮件+附件
目前研究一下使用Java发送带有附件的邮件,从网上搜索了一下发现都存在各种各样的问题。在这里总结一下,展示一下基础代码,防止遗忘。代码public static boolean sendMail(String subject, String toMail, String content, String... files) { boolean isFlag =原创 2017-06-28 20:55:36 · 1608 阅读 · 0 评论 -
爬虫+模拟登录
在一些爬虫中,需要用到账号登录进入,才能看到需要爬取的内容,因此实现程序自动模拟登录非常有必要。目前大部分网站的登录,都是使用表单提交的方法实现的,这一类网站的模拟登录,相信度娘已经给出来的许多实例。还有一类网站不是使用网页自带表单提交的方法,网站自己实现了js方法来登录,这就需要进行特别的模拟浏览器行为。本文用到的主要技术手段包括Selenium+Phantomjs+Jsoup。WebDriver原创 2017-06-29 22:19:06 · 3859 阅读 · 0 评论 -
Spark集群配置
相比Hadoop的配置,Spark配置起来相对简单。本文结合自身的配置经验,写下配置Spark的过程。准备工作在正式配置之前,需要确定环境是否适合安装Spark集群。确保已经安装JDK/JRE;安装Hadoop(非必要);确保已经安装SCALA;MASTER\SLAVE的IP地址已经配置在/etc/hosts中。Spark配置配置文件.spark-env.sh:export JAVA_HO原创 2016-11-25 14:36:42 · 764 阅读 · 0 评论 -
Hadoop集群配置
Hadoop集群配置自己动手搭建一个Hadoop集群,对于Hadoop的学习、理解非常有帮助,从中能够学习到Hadoop常用的端口、配置文件、配置信息等内容。准备工作四台机器:master、slave1、slave2、slave3;在master上开通外网访问权限,slave1\slave2\slave3无需外网访问权限;下载JDK1.8.0_111;在master上安装vim\wget\t原创 2016-11-25 13:48:17 · 795 阅读 · 0 评论 -
Java使用付费代理的两种实现方法
免费代理,如西刺代理、快代理等代理网站公布的代理地址,常常存在几个问题: 1. 存在反扒措施,如限制爬虫频率、存在并发数限制、封IP等; 2. 免费代理存在时效性,无法长时间使用。目前获得稳定性能的最佳途径就是购买代理服务资源,通过代理服务商给出的IP:Port,UserName:Password来访问代理服务器,从而获得良好的代理体验。本文简单介绍,使用原创 2017-09-26 14:29:26 · 1072 阅读 · 0 评论 -
Elasticsearch 存放地理信息数据+百度POI分析
ES是一个全文搜索引擎,同时也是一个NoSQL数据库,其存放数据方便与检索数据性能优越,收到普遍欢迎。ES架构参考文章:架构及原理ES地理数据操作参考文章:Elasticsearch地理位置总结实际操作建立Index一般有两种方式 1. ES Header通过界面化操作,直接可以建立Index: 2. 通过ES API可以创建Index。一般可以选择Java/Python的ES接口API原创 2017-09-27 20:48:19 · 4019 阅读 · 0 评论 -
Weibo单节点爬虫设计
微博目前开发数据接口,如果用于商业用途最好通过此接口来获取微博数据。作者爬去少量数据,仅用于研究学习。原创 2017-10-12 20:56:29 · 1089 阅读 · 0 评论 -
RSA 加密算法备忘
import java.io.UnsupportedEncodingException;import java.math.BigInteger;import java.security.InvalidKeyException;import java.security.KeyFactory;import java.security.NoSuchAlgorithmException;impor原创 2017-10-11 21:06:26 · 924 阅读 · 0 评论 -
Spark RDD/DataFrame map保存数据的两种方式
使用Spark RDD或DataFrame,有时需要在foreachPartition或foreachWith里面保存数据到本地或HDFS。直接保存数据当然如果不需要在map里面保存数据,那么针对RDD可以有如下方式val rdd = // target rddrdd.saveAsHadoopFile // add some parameters 针对DataFrame可以有如下方式保存数据val原创 2017-10-06 11:55:15 · 7648 阅读 · 0 评论 -
EasyPR-Java新能源车牌识别
EasyPR中主要涉及到蓝色底牌与黄色底牌的车牌识别,随着新能源车辆的发展,目前已经出现绿色底牌的车牌,因此有必要增加绿色车牌的识别。 EasyPR中关于车牌的识别,已经比较完善,这里主要涉及到三个地方的修改。添加颜色在自定义Color的枚举类中,添加 绿色,修改之后为:public enum Color { UNKNOWN, BLUE, YELLOW, GREEN};添加绿色识原创 2017-10-19 19:41:19 · 4626 阅读 · 7 评论 -
Crontab整点运行问题
无论是使用Linux自带crontab程序,还是使用cron-utils的crontab语法解析,都存在整点运行问题。问题来源使用crontab语法的时候,如果是固定间隔运行,如0 0/5 * * * *30 */30 * * * *...其中分钟间隔只能是60的因子,如果不是60的因子,那么存在整点运行问题。如运行计划为10 0/29 * * * *那么运行时刻可能为Mon Oct 09原创 2017-10-09 15:25:14 · 4612 阅读 · 2 评论 -
elasticsearch vs mongodb
选择Elasticsearch还是选择MongoDB,该问题我已经被许多初学者、朋友或需要作出技术架构决策的开发者问及好多次了。那么应该选择MongoDB,还是选择ElasticSearch呢?因此,这里我简短的介绍一下MongoDB与Elasticsearch的不同之处,且 言明在什么场景下那个作为首要选项。我假设读者已经了解了关于MongoDB/Elasticsearch的基本概念。 假设两翻译 2017-09-27 21:20:58 · 21160 阅读 · 0 评论 -
Java API读取CDH-Hadoop Parquet文件
Java API读取CDH-Hadoop Parquet文件由于工作需要,基于目前公司集群存在较多的服务器且存在大量的内存,因此考虑直接将数据Load进内存进行数据处理,测试是否能够加快处理速度;鉴于以上目的,版主尝试使用Parquet的Java API读入Parquet文件。 目前关于使用Java API访问HDFS的文章较多,但是没有相关的配置比较容易出错;同时Java API读写Parque原创 2016-11-25 12:44:36 · 7153 阅读 · 0 评论