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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

大数据相关整理

發布時間:2024/7/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据相关整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.hdfs

1.1.namenode

所有文件的讀寫入口,用來保存文件的元信息
元信息包括:

fsimage文件:文件權限信息文件在block塊的偏移量文件的位置信息 editlogs文件:對文件的寫操作日志文件寫日志指令,為了安全同步,重啟會執行指令

1.2.datanode

用來真正保存文件內容的節點
datanode有很多個,保存的是若干個block塊

1.3.secondarynamenode

定期合并editlogs文件,防止editlogs文件過大,文件過大時,重啟會特別慢。
這個editlogs就類似于redis的AOF持久化機制,也是定期得合并,不然太大就會造成重啟慢。

1.4.block

hdfs中保存文件的基本單位,默認128M,可改。
如果文件大于128M,會拆分成多個block塊,保存在多個datanode中。
分布式就是將block打散放在不同的node上,
每個block塊都有一個唯一標識,這個唯一標識保存在namenode的fsimage文件中

2.mapreduce

2.1 map

歸納整理,將hdfs文件解析拆成key-value

2.2 reduce

真正的計算,一般是多臺機器同時計算

在hadoop2中,mapreduce實現用到了Yarn組件

2.3 Yarn組件(yet another resource nevatitor : 下一代資源管理者)

2.3.1 ResourceManager資源管理器(簡稱RM)

mapreduce的執行入口

接收客戶端的job請求 協調job所用資源 產生一個jobId和appMaster(后面的AM)通信 監聽任務的開始和結束
2.3.2 NodeManager(簡稱NM)

運行在各個datanode上,有幾個datanode,就有幾個NodeManager
負責和RM,AM通信
由NM啟動各個YarnChild

2.3.3 MRAppMaster(簡稱AM)

由RM在各個NM中指定一個機器啟動
負責具體的某一個map任務,即:

負責從hdfs中下載job運行的資源 同時將job資源分發到各個NM中 監聽各個YarnChild的狀態
2.3.4 YarnChild

由NM在各個節點上啟動YarnChild
執行map,YarnChild1啟動,關閉
執行reduce,YarnChild2啟動,關閉
如果某個YarnChild不行了,由AM再選一個NM啟動一個YarnChild,再繼續干

2.4 shuffe(洗牌)

map完會shuffe,再交給reduce
shuffe:合并key,并排序(按照key字典順序排)

2.5 split計算過程

一個split對應一個map任務
有幾個split,在mapreduce過程中就會有幾個map任務并行計算

2.6 job提交過程

從job.writeForCompletion(),開始debug

2.7 mapreduce中常見的輸入輸出類型

3.hbase(hadoop database)

存儲在hdfs之上的,對hdfs的封裝,簡化hdfs的操作
是一種key-value類型的nosql數據庫
沒有事務
基于內存
只支持key查詢
面向列存儲

傳統的關系型數據庫,一行可以存儲多個列的值 hbase中,一行只存儲一列

3.1 hbase概念

3.1.1 namespace(命名空間)

hbase中沒有數據庫的概念,但有個namespace,命名空間,類似于庫

3.1.2 table(表)
3.1.3 column family(列簇)

分類管理列,由相同特性的列組成
一個表有多個列簇
列簇必須在創建表的時候指定
列簇不宜設置過多,能用一個就不用兩個,用列簇是為了方便管理

3.1.4 column(列)

隸屬于列簇,一個列簇下可以有多個列
列名需在添加數據時指定

3.1.5 value(值,保存列名對應的值)

同一條數據,可以有多個值,每個值對應一個版本
通過timestamp當版本號,一個value默認可以保存3個版本

存儲舉例:key value1 name:zhangsan 1 age:18 1 city:beijin 2 name:lisi 2 age:28

3.2 hbase核心服務

3.2.1 hregion

一個hregion包含了某個表的全部或局部內容
默認每個hregion的大小為256M

一個hregion只保存一個表的信息 在hregion中,數據是按照key的自然順序排好序的 一個hregion由一個或多個hstore組成 每一個hstore保存一個column family,及列簇 每個hstore包含一個memstore和多個storFile
3.2.2 hmaster

監聽用戶對表的操作(建表,刪表,修改表信息)
hmaster集群,采用副本集,一主多從,用zk管理

3.2.3 zookeeper

4.hive

對mapreduce的封裝,可以當成一個數據庫
hive是建立在hadoop上的數據倉庫基礎架構
倉庫保存的數據一般都是經過特殊處理的(一般是ELT)

4.1 hive組件

4.1.1 Driver
4.1.2 metastore

4.2 hive分區

4.3 hive分桶

4.4 hive中的類型

5.flume

日志收集組件
一般是將日志收集到hdfs存儲
這里的日志不僅僅是nginx中的日志,任何數據都可以認為是日志

5.1 三大核心組件

5.1.1 source

定義數據的來源,即日志來源

5.1.2 channel

通道,用來傳輸數據
為什么有chanel:如果source很快,sink很慢,就會宕機,所以加上channel來緩解sink的壓力

5.1.3 sink

定義數據的目的地

5.2 agent

三大組件合起來叫agent
agent分別管理若干個source,channel,sink
一個agent代表一個JVM

5.3 event

事件,數據傳輸的基本單位
flume在讀數據的時候,是一個event一個event的讀
event可以理解為日志文件中的一行或多行

5.4 flume的強大之處

1.使用簡單
2.可以進行各種source,channel,sink的組裝,即一個agent中可以有多個source,多個channel,多個sink,多個組件之間可以相互搭配
3.可以進行多級agent,提高單agent的抓取效率,agent之間一般用消息隊列傳輸,比如kafka
4.多個agent數據合并成一個agent,稱為sink的聚合
5.多路agent,即一個source,對應多個channel,對應多個不同的sink,最終存儲到不同的地方
6.flume支持集群,有負載均衡和容災策略
7.flume內置了和其他組件的的集成方式(這也是用flume的主要原因)

比如: 和hdfs集成 和hbase集成 和hive集成 和kafka集成 和自定義集合組件集成

總結

以上是生活随笔為你收集整理的大数据相关整理的全部內容,希望文章能夠幫你解決所遇到的問題。

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