0)Hive解析Ngxin日志中的時(shí)間

時(shí)間格式 :04/Jun/2021:22:11:18 +0800
這個(gè)時(shí)間是個(gè)并非Nginx的標(biāo)準(zhǔn)時(shí)間格式 ,原始的為 :[04/Jun/2021:22:11:18 +0800],可以在代碼里面自行截取知允,使用subString方法.

1勇哗,自己實(shí)現(xiàn)UDF函數(shù)
2皆警,打包上傳到HDFS
3,創(chuàng)建UDF

1.1 導(dǎo)入maven依賴(lài)

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <repositories>
        <repository>
            <id>hive-udf</id>
            <url>https://maven.aliyun.com/repository/spring-plugin/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>2.3.7</version>
        </dependency>
    </dependencies>

1.2 創(chuàng)建Java類(lèi)


import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;


@Description(
        name = "formatNginxDate",
        value = "_FUNC_(strNginxDate) - 輸入格式為 04/Jun/2021:22:11:18 +0800",
        extended = "格式化nginx日志時(shí)間:格式為 yyyy-MM-dd"
)


public class format_nginxDate extends UDF {

    public String evaluate(String nginxTime){
        String resTime = null;
        try {
            SimpleDateFormat dateFormat = null;
            SimpleDateFormat resFormat = null;
            if (nginxTime.trim().length() > 24) {
                dateFormat = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.ENGLISH);
                // 轉(zhuǎn)化為 Date
                Date parseDate = dateFormat.parse(nginxTime);
                //進(jìn)行格式化
                resFormat = new SimpleDateFormat("yyyy-MM-dd");
                resTime = resFormat.format(parseDate);

            }
        }catch ( Exception e ){
            return null;
        }finally {
            return resTime;
        }

    }

}

2.1 打包 mvn package

hive-udf-1.0-SNAPSHOT.jar

2.2 上傳到HDFS

su hdfs
hdfs dfs -mkdir /lib
linux本地包路徑 /developers/hive-udf-1.0-SNAPSHOT.jar
hdfs dfs -put /developers/hive-udf-1.0-SNAPSHOT.jar /lib

3,創(chuàng)建UDF函數(shù)
登錄到Hive命令行
3.1 創(chuàng)建臨時(shí)函數(shù)

add jar hdfs://nameservice1:8020/lib/hive-udf-1.0-SNAPSHOT.jar
如果添加不成功昂利,去掉兩頭的單引號(hào)再次進(jìn)行嘗試
create temporary function format_nginxDate as 'com.tiens.hiveUDF.format_nginxDate';

3.2 創(chuàng)建永久函數(shù)

CREATE FUNCTION format_nginxDate AS 'com.tiens.hiveUDF.format_nginxDate' USING JAR 'hdfs://nameservice1:8020/lib/hive-udf-1.0-SNAPSHOT.jar';

3.3 刪除函數(shù)

DROP FUNCTION IF EXISTS format_nginxDate

下一章:Nginx原始數(shù)據(jù)寫(xiě)入HDFS如何使用正則跟Hive表做映射

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铁坎,隨后出現(xiàn)的幾起案子蜂奸,更是在濱河造成了極大的恐慌,老刑警劉巖硬萍,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扩所,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡朴乖,警方通過(guò)查閱死者的電腦和手機(jī)祖屏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)助赞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人袁勺,你說(shuō)我怎么就攤上這事嫉拐。” “怎么了魁兼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵婉徘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我咐汞,道長(zhǎng)盖呼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任化撕,我火速辦了婚禮几晤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘植阴。我一直安慰自己蟹瘾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布掠手。 她就那樣靜靜地躺著憾朴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喷鸽。 梳的紋絲不亂的頭發(fā)上众雷,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音做祝,去河邊找鬼砾省。 笑死,一個(gè)胖子當(dāng)著我的面吹牛混槐,可吹牛的內(nèi)容都是我干的编兄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼声登,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼狠鸳!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起捌刮,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤碰煌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后绅作,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體芦圾,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年俄认,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了个少。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洪乍。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖夜焦,靈堂內(nèi)的尸體忽然破棺而出壳澳,到底是詐尸還是另有隱情,我是刑警寧澤茫经,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布巷波,位于F島的核電站,受9級(jí)特大地震影響卸伞,放射性物質(zhì)發(fā)生泄漏抹镊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一荤傲、第九天 我趴在偏房一處隱蔽的房頂上張望垮耳。 院中可真熱鬧,春花似錦遂黍、人聲如沸终佛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铃彰。三九已至,卻和暖如春榜贴,著一層夾襖步出監(jiān)牢的瞬間豌研,已是汗流浹背妹田。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工唬党, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鬼佣。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓驶拱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親晶衷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蓝纲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容