<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[善皮之的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/OldDirverHelpMe</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; OldDirverHelpMe]]></copyright><item><title><![CDATA[【Spark】spark使用jdbc连接带有kerberos认证的hive jdbc]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/129481027</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/129481027</guid><author>OldDirverHelpMe</author><pubDate>Sun, 12 Mar 2023 21:21:01 +0800</pubDate><description><![CDATA[使用spark  jdbc API 访问带有kerberos的hive jdbc获取数据]]></description><category></category></item><item><title><![CDATA[【Spark】Spark的DataFrame向Impala写入数据异常及源码解析]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/129340927</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/129340927</guid><author>OldDirverHelpMe</author><pubDate>Sun, 05 Mar 2023 02:44:53 +0800</pubDate><description><![CDATA[spark使用impala jdbc 写入数据会发生报错。]]></description><category></category></item><item><title><![CDATA[【Star Rocks】静态分区表,变为动态分区表]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/129182062</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/129182062</guid><author>OldDirverHelpMe</author><pubDate>Thu, 23 Feb 2023 15:08:58 +0800</pubDate><description><![CDATA[star rocks 静态分区表变为动态分区表，实操。]]></description><category></category></item><item><title><![CDATA[【yarn】任务日志丢失问题分析]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/127895387</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/127895387</guid><author>OldDirverHelpMe</author><pubDate>Wed, 16 Nov 2022 23:48:23 +0800</pubDate><description><![CDATA[在yarn的web ui界面上，寻找job日志的时候，发现日志没了的原因探查。]]></description><category></category></item><item><title><![CDATA[【Spark】使用spark访问ali云hbase完全实践（增强版）]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126552791</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126552791</guid><author>OldDirverHelpMe</author><pubDate>Tue, 06 Sep 2022 01:22:51 +0800</pubDate><description><![CDATA[spark 访问云hbase]]></description><category></category></item><item><title><![CDATA[【EMR】EMR的gateway节点使用spark-shell失败]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126403709</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126403709</guid><author>OldDirverHelpMe</author><pubDate>Thu, 18 Aug 2022 13:11:39 +0800</pubDate><description><![CDATA[EMR的gateway节点。网络相关问题]]></description><category></category></item><item><title><![CDATA[【spark】join异常分析（逻辑问题）]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126384027</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126384027</guid><author>OldDirverHelpMe</author><pubDate>Wed, 17 Aug 2022 13:35:17 +0800</pubDate><description><![CDATA[spark join 数据表关系从多对一，变成了多对多]]></description><category></category></item><item><title><![CDATA[【EMR】HBase替换现有底层存储hdfs为oss]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126138134</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/126138134</guid><author>OldDirverHelpMe</author><pubDate>Wed, 03 Aug 2022 12:54:53 +0800</pubDate><description><![CDATA[EMR中hbase使用oss作为hbase的底层存储]]></description><category></category></item><item><title><![CDATA[【E-MR】NameNode的错误恢复记录]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/125976868</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/125976868</guid><author>OldDirverHelpMe</author><pubDate>Mon, 25 Jul 2022 16:09:17 +0800</pubDate><description><![CDATA[虽然，阿里云的E-MR的网页端可以很方便的操作这些服务的实例。如果真的遇上问题了，在网页端没有能够解决问题的话。那么我们不妨登陆到这些实例节点上面，用我们所拥有的知识，手动处理这些问题。...]]></description><category></category></item><item><title><![CDATA[【Spark报错】CDH的spark无法读取字段中含有特殊字符“-“的orc表mismatched input ‘-‘ expecting ‘:‘]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/125016964</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/125016964</guid><author>OldDirverHelpMe</author><pubDate>Sat, 28 May 2022 13:55:16 +0800</pubDate><description><![CDATA[背景故事
先看报错信息：
mismatched input ‘-’ expecting ‘:’

报错的意思就是说，在这个表里面，字段名中存在特殊符号“-”，无法解析报错。
这个问题会发生在CDH的spark中。如果不是CDH的spark版本的程序，可以跳过此文章。
解决方案：
不要使用CDH版本的spark就好了。比如我这里出现报错的时候，使用的版本是2.4.0-cdh6.1.1 那么把这个版本修改为2.4.0就好了。
过程分析
过程早就分析完了，下面写一篇结果：
环境版本

spark-sql_2.11]]></description><category></category></item><item><title><![CDATA[【Linux】Linux的命令行多并发脚本]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124561270</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124561270</guid><author>OldDirverHelpMe</author><pubDate>Tue, 03 May 2022 21:21:14 +0800</pubDate><description><![CDATA[【Linux】Linux的命令行多并发脚本
背景
有的时候我们需要在Linux服务器上，将程序放置在后台运行。避免以为客户端的连接中断导致前台的应用失败。所以我们的脚本执行可以在后面添加一个&amp;，这样的话，程序就会在后台执行。如果我们有3个脚本程序的话都可以在执行的脚本最后添加一个&amp;，这样的话，就会有3个脚本同时在后台执行了。那么，如果我们有100个这样的脚本程序呢？
分析
如果我们有100个脚本程序的话，这个时候需要考虑一下服务器是否能够同时跑100个脚本程序，如果有一个很牛逼的服务器的话，]]></description><category></category></item><item><title><![CDATA[【Oozie】CDH集群的oozie手把手快速入门]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124505317</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124505317</guid><author>OldDirverHelpMe</author><pubDate>Fri, 29 Apr 2022 23:40:04 +0800</pubDate><description><![CDATA[背景
在今天中午，本人快乐的干饭的时候，领导打电话过来询问oozie是个什么样的东西，能不能有个用例？在本人的理解里面，oozie主要是个调度工具。所以本篇为CDH集群的oozie的快速入门教程
环境准备

CDH集群一套
CDH集群中集成了oozie和hue

因为oozie整合进hue中界面化了，不像那种命令行提交的方式，要写很多繁杂的xml文件，所以本文就开始揭露，如何快速入门oozie

新建一个调度任务
本文使用一个pyspark作为调度用例：
pyspark的代码如下，文件名为:pyspark_]]></description><category></category></item><item><title><![CDATA[【Spark案例】本地访问cdh集群不将配置文件放入resource目录方式]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124413067</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124413067</guid><author>OldDirverHelpMe</author><pubDate>Mon, 25 Apr 2022 21:09:00 +0800</pubDate><description><![CDATA[【Spark案例】本地访问cdh集群不将配置文件放入resource目录方式
背景故事
今天我领导，他想用pyspark连接集群中的hive，作数据分析用。于是这变成了一个在本地集群中如何访问远程集群的问题。
在python环境中使用pyspark构建sparkSession的过程当中，config参数选项里面配置了一个hive.metastore.uris的时候，sparkSession能够访问hive的数据库，及表信息。但是读取数据的时候会发生报错。
问题分析
在java中
如果是maven构建的jav]]></description><category></category></item><item><title><![CDATA[【Java】利用反射获取泛型类的名称]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124219804</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124219804</guid><author>OldDirverHelpMe</author><pubDate>Sat, 16 Apr 2022 20:56:19 +0800</pubDate><description><![CDATA[【Java】利用反射获取泛型类的名称
背景
在阅读Flink源码的TypeInfomation类的时候，研究这个类是如何获取数据的类型名称的过程中，学习到了如何获取泛型名称的方法。在此记录一下：
有如下场景：
父类：
public abstract class Parent&lt;T&gt; {
    public Parent(){
    }
}

子类
public class Son&lt;String&gt; extends Parent&lt;T&gt; {
    public Son(){]]></description><category></category></item><item><title><![CDATA[java对于抽象类的getClass()方法]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124206377</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/124206377</guid><author>OldDirverHelpMe</author><pubDate>Sat, 16 Apr 2022 00:14:57 +0800</pubDate><description><![CDATA[java对于抽象类的getClass()方法
背景：
在阅读flink1.14的源代码的时候，有一段代码的getClass()方法输出的结果很让我意外。在此记录一下，代表我经历过
首先定义一个抽象类，在这个无参的构造函数中调用了一个getClass().getName()的方法获取当前的类名
public abstract class Parent {
    public Parent(){
        System.out.println(getClass().getName());
    }
}]]></description><category></category></item><item><title><![CDATA[【Spark】SparkJdbc并发读取的partitionColumn规则]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/123806839</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/123806839</guid><author>OldDirverHelpMe</author><pubDate>Mon, 28 Mar 2022 23:16:38 +0800</pubDate><description><![CDATA[【Spark】SparkJdbc并发读取的partitionColumn规则
参考: spark 官方文档
使用spark的jdbc的方式读取数据的操作：
方式1:
spark.read.option(...).jdbc(url,table,properties)

方式2:
spark.fomat('jdbc').option(...).load()

可以注意到，在spark通过jdbc读取数据时候是有一个option的选项的。
本次主要讨论spark jdbc的多连接读取参数:

partitionC]]></description><category></category></item><item><title><![CDATA[Java: Map 转换为Json和Json转换成Map]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/123288596</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/123288596</guid><author>OldDirverHelpMe</author><pubDate>Sat, 05 Mar 2022 03:13:48 +0800</pubDate><description><![CDATA[Map 转换json 和 json转换成map]]></description><category></category></item><item><title><![CDATA[spark sql截断小数做非四舍五入操作]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/122152997</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/122152997</guid><author>OldDirverHelpMe</author><pubDate>Sun, 26 Dec 2021 11:29:18 +0800</pubDate><description><![CDATA[spark sql截断小数做非四舍五入操作
在开发过程当中，会遇到这样的一种情况。保留四位小数。比如

这个图中，spark sql可以做到保留四位小数，但是这四位小数中的第五位是以四舍五入的方式进行进位的。
最近遇到了一个业务场景，需要保留四位小数，但是第五位无论是多少都要进行舍弃，那么我们可以这样去做：
* 现将这个数字扩大10000倍，然后在将这个数字进行向下取整数操作，然后将这个数除以10000。最后再转换为decimal(6,4) 保留四位精度小数。

如上图所示：已经成功将temp转换为我们需要]]></description><category></category></item><item><title><![CDATA[Spark Sql读取字符串json数组]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/120984076</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/120984076</guid><author>OldDirverHelpMe</author><pubDate>Wed, 27 Oct 2021 00:17:23 +0800</pubDate><description><![CDATA[Spark Sql读取字符串数组
开门见山
样例数据：
造数sql:
df:
SELECT "[{'id':1,'name':'abc'},{'id':1,'name':'abc'}]" AS js

+---------------------------------------------+
|js                                           |
+---------------------------------------------+
|[{'id':1,']]></description><category></category></item><item><title><![CDATA[2021-10-22 pyspark读取kudu表]]></title><link>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/120951741</link><guid>https://blog.youkuaiyun.com/OldDirverHelpMe/article/details/120951741</guid><author>OldDirverHelpMe</author><pubDate>Mon, 25 Oct 2021 16:17:36 +0800</pubDate><description><![CDATA[pyspark 读取kudu表
背景：
有一个pyspark程序需要读取kudu表的数据。数据存储在kudu中，使用impala的话也不好读取kudu表中的数据—有一个kerberos认证的过程，阻碍了数据的读取。另外当前版本的hive是没有做针对kudu相关的配置。所以也无法使用hive去读取kudu表的数据。
解决办法
参考: kudu的官方文档
针对spark读取kudu的方式：
引入kudu-spark2_2.11,jar

scala 可以通过maven的pom配置映入这个依赖包
pyspark可]]></description><category></category></item></channel></rss>