大数据
文章平均质量分 81
R_记忆犹新
实现一切可能的可能
展开
-
使用SparkSQL时使用SQL语句中的COLLECT_SET和后期处理需要注意问题
在使用SparkSQL的SQL语句进行聚合后拼接时,需要使用CONCAT_WS进行多字段拼接,再使用COLLECT_SET进行收集,返回一个Array数组的集合。如: val imo_type_sql = """ |SELECT IMO, MMSI, COLLECT_SET(CONCAT_WS("~",ShipType, count)) as type_cou...原创 2019-06-28 16:35:20 · 5215 阅读 · 0 评论 -
Elastic Search 学习入门之restful的高级查询操作(九)
REST简介: RSET全称Representational State Transfer。是一种软件的架构风格,而不是标准,只是提供一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制, 其实说白了就是类似HTTP的访问,和HTTP非常的相似。 REST操作: GET:获...原创 2018-12-13 12:21:56 · 1214 阅读 · 0 评论 -
Elastic Search 学习入门之Elastic Search的安装配置(一)
ElasticSearch是什么普通的检索: 从网页/文章中,找到对应的关键字信息。搜索引擎: 通过关键字,找到对应的网页,为了实现这个搜索引擎,在检索过程汇总,关键字可能出现标题,正文,摘要等等,需要在相应的多个字段中添加索引。在数据库中检索的时候,使用like关键字,索引会失效,速度变慢。在搜索引擎中,为了提高检索效率,给多个字段添加索引的操作,称为全文索引。搜索引擎所使用的索引...原创 2018-12-06 19:58:21 · 485 阅读 · 0 评论 -
Elastic Search 学习入门之生产环境下node.master和node.data的设置(三)
在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下,集群容易出现脑裂等问题。默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。这些功能是由两个属性控制的。分别是node.master和node.data默认情况下这两个属性的值都是true。下面详细介绍一下这两个属性的含义以及不同组合...原创 2018-12-08 19:06:56 · 1679 阅读 · 4 评论 -
Elastic Search 学习入门之ES的简单操作命令(二)
curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。(以下操作均是基于ElasticSearch6.5.0版本的操作) curl:-X 指定http的请求方法 有 HEAD GET POST PUT ...原创 2018-12-08 10:49:36 · 527 阅读 · 0 评论 -
数据库使用QueryRunner模拟封装
模拟使用QueryRunner查询数据库:连接数据库的配置dbcp-config.properties:#连接设置driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/news_dbusername=rootpassword=root#<!-- 初始化连接 -->initialSize...原创 2018-12-05 12:43:59 · 422 阅读 · 0 评论 -
新闻网站大数据
本次项目是基于企业大数据经典案例项目(大数据日志分析),全方位、全流程讲解 大数据项目的业务分析、技术选型、架构设计、集群规划、安装部署、整合继承与开发和web可视化交互设计。一、业务需求分析(一)捕获用户浏览日志信息(二)实时分析前20名流量最高的新闻话题(三)实时统计当前线上已曝光的新闻话题(四)统计哪个时段用户浏览量最高二、系统架构图设计三、系统数据流程设计四、集群资源...原创 2018-12-05 12:06:42 · 2745 阅读 · 0 评论 -
离线日志采集统计分析
flume采集 设置多源(监听多文件) 设置拦截器 设置avro-sink 设置flumeHA(failover)数据的清洗和处理(ETL):步骤: 1、数据仓库的设计 2、清楚最终的效果数据的清洗: 1. 选用框架: MR Hive SparkCore 2. 将原始数据转换为标准化的数据数据分析模块:次日留存率: 主要解决问题: 唯一用户外链TopN: 注意:广播TopNmysql导入hdfs统计: 使用SqoopUGC: 埋点获取原创 2018-11-27 16:33:49 · 993 阅读 · 0 评论 -
gist.github.com 无法访问解决办法
gist.github.com 无法访问解决办法windows下 打开C:\Windows\System32\drivers\etc\hosts文件 编辑器打开,在最后行添加192.30.253.118 gist.github.com保存。原创 2018-09-27 14:49:45 · 3851 阅读 · 0 评论 -
sqoop2安装
# Decompress Sqoop distribution tarballtar -xvf sqoop-<version>-bin-hadoop<hadoop-version>.tar.gz# Move decompressed content to any locationmv sqoop-<version>-bin-hadoop<hado...原创 2018-09-20 15:10:39 · 573 阅读 · 0 评论 -
TopN的练习实现
为了实现TopN,我们需要一个散列表数据结构,从而可以得到键的全序首先用一个类来实现并测试使用。import scala.collection.SortedMapimport scala.collection.immutable.TreeMapobject TopN { def topN[T](L:List[(T,Integer)],N:Int): SortedMap[Int...原创 2018-09-14 15:29:35 · 537 阅读 · 0 评论 -
移动平均算法的实现方法
要解决移动平均问题,提供两个简单Java对象解决方案:解决方案1:使用java.util.Queuepackage simpleMoving;/** * SimpleMovingAverage * 使用队列实现POJO移动平均 */import java.util.LinkedList;import java.util.Queue;public class Simple...原创 2019-04-12 20:55:43 · 2782 阅读 · 0 评论 -
如何实现通过一个集合来生成有序项集的所有组合
import java.util.*;public class Combination { public static <T extends Comparable<? super T>> List<List<T>> findSortedCombinations(Collection<T> elements, int ...原创 2018-09-06 17:38:27 · 486 阅读 · 0 评论 -
Hive分析函数的扩展案例
// 数据准备操作:cookie.txtcookie1,2015-04-10,1cookie1,2015-04-11,5cookie1,2015-04-12,7cookie1,2015-04-13,3cookie1,2015-04-14,2cookie1,2015-04-15,4cookie1,2015-04-16,4// 建表语句:create database if n...原创 2018-09-03 10:41:51 · 203 阅读 · 0 评论 -
Git使用学习
一、初识 git1. 什么是gitGit是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。2、分布式和集中式的区别集中式: 需要有台服务器安装服务端; 每个想要和服务端通讯的终端都需要安装该软件客户端。 每台计算机都通过...原创 2018-12-14 14:22:14 · 216 阅读 · 0 评论 -
Elastic Search 学习入门之核心概念(四)
1.1 Cluster代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。ES的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看ES集群,在逻辑上是个整体,你与任何一个节点的通信和与整个ES集群通信是等价的。主节点的职责是负责管理集群状态,包括管理分片的状态和副本的状态,以及节点的发...原创 2018-12-10 11:09:23 · 321 阅读 · 0 评论 -
Elastic Search 学习入门之插件安装(五)
ES本身服务相对比较少,其功能的强大之处就体现在插件的丰富性上。有非常多的ES插件用于ES的管理,性能的完善,下面就给大家介绍几款常用的插件。1.1-1.4是基于elasticsearch2.3来进行配置1.1 Elasticsearch-servicewrapper这里就先介绍一个插件用于ES的服务端管理——Elasticsearch-servicewrapper(绝大部分的插件都在git...原创 2018-12-10 11:13:56 · 333 阅读 · 0 评论 -
Spark任务跑完将结果以邮件的方式进行发送
工作中,一般是晚上提交任务,第二天等结果,等跑完再走等问题阻碍着我们的步伐,现开发提交完任务就可以第一时间知道,并可以发送给领导,很方便以下代码为scala编写,主要应用于跑spark任务后的结果发送。开始需要:构建maven项目:添加依赖pom.xml: <!-- https://mvnrepository.com/artifact/com.typesafe.play/...原创 2019-06-27 19:47:45 · 2789 阅读 · 4 评论 -
在使用Spark ml时, VectorAssembler使用null异常
SparkException: Values to assemble cannot be null代码为:val Array(trainingData, testData) = dataset.randomSplit(Array(0.7,0.3))val assembler = new VectorAssembler() .setInputCols(len_df.selec...原创 2019-07-02 18:39:59 · 2765 阅读 · 0 评论 -
Maven小问题
在使用Maven创建项目时,使用模块进行分类管理时,发现当删除一个子模块时,再对其父模块进行打包时,打包过程中没有任何错误,但是最终的jar包不会生成。经查询对比发现:在其是父模块时,pom.xml中配置如下:<artifactId>static_log</artifactId> <packaging>pom</packaging&g...原创 2019-06-19 09:52:42 · 174 阅读 · 0 评论 -
Spark DataFrame导入mysql入库添加自增主键id
Spark DataFrame 添加一个自增主键id 在使用SparkSQL处理数据的时候,经常需要给全量数据增加一列自增的ID序号,在存入数据库的时候,自增ID也常常是一个很关键的要素。在DataFrame的API中没有实现这一功能,所以只能通过其他方式实现,或者转成RDD再用RDD的zipWithIndex算子实现。下面介绍两种实现方式:方式一: 利用窗口函数// 加载数据val...原创 2019-06-06 17:31:28 · 3840 阅读 · 0 评论 -
idea中使用scala运行spark出现 java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
idea中使用scala运行spark出现:Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class需要确保 spark所使用的scala版本与你系统scala的版本一致即可<!--解析json--><dependenc...原创 2019-05-31 15:04:44 · 2763 阅读 · 0 评论 -
Spark SQL 中数据类型为Map的注意事项
在使用SparkSQL进行处理数据时,将数据保存为Map,并读取出Map的数据数据列聚合操作后拼接为一个字符集合:BSV ANGLIA_1~BSV ANGLIA---_2SELECT MMSI, IMO, concat_ws("~",collect_set(concat_ws("_",ShipName,name_num))) as shipNum, max(time) as last_t...原创 2019-06-05 20:16:27 · 5819 阅读 · 0 评论 -
使用IDEA直接连接虚拟机
1.在Intellij_idea上面点击如下菜单:Tools—Deployment—Configuration…2.新增一台虚机,输入名称,选择SFTP协议,点击OK3.输入IP地址、代码路径、账号密码,点击OK4.点击Tools—Deployment—Browse RemoteHost5.右侧会出现对应的...原创 2019-04-09 19:05:32 · 7918 阅读 · 4 评论 -
SparkContext源码解析说明
解说SparkContxt源码,下次解析原创 2019-04-12 16:34:38 · 144 阅读 · 0 评论 -
使用spark2.4和maven3.6.0组合开发踩过的坑
ERROR:thread "main" java.lang.ArrayIndexOutOfBoundsException: 10582这是paranamer版本的问题。在spark-core / spark-sql之前添加以下依赖项。<dependency> <groupId>com.thoughtworks.paranamer</groupId&g...原创 2019-03-04 16:57:06 · 1971 阅读 · 0 评论 -
Spark资料查找
这一两年Spark技术很火,自己也凑热闹,反复的试验、研究,有痛苦万分也有欣喜若狂,抽空把这些整理成文章共享给大家。这个系列基本上围绕了Spark生态圈进行介绍,从Spark的简介、编译、部署,再到编程模型、运行架构,最后介绍其组件SparkSQL、Spark Streaming、Spark MLib和Spark GraphX等。文章内容的整理一般是先介绍原理,随后是实战例子,由于面向的是入门读者...转载 2019-03-05 19:05:01 · 179 阅读 · 0 评论 -
spark中使用Accumulator累加器使用和注意事项
Accumulator简介Accumulator是spark提供的累加器,累加器的一个常用用途是在调试时对作业执行过程中的事件进行计数,但是只要driver能获取Accumulator的值(使用value方法), Task只能对其做增加操作(使用+=),也可以在为Accumulator命名(不支持Python),这样就会在spark web ui中显示, 可以帮助了解程序运行的情况。数值累...原创 2019-03-05 17:24:32 · 4819 阅读 · 0 评论 -
Elastic Search 学习入门之中文检索(八)
安装ik的方式:1.离线安装: 下载:https://github.com/medcl/elasticsearch-analysis-ik/tree/v6.5.0 解压到 $ES_HOME/plugins目录下面 遇到问题: 解决问题: 在elasticsearch-analysis-ik-6.5.0目录下需要使用mvn进行编译:mvn cl...原创 2018-12-12 11:31:49 · 534 阅读 · 0 评论 -
Elastic Search 学习入门之Search全文检索(七)
ES是基于Lucene的开源搜索引擎,其查询语法关键字部分和Lucene大致一样:分页: from/size、字段:fields、排序:sort、查询:query过滤:filter、高亮:highlight、统计:facetES的搜索类型有4种(以下说明是基于elasticsearch2.3):query and fetch (速度最快)(返回N倍数据量) 受保护,5.3之...原创 2018-12-10 21:15:31 · 2465 阅读 · 0 评论 -
Elastic Search 学习入门之JavaAPI客户端操作(六)
1. 添加Maven依赖: <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>6.5.0</version>原创 2018-12-10 17:49:47 · 237 阅读 · 0 评论 -
Centos7_linux分区满了,如何进行扩容
linux分区满了,如何进行扩容转自:https://blog.csdn.net/valage/article/details/73332147图片中可以看到挂载点“/”的利用率移到100%,空间不够,所以要对其进行分区。1. 先进入虚拟机设置里增大磁盘空间注意:将25改成50,以扩大空间。这里一定要写比25大的数,因为他是“增加到”50GB,而不是“增加了......原创 2018-08-25 14:45:56 · 41441 阅读 · 18 评论 -
CentOS 7.4 安装 Ambari 2.6.0 + HDP 2.6.3 搭建Hadoop集群
1.安装环境说明三台机器安装好CentOS-7-x86_64-Minimal-1708.iso下载地址:https://www.centos.org/download/最好在安装时设置好IP和HOSTNAME三台机器的IP和HOSTNAME下载如下主 192.168.31.11 SY-001.hadoop从 192.168.31.12 SY-002.hadoop从 19...转载 2018-08-28 14:30:15 · 390 阅读 · 0 评论 -
MapReduce 中的 Partitioner
package flow.partitioner;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop....原创 2018-05-19 11:45:31 · 291 阅读 · 0 评论 -
自定义对象实现 MapReduce 框架的序列化及排序
如果需要将自定义的 bean 放在 key 中传输,则还需要实现 Comparable 接口,因为 MapReduce框中的 shuffle 过程一定会对 key 进行排序,此时,自定义的 bean 实现的接口应该是:public class FlowBean implements WritableComparable<FlowBean>:例:进行了序列化的 Flow 类:packag...原创 2018-05-18 12:03:05 · 655 阅读 · 0 评论 -
MapReduce中Combiner组件的使用
Combiner:数据样例:1363157984040 13602846565 5C-0E-8B-8B-B6-00:CMCC 120.197.40.42052.flash2-http.qq.com 综合门户 15 12 1938 2910 2001363157984040 13602846565 5C-0E-8B-8B-B6-00:CMCC 120.197.40.42052.flash2-http...原创 2018-05-18 11:46:29 · 542 阅读 · 0 评论 -
Hadoop中的MapReducer学习之第一个例子
WordCountMR的主程序:package wc;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org...原创 2018-05-18 11:30:40 · 398 阅读 · 0 评论 -
Linux系统下集群的Mysql的自动安装
首先在使用下面脚本之前要安装wget软件,各节点配置免密登录,挂载一个Mysql包:这里用的是mysql的rpm包,安装后设置了远程连接权限,修改了数据库默认字符编码集:#!/bin/bash#远程rpm仓库BASE_SERVER="hadoop01"service mysql stop#删除原有的mysqlEXIST_SERVERS=`rpm -qa |grep -i mysql...原创 2018-05-04 16:59:35 · 197 阅读 · 0 评论 -
Linux系统下集群的JDK的自动安装
首先在使用下面脚本之前要安装wget软件,各节点配置免密登录,挂载一个jdk包:#!/bin/bashBASE_SERVER=hadoop01yum install -y wgetwget $BASE_SERVER/soft/jdk-8u73-linux-x64.tar.gzwget $BASE_SERVER/soft/jdk-8u73-linux-x64.tar.gzsed ...原创 2018-05-04 16:52:43 · 493 阅读 · 0 评论 -
Linux系统下的系统管理———挂载外部设备
挂载是一个非常重要的功能,使用非常频繁。它指将一个设备(通常是存储设备,可以挂载 光盘、硬盘、磁带、光盘镜像文件等)挂接到一个已存在的目录上(这个目录可以不为空, 但挂载后这个目录下以前的内容将不可用)。 需要理解的是,Linux 操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成 一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存 在的目录上,然后通过访问...原创 2018-05-04 16:47:39 · 577 阅读 · 0 评论