<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[梦，不可及，所以可期待...]]></title><description><![CDATA[梦在远方，路在脚下。  然而，常常一脚两个坑]]></description><link>https://blog.youkuaiyun.com/kyle0349</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kyle0349]]></copyright><item><title><![CDATA[【大数据】【调度】Airflow 和 Azkaban的选型]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/108947115</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/108947115</guid><author>kyle0349</author><pubDate>Sun, 29 Nov 2020 17:25:40 +0800</pubDate><description><![CDATA[Airflow和Azkaban这两个组件对大数据集群来说是相对独立的，都是可以独立于集群安装，所以不管是cdh还是hdp集群，都可以选择其中之一作为集群的任务调度系统。
我们公司有2套集群，国内国外各一套，然后因为历史原因国内用的是Azkaban，国外用的是Airflow，考虑到以后技术栈的统一，打算慢慢将两个集群的组件统一化，所以就有了调研两个调度系统对比这件事。
这里就将这两个组件拿出来对比一下，这里没有拿oozie出来说是因为用我用oozie的不多，并且oozie是强依赖于hadoop的，不适合作为.]]></description><category></category></item><item><title><![CDATA[【大数据】【hadoop】查看hdfs文件命令]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/109151699</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/109151699</guid><author>kyle0349</author><pubDate>Sun, 29 Nov 2020 15:44:16 +0800</pubDate><description><![CDATA[查看hdfs文件的blockSize
# 查看文件的blockSize
[root@cdh01 text]# hdfs dfs -stat "%n %b %o %r %y %F" /tmp/example/access_2013_05_31.log
access_2013_05_31.log 157069653 134217728 3 2020-10-07 02:05:07 regular file
[root@cdh01 text]# hadoop fs  -stat "%n %b %o %r %y %F]]></description><category></category></item><item><title><![CDATA[【maven】【install:install-file】手动将jar添加到maven本地仓库]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/109482459</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/109482459</guid><author>kyle0349</author><pubDate>Sun, 29 Nov 2020 13:17:08 +0800</pubDate><description><![CDATA[背景： 最近在编译spark源码 3.0.0-cdh6.3.2， 遇到一直无法下载某些包的情况，于是想到从已经装好的集群里面讲jar拿出来用，但????不能直接添加到项目，所以想到使用maven的命令将jar包安装到maven的.m2路径下，这样在用maven编译时直接从本地读取jar包即可。

mvn install:install-file -Dfile="/Users/peterpan/Documents/work/cluster_jars/3.0.0-cdh6.3.2/jars/hadoop-yar]]></description><category></category></item><item><title><![CDATA[【spark2】【源码学习】【分区数】spark读取 hdfs/可分割/多个 的文件时是如何划分分区]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/109234721</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/109234721</guid><author>kyle0349</author><pubDate>Sun, 25 Oct 2020 15:50:04 +0800</pubDate><description><![CDATA[一、简要概述

1、goalSize从单个文件totalSize/minPartitions变成多个文件totalSize/minPartitions，
2、然后依旧是通过goalSize，minSize，blockSize计算出splitSize，
3、最后将splitSize单独应用到每个文件上面，将所有分区加起来就是最后得到的总分区了。

二、minPartitions设置为3的分片情况

三、minPartitions设置为2的分片情况

总结、

参考 【spark读取 本地/可分割/多个 的文件]]></description><category></category></item><item><title><![CDATA[【spark2】【源码学习】【分区数】spark读取 hdfs/可分割/单个 的文件时是如何划分分区]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/109152000</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/109152000</guid><author>kyle0349</author><pubDate>Sun, 18 Oct 2020 23:39:59 +0800</pubDate><description><![CDATA[前言
spark怎么知道读取的是本地文件还是hdfs的文件呢？

前面写过一篇博客【spark2的textFile()是怎么实例化各个不同的fs(FileSystem)】，主要是指【本地文件系统】和【hadoop文件系统】，我们看到源码里最后是根据文件路径url的scheme来判断的：
file: LocalFileSystem
hdfs: DistributeFileSystem

1、从InputSplit[] getSplits(JobConf job, int numSplits)说起

因为前部分]]></description><category></category></item><item><title><![CDATA[【spark2】【源码学习】【分区数】spark读取 本地/可分割/多个 的文件时是如何划分分区]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/109142310</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/109142310</guid><author>kyle0349</author><pubDate>Sun, 18 Oct 2020 11:41:40 +0800</pubDate><description><![CDATA[spark的textFile API 支持读取单个文件，也支持读取文件夹路径并将文件夹路径下的文件都读取进内存处理，前面已经写了一篇关于 【本地/可分割/单个】 文件的分区处理，今天来看下 【本地/可分割/多个】 文件是怎么处理的。

一、简要概述

1、goalSize从单个文件totalSize/minPartitions变成多个文件totalSize/minPartitions，
2、然后依旧是通过goalSize，minSize，blockSize计算出splitSize，
3、最后将splitS.]]></description><category></category></item><item><title><![CDATA[【spark2】【源码学习】【代码】spark2的textFile()是怎么实例化各个不同的fs(FileSystem)]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/109007063</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/109007063</guid><author>kyle0349</author><pubDate>Sun, 11 Oct 2020 22:07:13 +0800</pubDate><description><![CDATA[参考博客内 “【spark2】【源码学习】【分区数】spark读取 本地/可分割/单个 的文件时是如何划分分区”， 直接跳到 getPartitions 这个方法。

一、获取RDD分区的函数 getPartitions()
// HadoopRDD.scala
  override def getPartitions: Array[Partition] = {
    val jobConf = getJobConf()
    // add the credentials here as this c.]]></description><category></category></item><item><title><![CDATA[【spark2】【源码学习】【分区数】spark读取 本地/可分割/单个 的文件时是如何划分分区]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/108937532</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/108937532</guid><author>kyle0349</author><pubDate>Tue, 06 Oct 2020 17:15:00 +0800</pubDate><description><![CDATA[大数据计算中很关键的一个概念就是分布式并行计算，意思就是讲一份原始数据切分成若干份，然后分发到多个机器或者单个机器多个虚拟出来的内存容器中同时执行相同的逻辑，先分发(map)，然后聚合(reduce)的一个过程。
那么问题是原始文件是怎么切分的呢，在spark读取不同的数据源，切分的逻辑也是不同的。
首先spark是有改变分区的函数的，分别是Coalesce()方法和rePartition()方法，但是这两个方法只对shuffle过程生效，包括参数spark.default.parallelism也只是对.]]></description><category></category></item><item><title><![CDATA[【spark2】【源码学习】【环境编译】在idea导入spark源码,执行example并debug]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/108931035</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/108931035</guid><author>kyle0349</author><pubDate>Mon, 05 Oct 2020 21:37:55 +0800</pubDate><description><![CDATA[一直想搞清楚spark读取不同数据源时的分区是怎么决定的，趁着国庆有时间终于下决心来做这个事。关于这个分区数，很多说法，最后决定自己看下源码，也算是接触spark源码的第一步吧。挺多坑，零零散散花了2天多的时间，总算跑通spark源码里面的example了。mark一下。

一、spark源码包下载&amp;解压
spark下载传送门（可能需要翻墙）

下载完，拷贝到自己想放的目录，双击即可解压得到项目文件夹。
二、安装maven&amp;scala
2.1、 先到刚刚解压出来的spark源码根目录，打开.]]></description><category></category></item><item><title><![CDATA[【python3】日期相关的一些方法，不断更新]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/108906618</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/108906618</guid><author>kyle0349</author><pubDate>Sat, 03 Oct 2020 00:36:59 +0800</pubDate><description><![CDATA[import datetime
import time
import calendar
from datetime import timedelta


# 获取当前日期或时间
def get_current_time(format="%Y-%M-%d %H:%M:%S"):
    now = time.strftime(format, time.localtime())
    return now


# 获取指定日期的前x天的日期
def get_x_day_ago_with_point_date(]]></description><category></category></item><item><title><![CDATA[【linux用户模块】用户/用户组的管理]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/108690599</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/108690599</guid><author>kyle0349</author><pubDate>Sun, 20 Sep 2020 12:13:43 +0800</pubDate><description><![CDATA[新增一个组：
语法：groupadd [-g GID] groupname
1、[-g GID] 是用来自定义gid， 如果不自定义可以省略，会按照系统默认的gid创建组，跟用户一样，gid也是从500开始的。
2、创建组的时候，使用已存在的gid，组名都会报【已存在】错误

[root@cdh01 ~]# groupadd pgx02
[root@cdh01 ~]# tail -n5 /etc/group
pgx:x:1001:
supergroup:x:1002:pgx
pgx01:x:1003:
p.]]></description><category></category></item><item><title><![CDATA[【linux用户模块】/etc/passwd的字段含义]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/108690091</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/108690091</guid><author>kyle0349</author><pubDate>Sun, 20 Sep 2020 10:33:09 +0800</pubDate><description><![CDATA[[root@cdh01 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:]]></description><category></category></item><item><title><![CDATA[【nifi数据采集】nifi给kafka打数据遇到的坑 - kafka2.1 的listeners配置]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/105612258</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/105612258</guid><author>kyle0349</author><pubDate>Sun, 19 Apr 2020 12:16:36 +0800</pubDate><description><![CDATA[如下图，在测试使用nifi往kafka打数据的时候，发现通过ambari安装的kafka收不到数据，而通过docker安装的kafka则可以收到数据。


nifi后台log日志报错信息
2020-04-19 11:09:02,916 INFO [Timer-Driven Process Thread-10] o.a.kafka.common.utils.AppInfoParser Kafka ...]]></description><category></category></item><item><title><![CDATA[centos7.2 将mysql添加到服务中]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/105325910</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/105325910</guid><author>kyle0349</author><pubDate>Sun, 05 Apr 2020 13:47:43 +0800</pubDate><description><![CDATA[手动安装的mysql是不会自动添加到系统服务中的。如果需要配置开机启动，最好是将mysql配置成系统服务，也便于管理。

确定mysql运行时的pid文件位置
1、先去mysql安装目录启动mysql
[root@host01 mysql]# cd /usr/local/mysql/support-files/
[root@host01 support-files]# pwd
/usr/loca...]]></description><category></category></item><item><title><![CDATA[在 centos7.2安装docker 并设置阿里云源]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/105177697</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/105177697</guid><author>kyle0349</author><pubDate>Sun, 29 Mar 2020 18:05:40 +0800</pubDate><description><![CDATA[现在docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。Docker CE 即社区免费版，Docker EE 即企业版，需付费使用。个人使用Docker CE 好了

删除系统就的docker组件
[root@host01 ~]# yum remove -y docker docker-client docker-client-latest docker-...]]></description><category></category></item><item><title><![CDATA[VMware安装centos7.2后配置网络并设置固定ip]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/105174302</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/105174302</guid><author>kyle0349</author><pubDate>Sun, 29 Mar 2020 10:57:53 +0800</pubDate><description><![CDATA[开始接触centos7，目前公司用的还是centos6.8，不过最近要接触docker，docker需要centos的内核是3.10以上，而且看到centos7也开始普及，就也试着学习接触centos7吧。感觉区别还是挺明显的。安装后第一步应该就是配置上网吧。

查看本机ip（非必须）
1、按照习惯先看下本机ip， 熟悉的命令是ifconfig，但会如下：
[root@localhost ~]#...]]></description><category></category></item><item><title><![CDATA[CDH5.14  spark2.4.0配置python3 以及读取hive表]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/103039404</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/103039404</guid><author>kyle0349</author><pubDate>Tue, 12 Nov 2019 22:06:43 +0800</pubDate><description><![CDATA[在cdh5.14上装好spark5.14后，如果使用pyspark的话，默认是使用系统的python，一般是python2.7
配置使用python3
1、在各个节点上安装好python3，路径要一致
2、在cdh的配置页面

2.1、选择spark2
2.2、选择配置页签
2.3、搜索env
2.4、在spark2-conf/spark-env.sh 的 Spark 2 服务高级配置代码段（安全...]]></description><category></category></item><item><title><![CDATA[centos6 python3.6 安装配置jupyer]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/100062763</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/100062763</guid><author>kyle0349</author><pubDate>Sun, 25 Aug 2019 14:51:32 +0800</pubDate><description><![CDATA[1、安装
1.1、安装python3.6
参考：https://blog.youkuaiyun.com/kyle0349/article/details/98474013

编译安装前一定要yum 安装一些linux相关的依赖。

1.2、安装jupyter

安装完后， jupyter并没有配置到环境变量中，也就是不能直接在命令行使用jupyter，可以在python安装目录bin下面找到，然后创建一个软连...]]></description><category></category></item><item><title><![CDATA[cdh集群的spark2和jupyter集成]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/99705846</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/99705846</guid><author>kyle0349</author><pubDate>Sun, 18 Aug 2019 16:18:20 +0800</pubDate><description><![CDATA[之前部门有小伙伴使用pandas做数据分析，使用的是jupyter做验证开发，后来要使用spark，所以尝试在jupyter写spark代码，这样做的案例貌似不多，可能是比较偏门的。
1. 前提
1.1、spark2已经安装好，在shell可以正常使用pyspark2
1.2、jupyter已经安装好，可以正常启动使用python3
2. 集成
2.1、在cm页面添加spark和jupyter的关...]]></description><category></category></item><item><title><![CDATA[CDH5.14安装spark2]]></title><link>https://blog.youkuaiyun.com/kyle0349/article/details/99703767</link><guid>https://blog.youkuaiyun.com/kyle0349/article/details/99703767</guid><author>kyle0349</author><pubDate>Sun, 18 Aug 2019 13:49:20 +0800</pubDate><description><![CDATA[cdh5.14 默认自带的spark版本是1.6的，如果需要使用spark2，那么需要另外安装。官网上给出了CDH版本和spark2版本对应的说明以及离线安装包的地址，在安装时需要安装自己集群版本下载相应的spark2：
https://www.cloudera.com/documentation/spark2/latest/topics/spark2_requirements.html

1.下...]]></description><category></category></item></channel></rss>