日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BigBrother的大数据之旅Day 14 某项目流程

發布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BigBrother的大数据之旅Day 14 某项目流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

某平臺日志項目流程

架構分析


1 埋點程序把數據 以url的方式提交給nginx服務器
2 nginx服務器把日志信息(文本文件)保存到本地硬盤
3 flume,安裝中nginx上通過主動方式讀取日志信息,源為本地磁盤,目的地為hdfs
4 在ide上運行數據清洗程序把,數據提交到hbase數據庫
5 使用mr程序對hbase的數據進行處理,存放到mysql中
6 使用hive創建外部表,關聯到hbase中到數據,通過hql語句保存結果到hive中(實質是hdfs上)
7 通過sqoop工具把hive中的數據導入mysql中

Flume安裝和配置

Flume是分布式的日志采集、聚合和傳輸的系統。
1 Flume支持在日志系統中定制各類數據發送方和接收方。
2 當前Flume有兩個版本Flume 0.9X版本的統稱Flume-og,Flume1.X版本的統稱Flume-ng。

source: 數據的源頭
channel: 數據的通道
sink:可以理解為數據的目的地
每個flume為一個agent
一般很少使用單個agent,一般使用兩層架構,一個flume連接多個flume

配置過程
1 解壓flume: apache-flume-1.6.0-bin
2 在flume的env.sh中添加java_home

export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64

3 在profile文件中添加flume的環境變量

export FLUME_HOME=/usr/local/flume/apache-flume-1.6.0-bin/ export PATH=$PATH:$FLUME_HOME/bin

記得一定要source /etc/profile文件
4 查看是否安裝成功

5配置文件
配置文件在conf中有個conf.temple模板
cp一份到任意目錄,開始配置吧

# example.conf: A single-node Flume configuration# Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1# Describe/configure the source #a1.sources.r1.type = spooldir a1.sources.r1.type = exec a1.sources.r1.command = cat /root/mylog/access2.log #a1.sources.r1.spoolDir=/root/mylog/ #使用spool也一樣,它會讀取目錄下的所有文件 # Describe the sink #目的為hdfs,也可以為logger什么的 a1.sinks.k1.type = hdfs #以一天為一個目錄 a1.sinks.k1.hdfs.path = hdfs://node1:8020/flume/datas/%Y-%m-%d/ #這兩句必須合起來寫 a1.sinks.k1.hdfs.useLocalTimeStamp = true #每個文件的大小為30240 #這個三個roll是一組,一旦滿足一個條件就合并文件,0為該項失效 a1.sinks.k1.hdfs.rollSize = 30240 -- 大小 字節 a1.sinks.k1.hdfs.rollInterval = 0 -- 時間 s,每多少s 創建一個文件(好像是這樣的) #基于event數量進行文件滾動。默認是10,即event個數達到10時進行文件滾動 a1.sinks.k1.hdfs.rollCount = 0 --#這種策略很簡單,如果文件在hdfs.idleTimeout秒的時間里都是閑置的,沒有任何數據寫入,那么當前文件關閉,滾動到下一個文件(去掉.tmp后綴)。 a1.sinks.k1.hdfs.idleTimeout =0 #輸出的格式 a1.sinks.k1.hdfs.fileType=DataStream# Use a channel which buffers events in memory #使用內存管道,也可以使用硬盤 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100# Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1

source分為主動和被動源,本次使用的是主動源,如exec
被動源如JMS
如果sink為hdfs,那么必須在flume的服務器上有hadoop

使用命令:

bin/flume-ng agent --conf conf目錄 --conf-file flume配置文件 --name a1(默認a1和配置文件中需相同) -Dflume.root.logger=INFO,console

總結

以上是生活随笔為你收集整理的BigBrother的大数据之旅Day 14 某项目流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。