大数据
文章平均质量分 77
csdn_Hzx
这个作者很懒,什么都没留下…
展开
-
Flink状态计算TTL
在Flink开发过程当中经常会遇到类似:统计当一个用户从进入商品页面到下单的时间,一个用户从编辑到保存的时间,分析这种问题大多是通过前端打点来获取用户行为,这就会造成有很多用户点击了商品或者编辑了,但是最终并没有购买或者保存,所以这时候我们就要有一个对点击商品或者编辑的开始打点数据设置一个过期时间,最开始想的是用redis来存储开始的行为信息,在redis对数据设置过期时间,理论上是没什么问题,但是考虑一般能不依赖外部系统就不依赖的原则,另外不确定redis能否扛住非常大的QPS,所以也就找了其他方原创 2021-07-29 17:28:24 · 912 阅读 · 0 评论 -
针对flink窗口统计PV,UV的优化
背景招聘类App前端对于app上的聊天动作埋点统计一个职位30分钟下的聊天的pv和uv分析 //30分钟特征 val job_char_features_jch30 = job_chat_dataStream_filtered.keyBy(x => x.getString("actionp5")).window(TumblingEventTimeWindows.of(Time.minutes(30))).process(new ProcessWi原创 2021-07-22 11:42:47 · 695 阅读 · 0 评论 -
解决Spark,MapReduce和Flink提交到yarn集群jdk版本不一致问题
最近遇到一个问题,在提交spark任务到yarn集群报错,具体报错内容如下:Exception in thread "main" java.lang.UnsupportedClassVersionError: com/iteblog/mobile/UserMobileInfo : Unsupported major.minor vat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineCl原创 2020-12-10 11:52:14 · 670 阅读 · 0 评论 -
在Idea以yarn-cluster/client方式提交spark程序到yarn上
前期准备:在hosts文件已经配置了集群的主机和ip的映射 本地解压spark安装包 本地解压Hadoop安装包 到集群上下载好yarn的配置文件,并解压,以cdh为例下载之后解压即可(位置没要求)编写代码:提交代码类:package com.hzx.spark;import org.apache.spark.launcher.SparkLauncher;import java.io.*;import java.util.*;/** * Created by Hua.原创 2020-06-16 14:30:33 · 817 阅读 · 0 评论 -
如何在Spark,MapReduce和Flink程序里面指定JAVA_HOME
最近遇到一个bug,自己编写的spark程序本地调试没问题之后想提交到集群上运行,报错内容如下:Exception in thread "main" java.lang.UnsupportedClassVersionError: com/iteblog/mobile/UserMobileInfo : Unsupported major.minor version 52.0现特此整理了一下分享给大家:其实报错已经很明显了,java8版本有问题,那具体原因是什么呢,其实就是本地编写spark用的是j原创 2020-06-04 18:54:45 · 1688 阅读 · 0 评论 -
离线环境搭建CDH
本例子以安装 cm5.13.0和 cdh5.13.0适用操作系统:yum RHEL/CentOS/Oracle 71.材料准备名称 详情 用途 yum安装依赖源 oracle_linux_release_7.iso 离线安装时依赖包 CDH 版本包 CDH-5.13.0-1.cdh5.13.0.p0.2-el7.parcel , CDH-5....原创 2019-11-12 10:52:11 · 296 阅读 · 0 评论 -
spark给某一列字段进行加密
有一些数据存在一些敏感数据,需要进行一些特殊处理,比如身份证号,可以用hash算法或者md5进行加密,我用的处理方式是将加密算法自定义成udf函数,拿MD5举例子,直接上代码//加密算法 def hashMD5(content: String): String = { val md5 = MessageDigest.getInstance("MD5") val encod...原创 2019-10-24 19:29:12 · 1567 阅读 · 0 评论 -
Spark运行原理
1 创建SparkContext对象,然后SparkContext会向Clutser Manager(集群资源管理器),例如Yarn、Standalone、Mesos等申请资源2 资源管理器在worker节点上创建executor并分配资源(CPU、内存等),后期excutor会定时向资源管理器发送心跳信息3 SparkContext启动DAGScheduler,将提交的作业(job)转换成若...原创 2018-10-07 19:52:54 · 173 阅读 · 0 评论 -
spark算子总结
spark一些算子的demo,为了方便理解把运行结果也给大家看一下,主要是加深对算子的熟练程度与深入的理解Transformation算子:1.map /** * map算子,将RDD中的每个元素传入自定义函数,获取一个新的元素, * 然后用新的元素组成新的RDD。 */ val conf = new SparkConf().setAppName("mapDe...原创 2018-12-27 17:58:32 · 376 阅读 · 0 评论 -
基于原生hadoop的多租户开发与xpath解析xml
上一篇文章讲到需要修改远程服务器的一些配置文件,其实这个场景需要修改的配置文件是原生hadoop的yarn-site.xml文件,目的是基于原生hadoop实现多租户,多租户其实就是在提交任务时根据不同的用户和组分配不同的计算资源,说白了就是修改一些配置文件,yarn-site.xml会根据yarn.scheduler.fair.allocation.file这个属性找到我们fair-schedu...原创 2018-12-22 15:19:42 · 680 阅读 · 0 评论 -
SparkSQL自定义udf
自定义udf求平均值:测试数据:{"name":"Michael", "salary":3000}{"name":"Andy", "salary":4500}{"name":"Justin", "salary":3500}{"name":"Berta", "sala原创 2018-12-24 19:17:54 · 353 阅读 · 1 评论 -
Jsoup解析sparkUI
在跑spark程序的时候我们可以通过sparkUI的方式来监控程序的运行状态如下图:最近项目遇到一个需求,需要把sparkUI上的一些参数获取到前段展示,然后自己上网查找了一些资料,发现jsoup可以轻松解析搞定,他可以解析html,非常方便而且实用,代码如下://测试方法:public static void main(String[] args) {Map<String...原创 2019-01-04 17:04:02 · 265 阅读 · 0 评论 -
kafka创建topic时是如何在不同的broker当中放置分区与副本的
我们都知道,Kafka每个主题有多个分区,每个分区会存在多个副本,我们今天要讨论的是这些副本是怎么样放置在 Kafka 集群的 Broker 中的。大家可能在网上看过这方面的知识,网上对这方面的知识是千变一律,都是如下说明的:为了更好的做负载均衡,Kafka尽量将所有的Partition均匀分配到整个集群上。Kafka分配Replica的算法如下:将所有存活的N个Brokers和待分配的Pa...原创 2019-01-15 09:37:17 · 998 阅读 · 0 评论 -
java实现对hdfs上文件的上传与下载
从hdfs上下载到本地/***src:hdfs路径 例:hdfs://192.168.0.168:9000/data/a.json*dst:本地路径*/ public static void Hdfs2Local(String src, String dst) { try { Configuration conf = new Con...原创 2019-02-21 15:08:24 · 4279 阅读 · 0 评论 -
hive汇总
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。Metastore (hive元数据)Hive将元数据存储在数据库中,比如mysql ,derby.Hive中的元数据包括表的名称,表的列和分区及其属性,表的数据所在的目录Hive数据存储在HDFS,大部分的查询、计算由ma...原创 2019-02-11 19:30:26 · 573 阅读 · 0 评论 -
java操作hdfs上的文件及文件夹
Hadoop文件系统基本的文件系统命令操作, 通过hadoop fs -help可以获取所有的命令的详细帮助文件。Java抽象类org.apache.hadoop.fs.FileSystem定义了hadoop的一个文件系统接口。该类是一个抽象类,通过以下两种静态工厂方法可以过去FileSystem实例:public static FileSystem.get(Configuratio...原创 2019-02-13 15:38:26 · 1824 阅读 · 1 评论 -
客户端从部署服务器或者hdfs的下载功能
最近遇到一个需求,通过系统配置的路径来完成一个下载功能,这个系统配置路径可能是hdfs路径也可能是部署服务器的路径,所以写了一个比较通用的方法,特此跟大家分享一下,也便于自己的记忆,主要是忘了还可以看一看,^_^直接上代码: /** *@Author huangzx *@Description: 文件下载到客户端 *@Date 5:04 PM 2/23/19 ...原创 2019-02-28 15:06:53 · 233 阅读 · 0 评论 -
hbase单机版安装
最近需要用到hbase做测试,想在本地搭建一个单机版的hbase,上网上找了很多例子,只能说坑很多,但还是爬出来了,在这儿给大家做个参考:1.安装jdk这个对于开发人员来说应该不是什么问题,安装完成之后在/etc/profile下配置一下环境变量export JAVA_HOME=/usr/local/java/jdk1.8.0_191export PATH=$JAVA_HOME/b...原创 2019-02-25 15:55:54 · 1608 阅读 · 0 评论 -
利用storm实现简单的单词统计
WordReader类( spout读取 txt 文档,按行发射给 bolt)public class WordReader implements IRichSpout{/*** 序列化*/private static final long serialVersionUID = 1L;private FileInputStream is;private Input...原创 2018-06-13 21:03:13 · 1002 阅读 · 0 评论 -
常用的SQL优化
一.常用的优化方式: 1、尽量避免全表扫描,首先硬考虑在 where 及 order by 涉及的列上简历索引。 2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。 3、应尽量避免在 where 子句中使用 != 或者 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。 4、应尽量避免在 where 子句中使...转载 2018-10-07 19:41:42 · 296 阅读 · 0 评论 -
MapReduce执行流程
MapReduce执行流程:在我们提交一个MRjob的时候,首先启动的是AppMaster,AppMaster启动之后,它会根据job的提交信息计算出所需要的maptask数量,并且向集群申请启动maptask,maptask启动之后,会根据给定的数据切片范围进行数据处理,切片大小默认等于block块大小(128M),读取数据形成KV对,将KV对传递到自定义的map()方法中执行我们自己规...原创 2018-10-07 19:37:43 · 221 阅读 · 0 评论 -
hive中的rank() over(),dense_rank() over(),row_number() over()使用案例
准备数据浙江,杭州,300浙江,宁波,150浙江,温州,200浙江,嘉兴,100江苏,南京,270江苏,苏州,299江苏,某市,200江苏,某某市,100创建表CREATE table pcp(province string,city string,people int)ROW FORMAT DELIMITED FIELDS TERMINATE...原创 2019-09-10 17:02:40 · 915 阅读 · 0 评论 -
sed命令集锦
Sed1、删除:d命令sed '2d' /root/passwd -----删除/root/passwd文件的第二行。sed '2,$d' /root/passwd -----删除/root/passwd文件的第二行到末尾所有行。sed '$d' /root/passwd -----删除/root/passwd文件的最后一行。sed '/root/d ' /root/pas...原创 2018-06-13 21:19:45 · 316 阅读 · 0 评论 -
cut命令集锦
高级文本处理命令cutcut是一个选取命令,它就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的 cut语法cut <选项> 文件选项与参数: -d:后面接分隔字符。与 -f 一起使用-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思-c:以字符 (characters) 的单位取出固定字符区间-b:...原创 2018-06-13 21:18:45 · 454 阅读 · 0 评论 -
awk命令集锦
AWKawk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 1、假设last -n 5的输出如下:[root@localhost ~]# last -n 5root pts/0 192.168.123.1 Wed...原创 2018-06-13 21:17:48 · 169 阅读 · 0 评论 -
Hadoop集群的安装与部署
以下操作步骤需要在HadoopMaster和HadoopSlave节点上分别完整操作,都使用root用户,从当前用户切换root用户的命令如下:[lan@master ~]$ su root输入密码:lan本节所有的命令操作都在终端环境,打开终端的过程如下图的Terminal菜单:终端打开后如下图中命令行窗口所示。3.2.1配置时钟同步1、配置自动时钟同...原创 2018-06-13 21:16:19 · 2853 阅读 · 1 评论 -
hbase表的创建以及简单的增删改查
import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.Cell;import org.apache.hadoop.hbase.CellUtil;import org.apache.hadoop.hbase.HBaseConfiguration;imp...原创 2018-06-13 20:54:08 · 541 阅读 · 0 评论 -
利用MapReduce统计学生的学习成绩(及格率,优秀率,平均分)
import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoo...原创 2018-06-13 20:49:29 · 4586 阅读 · 0 评论 -
利用MapReduce分析微博粉丝数
import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.Set;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.I...原创 2018-06-13 20:47:11 · 810 阅读 · 0 评论 -
zookeeper各种的监听
import org.apache.zookeeper.Watcher;import java.util.ArrayList;import java.util.List;import java.util.concurrent.CountDownLatch;import java.util.concurrent.atomic.AtomicInteger;import org.apache.log4j...原创 2018-06-13 20:44:55 · 654 阅读 · 0 评论 -
zookeeper简介
1 zookeeper是什么 zookeeper是一个分布式的、开源的、应用程序的、协调服务。 是一个分布式的、开源的、应用程序的、协调服务。Google的三大论文(MapReduce、GFS、BigTable)在大数据领域意义深广,以此衍生出了Hadoop、HDFS、HBase。而在这三篇论文里都提及Google的一个词——Chubby(lock service,面向松耦合的分布式锁服务),于...原创 2018-06-14 10:44:45 · 340 阅读 · 1 评论 -
log4j结合flume完成日志收集并保存到hdfs上
//log4j配置文件### set log levels ### log4j.rootLogger=INFO, stdout, file, flumelog4j.logger.per.flume=INFO### flume ### log4j.appender.flume=org.apache.flume.clients.log4jappender.Log4jAppenderlo...原创 2018-06-29 08:54:25 · 492 阅读 · 0 评论 -
将hdfs上的多个文件内容定量缓存到redis
//Bean类将javaBean类实现Serializable接口里面的属性为:private String o_order_no,s_scrap_name,d0_dict_text,s_unit,s_price,o_amount,o_money,d3_dict_text,ow_id,ow_name,ow_idCard,d1_dict_text,ow_tel,ow_address,sc_id,s...原创 2018-06-29 09:09:51 · 1941 阅读 · 1 评论 -
sparkstreaming直连kafka(0.10版本)
sparkstreaming直连kafka0.10,将偏移量保存在kafka当中,当然也可以根据自己的需要保存到其他地方,话不多说直接上代码:object DirectStream { def main(args: Array[String]): Unit = { val group = "g0011" val topic = "my-topic666" //...原创 2018-09-13 18:44:58 · 604 阅读 · 0 评论 -
Echarts实例
一、先在mysql建一张表(goods)如下:二、工程的目录结构为:三、具体的代码:配置文件:别忘记改成自己相应的配置<?xml version="1.0" encoding="UTF-8"?><c3p0-config> <default-config> <property name="driverCla...原创 2018-09-13 18:38:54 · 1064 阅读 · 0 评论 -
sparksql练习
题目: -------学生表 //学号//学生姓名//学生性别 //学生出生年月//学生所在班级 --------课程表 //课程号//课程名称//教工编号 ------成绩表 //学号(外键)//课程号(外键)//成绩 ----教师表 //教工编号(主键)//教工姓名//教工性别//教工出生年月//职称//部门 1、...原创 2018-09-04 11:39:25 · 2602 阅读 · 1 评论 -
flume自定义source(从指定偏移量读取数据)
引入的maven依赖<dependency> <groupId>org.apache.flume</groupId> <artifactId>flume-ng-core</artifactId> <version>1.8.0</version> <!-- 开发时引入依赖,打包是不原创 2018-09-04 11:27:37 · 1707 阅读 · 2 评论 -
将ip地址转化为10进制
public static Long ipToLong(String ip){ String[] arr = ip.split("[.]"); Long num = 0L; for (int i = 0; i < arr.length; i++) { num = Long.parseLong(arr[i]) | num << 8L; ...原创 2018-08-28 16:05:02 · 1406 阅读 · 0 评论 -
SparkStreaming实时计算单词统计
注意:先开启程序之后再将要统计的文本文档放入input目录下import org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, StreamingContext}object WordCountByHDFS { def main(args: Array[String]): Unit = { ...原创 2018-07-24 21:29:10 · 952 阅读 · 0 评论 -
实时分析 流式计算(mysql到hdfs到redis到hbase)
此文章是关于另外三篇文章的一个整合1:log4j结合flume完成日志收集并保存到hdfs上2:将hdfs上的多个文件内容定量缓存到redis3:storm处理来自redis当中的数据,将处理完的结果保存到hbase当中首先利用第一篇文章当中的log4j和flume将从mysql当中查询出来的结果收集并保存到hdfs上,我是将每1000条数据保存为一个文件存到hdfs上的/flume/目录...原创 2018-06-29 10:28:55 · 1815 阅读 · 0 评论