0.07M
码龄11年
关注
提问 私信
  • 博客:52,472
    社区:1,824
    动态:17
    54,313
    总访问量
  • 26
    原创
  • 1,615,846
    排名
  • 13
    粉丝

个人简介:爱诗词的代码人

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2014-03-07
博客简介:

delet丶

博客描述:
专注于大数据开发和机器学习的研究
查看详细资料
个人成就
  • 获得48次点赞
  • 内容获得23次评论
  • 获得216次收藏
创作历程
  • 7篇
    2021年
  • 12篇
    2020年
  • 9篇
    2019年
  • 1篇
    2018年
  • 2篇
    2015年
成就勋章
TA的专栏
  • 大数据
    2篇
  • ES
  • k8s
  • flink
  • hive
    7篇
  • spark
    7篇
  • Hadoop
    3篇
  • kafka
    1篇
  • LeetCode
  • 工具
  • spider
    1篇
  • 资料汇总
    2篇
  • 数据库
    2篇
  • shell
    3篇
  • UserPortrait
  • algorithm
    3篇
  • java
  • 阅读与写作
    2篇
  • 数据结构
    1篇
兴趣领域 设置
  • 大数据
    hadoophivesparketl
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Scala中:: +: :+ ::: +++的区别

(1) :: 该方法被称为cons,意为构造,向队列的头部追加数据,创造新的列表。用法为 x::list,其中x为加入到头部的元素,无论x是列表与否,它都只将成为新生成列表的第一个元素,也就是说新生成的列表长度为list的长度+1(btw, x::list等价于list.::(x))(2) :+和+: 两者的区别在于:+方法用于在尾部追加元素,+:方法用于在头部追加元素,和::很类似,但是::可以用于pattern match ,而+:则不行. 关于+:和:+,只要记住冒号永远靠近集合类型就OK了。
转载
发布博客 2021.05.02 ·
294 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

详解 spark的shuffle原理

前言spark的shuffle计算模型与hadoop的shuffle模型原理相似,其计算模型都是来自于MapReduce计算模型,将计算分成了2个阶段,map和reduce阶段。一 多维度理解shuffle:二 shuffle过程的内存分配三 shuffle过程中的数据倾斜四 shuffle write过程一 多维度理解shuffle:shuffle的作用就是把map阶段和reduce阶段连接起来,充当一个桥梁的作用。 shuffle只能产生[k,v]类型的PairRDD中,M
原创
发布博客 2021.03.31 ·
3092 阅读 ·
1 点赞 ·
2 评论 ·
6 收藏

批量启动kafka脚本

@批量启动kafka脚本#! /bin/bashnode='master slave1 slave2'kfServerPath="/opt/kafka_2.11-2.4.1"case $1 in"start"){ for i in $node do echo " --------启动 $i Kafka-------" # 用于KafkaManager监控 ssh $i "
原创
发布博客 2021.03.27 ·
173 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

更新Anaconda

Anaconda更新速度慢:conda update conda解决方案:更换anaconda源,使用清华的源conda config --add channelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show..
转载
发布博客 2021.02.19 ·
199 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

汉诺塔python实现

原理图:# 汉诺塔def hannio(n,a,b,c): if n==1: print(a ,'-->',c) return None else: hannio(n-1,a,c,b) print(a,'-->',c) hannio(n-1,b,a,c)n,a,b,c = 3,'A','B','C'hannio(n,a,b,c)
原创
发布博客 2021.01.13 ·
182 阅读 ·
1 点赞 ·
4 评论 ·
0 收藏

斐波那契数列python实现

# 斐波那契数列模块"""方法一:从最大值考虑"""def fib(numMax): # 定义到 n 的斐波那契数列 a, b = 0, 1 while b < numMax: print(b, end=' ') a, b = b, a+b print()#二从位数考虑num = int(input('请输入要求的前n位数字:'))def fiboTwo(num): list1 = [] a, b = 0
原创
发布博客 2021.01.13 ·
383 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

查找:python实现二分法

实现二分法的前提示列表要首先排好序
原创
发布博客 2021.01.13 ·
119 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

python有关下载链接记录

下载记录Download PhantomJSChromedrivergeckodriver
原创
发布博客 2020.07.04 ·
203 阅读 ·
0 点赞 ·
3 评论 ·
0 收藏

大数据学习社区汇总

文章目录HbasesparkflinkHbase官方文档腾讯社区中国hbase技术社区博客园技术社区微博技术社区阿里云云栖社区资料汇总OSChinaHbase中文参考指南入门教程Hbse官方文档spark官网阿里云社区2.2.0中文文档大佬翻译flink官网ververica知乎中文社区中国中文社区并发编程网1.9官方文档下载中文文档...
原创
发布博客 2020.07.02 ·
486 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

shell之复制文件脚本

shll之复制脚本#!/bin/bash#获取输入参数的个数.没有参数直接退出pcount=$#if((pcount==0));thenecho no args;exit;fi#2.获取文件名称p1=$1fname=`basename $p1`echo fname=$fname#3.获取上级目录到绝对路径pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir#4.获取当前用户名称user=`whoami`#5.循环for (
原创
发布博客 2020.07.01 ·
623 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

MySQL资料汇总

