国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

離線數(shù)倉同步數(shù)據(jù)1

這篇具有很好參考價(jià)值的文章主要介紹了離線數(shù)倉同步數(shù)據(jù)1。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

[gpb@hadoop104 ~]$ cd /opt/module/flume/
[gpb@hadoop104 flume]$ cd job/
[gpb@hadoop104 job]$ rm file_to_kafka.conf

com.atguigu.gmall.flume.interceptor.TimestampInterceptor$Builder文章來源地址http://www.zghlxwxcb.cn/news/detail-695973.html

#定義組件
a1.sources=r1
a1.channels=c1
a1.sinks=k1
#配置sources
a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSource
a1.sources.r1.kafka.bootstrap.servers = hadoop102:9092,hadoop103:9092
a1.sources.r1.kafka.topics=topic_log
a1.sources.r1.kafka.consumer.group.id=topic_log
a1.sources.r1.batchSize = 2000
a1.sources.r1.batchDurationMillis = 1000
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = com.atguigu.gmall.flume.interceptor.TimestampInterceptor$Builder

#配置channel
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /opt/module/flume/checkpoint/behavior1
a1.channels.c1.useDualCheckpoints = false
a1.channels.c1.dataDirs = /opt/module/flume/data/behavior1
a1.channels.c1.maxFileSize = 2146435071
a1.channels.c1.capacity = 1000000
a1.channels.c1.keep-alive = 3

#配置sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /origin_data/gmall/log/topic_log/%Y-%m-%d
a1.sinks.k1.hdfs.filePrefix = log
a1.sinks.k1.hdfs.round = false

a1.sinks.k1.hdfs.rollInterval = 10
a1.sinks.k1.hdfs.rollSize = 134217728
a1.sinks.k1.hdfs.rollCount = 0


#控制輸出文件類型
a1.sinks.k1.hdfs.fileType = CompressedStream
a1.sinks.k1.hdfs.codeC = gzip

#組裝 
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2.1.3 日志消費(fèi)Flume配置實(shí)操
1)創(chuàng)建Flume配置文件
在hadoop104節(jié)點(diǎn)的Flume的job目錄下創(chuàng)建kafka_to_hdfs_log.conf
[atguigu@hadoop104 flume]$ vim job/kafka_to_hdfs_log.conf 
2)配置文件內(nèi)容如下

#定義組件
a1.sources=r1
a1.channels=c1
a1.sinks=k1

#配置source1
a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSource
a1.sources.r1.batchSize = 5000
a1.sources.r1.batchDurationMillis = 2000
a1.sources.r1.kafka.bootstrap.servers = hadoop102:9092,hadoop103:9092,hadoop104:9092
a1.sources.r1.kafka.topics=topic_log
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = com.atguigu.gmall.flume.interceptor.TimestampInterceptor$Builder

#配置channel
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /opt/module/flume/checkpoint/behavior1
a1.channels.c1.dataDirs = /opt/module/flume/data/behavior1
a1.channels.c1.maxFileSize = 2146435071
a1.channels.c1.capacity = 1000000
a1.channels.c1.keep-alive = 6

#配置sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /origin_data/gmall/log/topic_log/%Y-%m-%d
a1.sinks.k1.hdfs.filePrefix = log
a1.sinks.k1.hdfs.round = false


a1.sinks.k1.hdfs.rollInterval = 10
a1.sinks.k1.hdfs.rollSize = 134217728
a1.sinks.k1.hdfs.rollCount = 0

#控制輸出文件類型
a1.sinks.k1.hdfs.fileType = CompressedStream
a1.sinks.k1.hdfs.codeC = gzip

