<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[需求是无耻的]]></title><description><![CDATA[需求是无耻的，数据的生命周期不是我们能完全左右的。]]></description><link>https://blog.youkuaiyun.com/u014236468</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014236468]]></copyright><item><title><![CDATA[2020-12-16]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/111273965</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/111273965</guid><author>u014236468</author><pubDate>Wed, 16 Dec 2020 14:59:01 +0800</pubDate><description><![CDATA[spark-sql 读取hive报出Caused by: java.lang.NullPointerException
**20/12/16 14:37:27 ERROR SparkSQLDriver: Failed in [select student_id from tmp.tmp_user_device_log_info_temp where dt = '2020-10-02' limit 10]
java.lang.RuntimeException: serious problem**
	at or]]></description><category></category></item><item><title><![CDATA[java判断时间格式是否为指定格式，时间是否正确]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/108576870</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/108576870</guid><author>u014236468</author><pubDate>Mon, 14 Sep 2020 12:06:33 +0800</pubDate><description><![CDATA[/**
     *
     * @param strDate 时间
     * @param formatter new SimpleDateFormat("yyyy-MM-dd"),new SimpleDateFormat("yyyy-MM-dd yyyy-MM-dd HH:mm:ss")
     * @param legalLen 10 , 19
     * @return
     */
    private static boolean isDate(String strDate,Da.]]></description><category></category></item><item><title><![CDATA[linux ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES) 安装mysql]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/107586789</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/107586789</guid><author>u014236468</author><pubDate>Sat, 25 Jul 2020 23:20:40 +0800</pubDate><description><![CDATA[一般这个错误是由密码错误引起，解决的办法自然就是重置密码。

我使用的是root账户。

1.重置密码的第一步就是跳过MySQL的密码认证过程，方法如下：

#vi/etc/my.cnf

在[mysqld]后面第一行添加“skip-grant-tables”用来跳过密码验证的过程



保存文档并退出：

#:wq
2.接下来我们需要重启MySQL：

/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)



3.重启之后...]]></description><category></category></item><item><title><![CDATA[hdfs常用命令：一]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81909508</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81909508</guid><author>u014236468</author><pubDate>Tue, 21 Aug 2018 16:11:25 +0800</pubDate><description><![CDATA[
文件操作


(1) 列出HDFS下的文件



hdfs dfs -ls /

(2) 列出HDFS文件下名为users的文档中的文件

hdfs dfs -ls /users

(3) 上传文件

将hadoop目录下的test01文件上传到HDFS上并重命名为test02：

hdfs dfs -put test01 /test02

(4) 文件被复制到本地系统中

将HDFS中的tes...]]></description><category></category></item><item><title><![CDATA[spark读取postgresql中的数据]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81775554</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81775554</guid><author>u014236468</author><pubDate>Fri, 17 Aug 2018 12:18:45 +0800</pubDate><description><![CDATA[spark读取postgresql中的数据： 
代码实现

val pgUrl = &quot;jdbc:postgresql://ip:5433/databaseName&quot;
// 读取pg中的数据
val df1 = hiveContext.read.format(&quot;jdbc&quot;)
    .option(&quot;url&quot;, pgUrl)
    .option(&quot;user&quot;, &quot;user&quot;)
    .opti...]]></description><category></category></item><item><title><![CDATA[spark将数据加载到postgresql中的Scala实现]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81775512</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81775512</guid><author>u014236468</author><pubDate>Fri, 17 Aug 2018 12:12:29 +0800</pubDate><description><![CDATA[spark将数据加载到postgresql中： 
方法一：



def save2Postgresql(jdbcDf: DataFrame, url: String, tableName: String) = {
    jdbcDf.insertIntoJDBC(url, tableName, false)
  }

方法二：



def save2Postgresql(jdbcDf: Da...]]></description><category></category></item><item><title><![CDATA[Scala实现--获取两个日期至今的所有日期包括开始日期和结束日期]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81775178</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81775178</guid><author>u014236468</author><pubDate>Fri, 17 Aug 2018 11:47:08 +0800</pubDate><description><![CDATA[获取两个日期至今的所有日期包括开始日期和结束日期：

 /**
   * 获取两个日期之间的日期
   * @param start 开始日期
   * @param end 结束日期
   * @return 日期集合
   */
  def getBetweenDates(start: String, end: String) = {
    val startData = new Simpl...]]></description><category></category></item><item><title><![CDATA[Hive修改表语句]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81537963</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81537963</guid><author>u014236468</author><pubDate>Thu, 09 Aug 2018 15:42:52 +0800</pubDate><description><![CDATA[1.ALTER TABLE table_name RENAME TO new_table_name; 
上面这个命令可以重命名表，数据所在的位置和分区都没有改变。

2：改变列名/类型/位置/注释

1.ALTER TABLE table_name CHANGE[CLOUMN] col_old_name col_new_name column_type[CONMMENT col_conmment]...]]></description><category></category></item><item><title><![CDATA[Hive中关于日期函数使用]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81511044</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81511044</guid><author>u014236468</author><pubDate>Wed, 08 Aug 2018 16:43:41 +0800</pubDate><description><![CDATA[1.时间戳函数 
日期转时间戳：从1970-01-01 00:00:00 UTC到指定时间的秒数 
获得当前时区的UNIX时间戳: select unix_timestamp();  1533716607

将指定的时间转为UNIX时间戳 :select unix_timestamp('2018-08-08 16:22:01'); 1533716521

将指定的时间转为UNIX时间戳: sele...]]></description><category></category></item><item><title><![CDATA[Hadoop Yarn 的三种资源调度器详解]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81510416</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81510416</guid><author>u014236468</author><pubDate>Wed, 08 Aug 2018 16:19:23 +0800</pubDate><description><![CDATA[理想情况下，我们应用对Yarn资源的请求应该立刻得到满足，但现实情况资源往往是有限的，特别是在一个很繁忙的集群，一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中，负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题，很难找到一个完美的策略可以解决所有的应用场景。为此，Yarn提供了多种调度器和可配置的策略供我们选择。 
一、调度器的选择

在Yarn中有三种调...]]></description><category></category></item><item><title><![CDATA[hive函数大全]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81355475</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81355475</guid><author>u014236468</author><pubDate>Thu, 02 Aug 2018 11:18:50 +0800</pubDate><description><![CDATA[hive的内置方法很多，特被容易忘，记录在次方便使用。 
1.内置运算符  
1.1关系运算符  
运算符 类型 说明  
A = B 所有原始类型 如果A与B相等,返回TRUE,否则返回FALSE 。 
A &amp;lt;&amp;gt; B 所有原始类型 如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”，结果返回”NULL”。 
A != B 所有原始类型 如果A不等于B返回TRU...]]></description><category></category></item><item><title><![CDATA[hive 和spark sql 中日期相关使用技巧(一)]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81283355</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81283355</guid><author>u014236468</author><pubDate>Mon, 30 Jul 2018 13:11:17 +0800</pubDate><description><![CDATA[hive 和spark sql 中日期相关使用技巧 
常用日期／时间相关字段、类型、及示例：

类型包括：BIGINT，TIMESTAMP和STRING 
下面是这几种类型之间相互转换的方法：

BIGINT转TIMESTAMP：from_unixtime(time/1000) 
TIMESTAMP转BIGINT：unix_timestamp(time)*1000 
BIGINT转STRING(y...]]></description><category></category></item><item><title><![CDATA[net.sf.json的jar包：JSONArray问题解决]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81283072</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81283072</guid><author>u014236468</author><pubDate>Mon, 30 Jul 2018 12:37:00 +0800</pubDate><description><![CDATA[今天在使用经纬度通过al的接口获取详细地址时使用到了 
net.sf.json的jar包：JSONArray 
用maven添加net.sf.json的jar包的时候，代码如下：



 
&amp;amp;lt;dependency&amp;amp;gt; 
    &amp;amp;lt;groupId&amp;amp;gt;net.sf.json-lib&amp;amp;lt;/groupId&amp;amp;gt; 
    &amp;amp;lt;artifactId&amp;amp;gt;jso]]></description><category></category></item><item><title><![CDATA[java设计模式之单例模式]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/81236079</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/81236079</guid><author>u014236468</author><pubDate>Fri, 27 Jul 2018 13:59:33 +0800</pubDate><description><![CDATA[常见的几种单例模式 
　　单例模式：是一种常用的软件设计模式，在它的核心结构中值包含一个被称为单例的特殊类。一个类只有一个实例，即一个类只有一个对象实例。 
　　 
　　 单例模式可以分为懒汉式和饿汉式：

　　　　懒汉式单例模式：在类加载时不初始化。

　　　　饿汉式单例模式：在类加载时就完成了初始化，所以类加载比较慢，但获取对象的速度快。

　　第一种（懒汉，线程不安全）:



public...]]></description><category></category></item><item><title><![CDATA[Hive动态分区需要注意的参数]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/80929765</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/80929765</guid><author>u014236468</author><pubDate>Thu, 05 Jul 2018 16:56:17 +0800</pubDate><description><![CDATA[使用Hive动态分区需要注意设定以下参数：

1.是否开启动态分区功能，默认false关闭。 
默认值：false

hive.exec.dynamic.partition =false

使用动态分区时候，该参数必须设置成true;

hive.exec.dynamic.partition =true

2.动态分区的模式: 
默认值：strict

hive.exec.dynamic.part...]]></description><category></category></item><item><title><![CDATA[hive表的建表语句批量获取]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/80928134</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/80928134</guid><author>u014236468</author><pubDate>Thu, 05 Jul 2018 15:44:47 +0800</pubDate><description><![CDATA[有时hive中的一个数据库中有大量的表，对表的建表语句备份就显得重要和麻烦了，


但是是使用hive的命令和shell脚本会很容易实现

1.导出所有表的名称(可以指定数据库名称)

hive -e &amp;quot;use dbName;show tables;&amp;quot; &amp;amp;gt; tablesName.txt

2.使用hive内置语法导出hive表的建表语句，这里使用的是一个shell

#!/bin/bash ...]]></description><category></category></item><item><title><![CDATA[Hive计算引擎的切换方法]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/80927783</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/80927783</guid><author>u014236468</author><pubDate>Thu, 05 Jul 2018 15:28:16 +0800</pubDate><description><![CDATA[1、配置mapreduce计算引擎



set hive.execution.engine=mr;

2、配置spark计算引擎



set hive.execution.engine=spark;

3、配置tez 计算引擎



set hive.execution.engine=tez;]]></description><category></category></item><item><title><![CDATA[Hive外部表误删后的恢复]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/79413630</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/79413630</guid><author>u014236468</author><pubDate>Thu, 01 Mar 2018 15:56:55 +0800</pubDate><description><![CDATA[Hive中的外部表是比较安全的一种数据管理方式，有时也会误删使用外部表有一个很好的好处，如果不小心将表误删了，只需要重新创建外部表然后使用下面的语句修复分区即可。MSCK REPAIR TABLE  table_name;...]]></description><category></category></item><item><title><![CDATA[自动化监控spark进程并重启]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/79410109</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/79410109</guid><author>u014236468</author><pubDate>Thu, 01 Mar 2018 11:26:26 +0800</pubDate><description><![CDATA[自动化监控spark进程并重启，实际生产中可能会出现服务进程挂掉的异常，自动监控与重启是非常重要。




1、监控主节点的shell脚本



[plain] view
 plain copy






#!/bin/bash  
#  
master=`ps -ef | grep Master | grep spark | awk '{print $2}]]></description><category></category></item><item><title><![CDATA[001:spark-submit提交参数之num-executors，num-executors，executor-cores]]></title><link>https://blog.youkuaiyun.com/u014236468/article/details/78968001</link><guid>https://blog.youkuaiyun.com/u014236468/article/details/78968001</guid><author>u014236468</author><pubDate>Thu, 04 Jan 2018 10:16:17 +0800</pubDate><description><![CDATA[1.num-executors
参数说明：
该参数用于设置Spark作业总共要用多少个Executor进程来执行。Driver在向YARN集群管理器申请资源时，YARN集群管理器会尽可能按照你的设置来在集群的各个工作节点上，启动相应数量的Executor进程。这个参数非常之重要，如果不设置的话，默认只会给你启动少量的Executor进程，此时你的Spark作业的运行速度是非常慢的。
参数调优]]></description><category></category></item></channel></rss>