一:下载与安装MySQL8.0下载与安装(有百度云盘下载链接)二:安装好后第一次用navicat 链接报错提示:1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client解决方式链接三 官方文档8.0官方文档说明...
原创
发布博客 2020.06.28 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql 快捷键

mysql 快捷键1.ctrl+q 打开查询窗口2.ctrl+/ 注释sql语句3.ctrl+shift +/ 解除注释4.ctrl+r 运行查询窗口的sql语句5.ctrl+shift+r 只运行选中的sql语句6.F6 打开一个MySQL命令行窗口7.ctrl+l 删除一行8.ctrl+n 打开一个新的查询窗口9.ctrl+w 关...
转载
发布博客 2020.06.26 ·
7734 阅读 ·
7 点赞 ·
1 评论 ·
45 收藏

基于大数据的用户画像构建(理论篇)

什么是用户画像?简而言之,用户画像是根据用户社会属性、生活习惯和消费行为等信息而抽象出的一个标签化的用户模型。构建用户画像的核心工作即是给用户贴“标签”,而标签是通过对用户信息分析而来的高度精炼的特征标识。举例来说,如果你经常购买一些玩偶玩具,那么电商网站即可根据玩具购买的情况替你打上标签“有孩子”,甚至还可以判断出你孩子大概的年龄,贴上“有 5-10 岁的孩子”这样更为具体的标签,而这些所有给你贴的标签统在一次,就成了你的用户画像,因此,也可以说用户画像就是判断一个人是什么样的人。除去“标
转载
发布博客 2020.06.23 ·
1020 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

kafka的分区策略是什么?

先回顾一下kafka的架构图kafka分区的本质就是为了解决数据的写入和消费时的负载均衡以及数据的容错。生产者将数据发送到kafka对应的主题,主题中存储数据是按分区存储的;同要消费者消费对应主题中的数据也是按分区消费的,在进一步思考,他是按怎么样的方式去分区的呢?这就是下面要说的kafka的分区策略问题。该机制也决定了生产者如何将消息发送到指定的分区,以及消费者如何消费分区内的数据。kafka生产者的分区策略1 随机策略2 轮询策略(kafka默认)3 按照key的分区策略
原创
发布博客 2020.06.07 ·
461 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

hdfs如何保证数据一致性?

1 namenode和SecondaryNamenode(周期性的保存namenode上的元数据信息)元数据一致性。2 namenode和datanode心跳机制保证副本的重新创建,如果DataNode死了,原来保存在这个机器上的副本就的重新再别的机器 上创建了。3 DataNode与DataNode副本创建数据是否一致性(网络传输校验和的问题)4 租约机制,就是保证一个文件中只允许被一个用户写入数据,租约是由NameNode发放给客户端。5 回滚机制,主要体现在hadoop升级的过程..
原创
发布博客 2020.06.05 ·
2512 阅读 ·
4 点赞 ·
3 评论 ·
2 收藏

hadoop中小文件的处理思路

1 小文件的出现原因 hadoop存储数据是按block存储的,现在默认是128M问一个文件块,一个文件块对应一个maptask。但是,读取的文件如果是200M等非128的倍数的文件块,客户端切分数据必然会产生小的数据块。2小文件造成的问题 这些小的数据块的元数据信息(位置,大小,名称)等都要保存到namenode中,若大量的小文件快信息保存在namnode中会占用很大的服务器内存,如果服务器在此启动要重新加载这些元数据信息到内存中必然要花费很长时间。 同时maptas...
原创
发布博客 2020.06.04 ·
259 阅读 ·
0 点赞 ·
4 评论 ·
0 收藏

Spark与MapReduce的区别是什么?

Spark和MapReduce都是可以处理海量数据,但是在处理方式和处理速度上存在着差异,总结如下:1.spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的。 MapReduce是将中间结果保存到磁盘中,减少了内存占用,牺牲了计算性能。 Spark是将计算的中间结果保存到内存中,可以反复利用,提高了处理数据的性能。2.Spark在处理数据时构建了DAG有向无环图,减少了shuffle和数据落地磁盘的次数Spark 计算比 MapReduce 快的根本原因在...
原创
发布博客 2020.05.31 ·
24079 阅读 ·
15 点赞 ·
0 评论 ·
140 收藏

spark如何将数据一步步封装成RDD的

对于spark的研究离不开RDD,但是spark如何将磁盘文件一步步封装成RDD的计算模型的?记录一下这个问题:梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数、Executor数、core数目的关系。输入可能以多个文件的形式存储在HDFS上,每个File都包含了很多块,称为Block。当Spark读取这些文件作为输入时,会根据具体数据格式对应的InputFormat进行解析,一般是将若干个Block合并成一个输入分
原创
发布博客 2020.05.28 ·
694 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

shell批量启动脚本之zookeeper

@zookper批量启动脚本zookper批量启动脚本 1 #!bin/bash 2 for host in master slave1 slave2 3 do 4 #输出当前服务器的zookeeper启动情况 5 echo "{$host}:{$1}ing..." 6 #启动zookeeper,根据自己安装路径不同修改 7 ssh $host "source /e...
原创
发布博客 2020.03.30 ·
241 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spark远程运行找不到winutils

错误如下图所示:下载呢对应hadoop版本的地址:https://github.com/4ttty/winutils改错:将hadoop添加进windows系统的环境变量
原创
发布博客 2019.08.14 ·
257 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多