#組裝 
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
注:配置優(yōu)化
1)FileChannel優(yōu)化
通過配置dataDirs指向多個(gè)路徑,每個(gè)路徑對(duì)應(yīng)不同的硬盤,增大Flume吞吐量。
官方說明如下:
Comma separated list of directories for storing log files. Using multiple directories on separate disks can improve file channel peformance
checkpointDir和backupCheckpointDir也盡量配置在不同硬盤對(duì)應(yīng)的目錄中,保證checkpoint壞掉后,可以快速使用backupCheckpointDir恢復(fù)數(shù)據(jù)
2HDFS Sink優(yōu)化
(1HDFS存入大量小文件,有什么影響?
元數(shù)據(jù)層面:每個(gè)小文件都有一份元數(shù)據(jù),其中包括文件路徑,文件名,所有者,所屬組,權(quán)限,創(chuàng)建時(shí)間等,這些信息都保存在Namenode內(nèi)存中。所以小文件過多,會(huì)占用Namenode服務(wù)器大量內(nèi)存,影響Namenode性能和使用壽命
計(jì)算層面:默認(rèn)情況下MR會(huì)對(duì)每個(gè)小文件啟用一個(gè)Map任務(wù)計(jì)算,非常影響計(jì)算性能。同時(shí)也影響磁盤尋址時(shí)間。
	(2HDFS小文件處理
官方默認(rèn)的這三個(gè)參數(shù)配置寫入HDFS后會(huì)產(chǎn)生小文件,hdfs.rollInterval、hdfs.rollSize、hdfs.rollCount
基于以上hdfs.rollInterval=3600,hdfs.rollSize=134217728,hdfs.rollCount =0幾個(gè)參數(shù)綜合作用,效果如下:
(1)文件在達(dá)到128M時(shí)會(huì)滾動(dòng)生成新文件
(2)文件創(chuàng)建超3600秒時(shí)會(huì)滾動(dòng)生成新文件

3)編寫Flume攔截器
(1)數(shù)據(jù)漂移問題

(2)在com.atguigu.gmall.flume.interceptor包下創(chuàng)建TimestampInterceptor類
package com.atguigu.gmall.flume.interceptor;

import com.alibaba.fastjson.JSONObject;
import org.apache.flume.Context;
import org.apache.flume.Event;
import org.apache.flume.interceptor.Interceptor;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;

public class TimestampInterceptor implements Interceptor {
    

    @Override
    public void initialize() {

    }

    @Override
    public Event intercept(Event event) {

		//1、獲取header和body的數(shù)據(jù)
        Map<String, String> headers = event.getHeaders();
        String log = new String(event.getBody(), StandardCharsets.UTF_8);

		//2、將body的數(shù)據(jù)類型轉(zhuǎn)成jsonObject類型(方便獲取數(shù)據(jù))
        JSONObject jsonObject = JSONObject.parseObject(log);

		//3、header中timestamp時(shí)間字段替換成日志生成的時(shí)間戳(解決數(shù)據(jù)漂移問題)
        String ts = jsonObject.getString("ts");
        headers.put("timestamp", ts);

        return event;
    }

    @Override
    public List<Event> intercept(List<Event> list) {
        for (Event event : list) {
            intercept(event);
        }
        return list;
    }

    @Override
    public void close() {

    }

    public static class Builder implements Interceptor.Builder {
        @Override
        public Interceptor build() {
            return new TimestampInterceptor();
        }

        @Override
        public void configure(Context context) {
        }
    }
}3)重新打包

(4)需要先將打好的包放入到hadoop104的/opt/module/flume/lib文件夾下面。

2.1.4 日志消費(fèi)Flume測(cè)試

1)啟動(dòng)Zookeeper、Kafka集群
2)啟動(dòng)日志采集Flume
[atguigu@hadoop102 ~]$ f1.sh start
3)啟動(dòng)hadoop104的日志消費(fèi)Flume
[atguigu@hadoop104 flume]$ bin/flume-ng agent -n a1 -c conf/ -f job/kafka_to_hdfs_log.conf -Dflume.root.logger=info,console
4)生成模擬數(shù)據(jù)
[atguigu@hadoop102 ~]$ lg.sh 
5)觀察HDFS是否出現(xiàn)數(shù)據(jù)
2.1.5 日志消費(fèi)Flume啟停腳本
若上述測(cè)試通過,為方便,此處創(chuàng)建一個(gè)Flume的啟停腳本。
1)在hadoop102節(jié)點(diǎn)的/home/atguigu/bin目錄下創(chuàng)建腳本f2.sh
[atguigu@hadoop102 bin]$ vim f2.sh
	在腳本中填寫如下內(nèi)容
#!/bin/bash

case $1 in
"start")
        echo " --------啟動(dòng) hadoop104 日志數(shù)據(jù)flume-------"
        ssh hadoop104 "nohup /opt/module/flume/bin/flume-ng agent -n a1 -c /opt/module/flume/conf -f /opt/module/flume/job/kafka_to_hdfs_log.conf >/dev/null 2>&1 &"
;;
"stop")

        echo " --------停止 hadoop104 日志數(shù)據(jù)flume-------"
        ssh hadoop104 "ps -ef | grep kafka_to_hdfs_log | grep -v grep |awk '{print \$2}' | xargs -n1 kill"
;;
esac
2)增加腳本執(zhí)行權(quán)限
[atguigu@hadoop102 bin]$ chmod 777 f2.sh
3)f2啟動(dòng)
[atguigu@hadoop102 module]$ f2.sh start
4)f2停止
[atguigu@hadoop102 module]$ f2.sh stop

到了這里,關(guān)于離線數(shù)倉同步數(shù)據(jù)1的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 離線數(shù)倉建設(shè)之?dāng)?shù)據(jù)導(dǎo)出

    離線數(shù)倉建設(shè)之?dāng)?shù)據(jù)導(dǎo)出

    為了方便報(bào)表應(yīng)用使用數(shù)據(jù),需將ADS各項(xiàng)指標(biāo)統(tǒng)計(jì)結(jié)果導(dǎo)出到MySQL,方便熟悉 SQL 人員使用。 創(chuàng)建car_data_report數(shù)據(jù)庫: 1.1.2 創(chuàng)建表 ① 里程相關(guān)統(tǒng)計(jì) 創(chuàng)建ads_mileage_stat_last_month表,存儲(chǔ)里程相關(guān)統(tǒng)計(jì)數(shù)據(jù)。 ② 告警相關(guān)統(tǒng)計(jì) 創(chuàng)建ads_alarm_stat_last_month表,存儲(chǔ)告警相關(guān)的統(tǒng)計(jì)數(shù)據(jù)。

    2024年03月16日
    瀏覽(19)
  • 看這篇就明白大數(shù)據(jù)實(shí)時(shí)數(shù)倉、離線數(shù)倉、數(shù)據(jù)湖之間的關(guān)系

    看這篇就明白大數(shù)據(jù)實(shí)時(shí)數(shù)倉、離線數(shù)倉、數(shù)據(jù)湖之間的關(guān)系

    ??20世紀(jì)70年代,MIT(麻省理工)的研究員致力于研究一種優(yōu)化的技術(shù)架構(gòu),該架構(gòu)試圖將業(yè)務(wù)處理系統(tǒng)和分析系統(tǒng)分開,即將業(yè)務(wù)處理和分析處理分為不同層次,針對(duì)各自的特點(diǎn)采取不同的架構(gòu)設(shè)計(jì)原則,MIT的研究員認(rèn)為這兩種信息處理的方式具有顯著差別,以至于必須采取完

    2024年02月08日
    瀏覽(21)
  • 離線數(shù)倉(一)【數(shù)倉概念、需求架構(gòu)】

    離線數(shù)倉(一)【數(shù)倉概念、需求架構(gòu)】

    ????????今天開始學(xué)習(xí)數(shù)倉的內(nèi)容,之前花費(fèi)一年半的時(shí)間已經(jīng)學(xué)完了 Hadoop、Hive、Zookeeper、Spark、HBase、Flume、Sqoop、Kafka、Flink 等基礎(chǔ)組件。把學(xué)過的內(nèi)容用到實(shí)踐這是最重要的,相信會(huì)有很大的收獲。 ????????數(shù)據(jù)倉庫( Data Warehouse ),是 為企業(yè)制定決策,提供數(shù)

    2024年02月20日
    瀏覽(20)
  • 離線數(shù)倉分層

    1、清晰數(shù)據(jù)結(jié)構(gòu) :數(shù)倉每一層都有對(duì)應(yīng)的作用,方便在使用時(shí)更好定位與了解 2、數(shù)據(jù)血緣追蹤 :清晰知道表/任務(wù)上下游,方便排查問題,知道下游哪個(gè)模塊在使用,提升開發(fā)效率及后期管理維護(hù) 3、減少重復(fù)開發(fā) :完善數(shù)倉好中間層,減少后期不必要的開發(fā),從而減少資

    2024年02月06日
    瀏覽(22)
  • 阿里云生態(tài)離線數(shù)倉

    阿里云生態(tài)離線數(shù)倉

    ? ? ? ? 功能齊全:10多年大數(shù)據(jù)建設(shè)沉淀完整的平臺(tái),覆蓋數(shù)據(jù)開發(fā)治理的全生命周期 ? ? ? ? 簡單易用:全圖形化界面,SQL為主的數(shù)據(jù)開發(fā)方式 ? ? ? ? 安全穩(wěn)定:雙11日千萬級(jí)任務(wù)穩(wěn)定調(diào)度,金融級(jí)數(shù)據(jù)安全保障 ? ? ? ? 開放兼容:?支持多種大數(shù)據(jù)引擎綁定,開放

    2024年02月05日
    瀏覽(21)
  • 一百八十六、大數(shù)據(jù)離線數(shù)倉完整流程——步驟五、在Hive的DWS層建動(dòng)態(tài)分區(qū)表并動(dòng)態(tài)加載數(shù)據(jù)

    一百八十六、大數(shù)據(jù)離線數(shù)倉完整流程——步驟五、在Hive的DWS層建動(dòng)態(tài)分區(qū)表并動(dòng)態(tài)加載數(shù)據(jù)

    經(jīng)過6個(gè)月的奮斗,項(xiàng)目的離線數(shù)倉部分終于可以上線了,因此整理一下離線數(shù)倉的整個(gè)流程,既是大家提供一個(gè)案例經(jīng)驗(yàn),也是對(duì)自己近半年的工作進(jìn)行一個(gè)總結(jié)。 1、Hive的DWS層建庫建表語句 --如果不存在則創(chuàng)建hurys_dc_dws數(shù)據(jù)庫 create database if not exists hurys_dc_dws; --使用hurys_

    2024年02月07日
    瀏覽(20)
  • 【從0開始離線數(shù)倉項(xiàng)目】——新能源汽車數(shù)倉項(xiàng)目介紹

    【從0開始離線數(shù)倉項(xiàng)目】——新能源汽車數(shù)倉項(xiàng)目介紹

    目錄 1、數(shù)據(jù)倉庫概念 2、項(xiàng)目需求及架構(gòu)設(shè)計(jì) 3、集群資源規(guī)劃設(shè)計(jì) ?4、車輛日志字段說明 數(shù)據(jù)倉庫(Data Warehouse)是為企業(yè)提供數(shù)據(jù)支持,用以協(xié)助企業(yè)制定決策、改進(jìn)業(yè)務(wù)流程和提高產(chǎn)品質(zhì)量等方面的工具。它可以接收多種類型的輸入數(shù)據(jù),如業(yè)務(wù)數(shù)據(jù)、日志數(shù)據(jù)和爬蟲

    2024年02月13日
    瀏覽(23)
  • 一百八十二、大數(shù)據(jù)離線數(shù)倉完整流程——步驟一、用Kettle從Kafka、MySQL等數(shù)據(jù)源采集數(shù)據(jù)然后寫入HDFS

    一百八十二、大數(shù)據(jù)離線數(shù)倉完整流程——步驟一、用Kettle從Kafka、MySQL等數(shù)據(jù)源采集數(shù)據(jù)然后寫入HDFS

    經(jīng)過6個(gè)月的奮斗,項(xiàng)目的離線數(shù)倉部分終于可以上線了,因此整理一下離線數(shù)倉的整個(gè)流程,既是大家提供一個(gè)案例經(jīng)驗(yàn),也是對(duì)自己近半年的工作進(jìn)行一個(gè)總結(jié)。 項(xiàng)目行業(yè)屬于交通行業(yè),因此數(shù)據(jù)具有很多交通行業(yè)的特征,比如轉(zhuǎn)向比數(shù)據(jù)就是統(tǒng)計(jì)車輛左轉(zhuǎn)、右轉(zhuǎn)、直行

    2024年02月07日
    瀏覽(20)
  • 離線數(shù)倉中,為什么用兩個(gè)flume,一個(gè)kafka

    實(shí)時(shí)數(shù)倉中,為什么沒有零點(diǎn)漂移問題? 因?yàn)閒link直接取的事件時(shí)間 用kafka是為了速度快,并且數(shù)據(jù)不丟,那為什么既用了kafkachannel,也用了kafka,而不只用kafkachannel呢? 因?yàn)樾枰鞣逄罟?離線數(shù)倉中,為什么用兩個(gè)flume,一個(gè)kafka,直接用taildirsource,kafkachannel,hdfssink不行嗎?

    2024年02月14日
    瀏覽(19)
  • 尚硅谷大數(shù)據(jù)項(xiàng)目《在線教育之離線數(shù)倉》筆記002

    尚硅谷大數(shù)據(jù)項(xiàng)目《在線教育之離線數(shù)倉》筆記002

    ?視頻地址:尚硅谷大數(shù)據(jù)項(xiàng)目《在線教育之離線數(shù)倉》_嗶哩嗶哩_bilibili 目錄 P025 P026 P027 P028 P029 P030 P031 P032 P033 P034 P035 P036 P037 P038 P025 在Hive所在節(jié)點(diǎn)部署Spark P026 3 )Hive on Spark 測(cè)試 (1)啟動(dòng)hive客戶端 [atguigu@hadoop102 hive]$ hive (2)創(chuàng)建一張測(cè)試表 hive (default) create table stud

    2024年02月12日
    瀏覽(49)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包