{eval=Array;=+count(Array);}
近幾年,大數據的概念逐漸深入人心,大數據的趨勢越來越火爆。但是,大數據到底是個啥?怎么樣才能玩好大數據呢?
大數據的基本含義就是海量數據,麥肯錫全球研究所給出的定義是:一種規模大到在獲取、存儲、管理、分析方面大大超出了傳統數據庫軟件工具能力范圍的數據集合,具有海量的數據規模、快速的數據流轉、多樣的數據類型和價值密度低四大特征。
數字經濟的要素之一就是大數據資源,現在大家聊得最多的大數據是基于已經存在的大數據的應用開發。
如今,大數據技術已應用在各行各業。小麥舉個例子,講述一下最貼近我們生活的民生服務是如何運用大數據。
最近電視新聞提及到的“一網統管”精準救助場景,傳統的救助方式往往通過困難家庭申請、審核、審批等多項程序,遇到需要跨部門、跨層級、跨街區協調解決的個案,還需要召開各級協調會的形式協商解決。
現在通過“精準救助”的方式,民政部門在平時的摸排中了解情況,將相關信息錄入到“一網統管”數據中心,再根據數據模型識別出需要協助的家庭,隨后形成走訪工單派發給社工對其進行幫扶,從而提升救助的效率,做到雪中送炭。
在數字化政府改造之前,每個部門只掌握各自分管的數據,形成“信息孤島”;有了大數據分析平臺后,所有的數據信息,便打通了“任督二脈”。
政府可以充分利用大數據技術打造“一網統管”精準救助場景,極大提升了社會救助的科學性和精準性,讓城市變得更加溫暖。
就以悟空問答為例說說大數據的故事。以下說的數字都不是真實的,都是我的假設。
比如每天都有1億的用戶在悟空問答上回答問題或者閱讀問答。
假設平均有1000萬的用戶每天回答一個問題。一個問題平均有1000的字, 平均一個漢字占2個字節byte,三張圖片, 平均一帳圖片300KB。那么一天的數據量就是:
文字總量:10,000,000 * 1,000 * 2 B = 20 GB
圖片總量: 10,000,000 * 3 * 300KB = 9 TB
為了收集用戶行為,所有的進出悟空問答頁面的用戶。點擊,查詢,停留,點贊,轉發,收藏都會產生一條記錄存儲下來。這個量級更大。
所以粗略估計一天20TB的數據量. 一般的PC電腦配置大概1TB,一天就需要20臺PC的存儲。
如果一個月的,一年的數據可以算一下有多少。傳統的數據庫系統在量上就很難做到。
另外這些數據都是文檔類型的數據。需要各種不同的存儲系統支持,比如NoSQL數據庫。
需要分布式數據存儲,比如Hadoop的HDFS。
上述1000萬個答案,會有1億的人閱讀。提供服務的系統成百上千。這些數據需要在網上各個系統間來回傳播。需要消息系統比如Kafka。
同時在線的用戶量在高峰時可能達到幾千萬。如此高的訪問量需要數前臺服務器同時提供一致的服務。為了給用戶提供秒級的服務體現,需要加緩存系統比如redis。
所有的內容包括圖片都會還用來機器學習的分析,從而得到每個用戶的喜好,給用戶推薦合適的內容和廣告。還有如此大量的數據,必須實時的分析,審核,審核通過才能發布,人工審核肯定做不到,必須利用機器來智能分析,需要模式識別,機器學習,深度學習。實時計算需要Spark,Flink等流式計算技術。
幾千臺服務器,協同工作。網絡和硬件會經常出問題。這么多的資源能夠得到有效利用需要利用云計算技術,K8S等容器管理工具。還需要分布式系統的可靠性和容災技術。
本人,@小馬過河Vizit,專注于分布式系統原理和實踐分享。希望利用動畫生動而又準確的演示抽象的原理。歡迎關注。
關于我的名字。小馬過河Vizit,意為凡事像小馬過河一樣,需要自己親自嘗試,探索才能獲得樂趣和新知。Vizit是指Visualize it的縮寫。一圖勝千言,希望可以利用動畫來可視化一些抽象的原理。
這是我通常與想要了解大數據的人進行對話:
問:什么是大數據?
答:大數據是描述龐大數據的術語。
問:現在,大數據有多大?
答:如此龐大,以至于無法用常規工具處理?
問:通常的工具是什么意思?
答:普通文件系統,數據庫等工具。
所有這些大數據工具都有一個共同的特性:分布式計算。
因此,大數據是一個通常只能通過分布式的工具才能解決的問題。我知道這些天,每個人都在嘗試將他們的BI(商業情報)工具描繪成大數據工具,但不要被喧鬧聲所欺騙。
問:哪些典型的大數據問題?
答:請考慮以下幾點:
1,如何建立存儲和保存500 TB電影/視頻/文字的存儲?
2,一臺機器實際讀取500 TB會花費多少時間?
3,如何建立可以存儲數百萬列和數十億行數據而不會像烏龜一樣慢的數據存儲?
4,如何提供每秒數百萬的讀寫?
5,如何解決真正復雜的問題?還記得時間的復雜性嗎?想象一下,電子郵件哦公司,必須每秒鐘來自不同用戶30GB 電子郵件自動分類為5個類別(比如是否垃圾郵件),
或判斷數百萬個網站的內容,您必須準備網站名稱的層次樹,以使兩個同級彼此非常相似。這種問題稱為分類。
它們比通常的數據排序更為復雜。
隨著數據的進一步增長,這些問題變得非常不可能解決。
解決此類問題需要巨大的計算能力-就RAM,CPU,磁盤讀取速度而言。
問:大數據有什么用?
答:如果規模巨大,幾乎每個業務計算問題都可以轉換為大數據問題。
大數據是對海量數據進行存儲、計算、統計、分析處理的一系列處理手段,處理的數據量通常是TB級,甚至是PB或EB級的數據,這是傳統數據處理手段所無法完成的,其涉及的技術有分布式計算、高并發處理、高可用處理、集群、實時性計算等,匯集了當前IT領域熱門流行的IT技術。
1、大數據的概念:大數據(big data),IT行業術語,是指無法在一定時間范圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。具有海量的數據規模、快速的數據流轉、多樣的數據類型和價值密度低的四大特征。
大數據的5V特點(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性)。
2、大數據有哪些技術:
基礎:
a、linux的操作和shell編程
b、zookeeper分布式系統的協調服務
c、redis內存數據庫
d、java的并發包編程:反射、socket編程、NIO、netty、RPC、jvm
離線:
a、hdfs分布式文件系統
b、mapreduce 分布式運算框架
c、hive數據倉庫工具
d、hbase nosql數據庫
e、離線輔助工具 flume、sqoop、azkaban
實時流式計算
a、storm
b、kafka
內存計算
spark(spark-core、spark-sql、spark-streaming、spark-mllib)
實時計算
flink
編程語言
java、scala、python(根據自己掌握的情況選擇)
最近新接觸的技術(都是數據庫)
druid、doris、kudu
大數據 big data 國標定義:
支持一個或多個應用領域,按概念結構組織的數據集合,其概念結構描述這些數據的特征及其對
應實體間的聯系。具有數量巨大、種類多樣、流動速度快、特征多變等特征,并且難以用傳統數據體
系結構和數據處理技術進行有效組織、存儲、計算、分析和管理的數據集。
[來源:GB/T 35274-2017,定義3.1]
1、基礎概念大數據是指無法在一定時間范圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。大數據技術則主要用來解決海量數據的存儲和分析。
2、特點分析
大數據的5V特點(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性)。
3、發展過程
Google在2004年前后發表的三篇論文,分別是文件系統GFS、計算框架MapReduce、NoSQL數據庫系統BigTable。海量數據文件,分析計算,并存儲,確立了大數據的基本原理和思路。
天才程序員DougCutting,也是Lucene、Nutch項目發起人。根據Google論文原理初步實現類似GFS和MapReduce的功能,后來發展成為大名鼎鼎的Hadoop。
再后來,Hadoop經過高速的發展,已經形成一個生態體系,基于Hadoop之上,有實時計算,離線計算,NoSQL存儲,數據分析,機器學習等一系列內容。
從這一系列事情發展看技術規律:Google業務實踐中創造性的提出論文作為基礎,業務的成長和需求,迫使技術不斷更新換代。所以業務是技術不斷發展的關鍵。
大數據技術可以定義為一種軟件應用程序,旨在分析,處理和提取來自極其復雜的大型數據信息,而傳統數據處理軟件則無法處理。
我們需要大數據處理技術來分析大量實時數據,并提出預測和方案以減少未來的風險。
在類別中的大數據技術分為兩大類型:
1.運營大數據技術
2.分析大數據技術
首先,運營大數據與我們生成的常規日常數據有關。這可能是在線交易,社交媒體或特定 組織的數據等。
運營大數據技術的一些示例如下:
·網上訂票,其中包括您的火車票,飛機票,電影票等。
·在線購物是您的淘寶,京東交易等等。
·來自社交媒體網站(如微信,QQ等)的數據。
·任何跨國公司的員工詳細信息。
其次,分析性大數據就像大數據技術的高級版本一樣。它比運營大數據要復雜一些。簡而言之,分析性大數據是實際績效的組成部分,而關鍵的實時業務決策是通過分析運營大數據來制定的。
分析大數據技術的幾個示例如下:
·股票行銷
·進行太空任務,其中任何信息都是至關重要的。
·天氣預報信息。
·可以監視特定患者健康狀況的醫學領域。
投資者眼里是金光閃閃的兩個字:資產。
比如,Facebook上市時,評估機構評定的有效資產中大部分都是其社交網站上的數據。
很多初學者,對大數據的概念都是模糊不清的,大數據是什么,能做什么,學的時候,該按照什么線路去學習,學完往哪方面發展?
如果把大數據比作一種產業,那么這種產業實現盈利的關鍵,在于提高對數據的“加工能力”,通過“加工”實現數據的“增值”。
Target 超市以20多種懷孕期間孕婦可能會購買的商品為基礎,將所有用戶的購買記錄作為數據來源,通過構建模型分析購買者的行為相關性,能準確的推斷出孕婦的具體臨盆時間,這樣Target的銷售部門就可以有針對的在每個懷孕顧客的不同階段寄送相應的產品優惠卷。
Target的例子是一個很典型的案例,這樣印證了維克托·邁爾-舍恩伯格提過的一個很有指導意義的觀點:通過找出一個關聯物并監控它,就可以預測未來。
Target通過監測購買者購買商品的時間和品種來準確預測顧客的孕期,這就是對數據的二次利用的典型案例。如果,我們通過采集駕駛員手機的GPS數據,就可以分析出當前哪些道路正在堵車,并可以及時發布道路交通提醒;通過采集汽車的GPS位置數據,就可以分析城市的哪些區域停車較多,這也代表該區域有著較為活躍的人群,這些分析數據適合賣給廣告投放商。不管大數據的核心價值是不是預測,但是基于大數據形成決策的模式已經為不少的企業帶來了盈利和聲譽。
簡單說有三大核心技術:拿數據,算數據,賣數據。
一、數據采集與預處理
對于各種來源的數據,包括移動互聯網數據、社交網絡的數據等,這些結構化和非結構化的海量數據是零散的,也就是所謂的數據孤島,此時的這些數據并沒有什么意義,數據采集就是將這些數據寫入數據倉庫中,把零散的數據整合在一起,對這些數據綜合起來進行分析。
二、數據存儲
Hadoop作為一個開源的框架,專為離線和大規模數據分析而設計,HDFS作為其核心的存儲引擎,已被廣泛用于數據存儲。
HBase,是一個分布式的、面向列的開源數據庫,可以認為是hdfs的封裝,本質是數據存儲、NoSQL數據庫。
Phoenix,相當于一個Java中間件,幫助開發工程師能夠像使用JDBC訪問關系型數據庫一樣訪問NoSQL數據庫HBase。
三、數據清洗
MapReduce作為Hadoop的查詢引擎,用于大規模數據集的并行計算,”Map(映射)”和”Reduce(歸約)”,是它的主要思想。它極大的方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統中。
隨著業務數據量的增多,需要進行訓練和清洗的數據會變得越來越復雜,這個時候就需要任務調度系統,比如oozie或者azkaban,對關鍵任務進行調度和監控。
四、數據查詢分析
Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結構化的數據映射為一張數據庫表,并提供 HQL(Hive SQL)查詢功能。Hive本身不存儲和計算數據,它完全依賴于HDFS和MapReduce。可以將Hive理解為一個客戶端工具,將SQL操作轉換為相應的MapReduce jobs,然后在hadoop上面運行。Hive支持標準的SQL語法,免去了用戶編寫MapReduce程序的過程,它的出現可以讓那些精通SQL技能、但是不熟悉MapReduce 、編程能力較弱與不擅長Java語言的用戶能夠在HDFS大規模數據集上很方便地利用SQL 語言查詢、匯總、分析數據。
五、數據可視化
對接一些BI平臺,將分析得到的數據進行可視化,用于指導決策服務。主流的BI平臺比如,國外的敏捷BI Tableau、Qlikview、PowrerBI等,國內的SmallBI和新興的網易有數等。
在上面的每一個階段,保障數據的安全是不可忽視的問題。
我有幸做了有五六七八年的大數據吧,談談自己的看法。簡單來說,就是現在各個APP,網站產生的數據越來越多,越來越大,傳統的數據庫比如MySQL Oracle之類的,已經處理不過來了。所以就產生了大數據相關的技術來處理這些龐大的數據。
第一,首先要把這些大數據都可靠的存儲起來,經過多年的發展,hdfs已經成了一個數據存儲的標準。
第二,既然有了這么多的數據,我們可以開始基于這些數據做計算了,于是從最早的MapReduce到后來的hive,spark,都是做批處理的。
第三, 由于像hive這些基于MapReduce的引擎處理速度過慢,于是有了基于內存的olap查詢引擎,比如impala,presto。
第四,由于批處理一般都是天級別或者小時級別的,為了更快的處理數據,于是有了spark streaming或者flink這樣的流處理引擎。
第五,由于沒有一個軟件能覆蓋住所有場景。所以針對不同的領域,有了一些特有的軟件,來解決特定場景下的問題,比如基于時間序列的聚合分析查詢數據庫,inflexdb opentsdb等。采用預聚合數據以提高查詢的druid或者kylin等,
第六,還有其他用于數據削峰和消費訂閱的消息隊列,比如kafka和其他各種mq
第七,還有一些其他的組件,比如用于資源管理的yarn,協調一致性的zookeeper等。
第八,由于hdfs 處理小文件問題不太好,還有為了解決大數據update和insert等問題,引入了數據湖的概念,比如hudi,iceberg等等。
第九,業務方面,我們基于大數據做一些計算,給公司的運營提供數據支撐。做一些推薦,給用戶做個性化推薦。機器學習,報警監控等等。
附一張大數據技術圖譜,從網上找的
10
回答0
回答0
回答10
回答0
回答10
回答0
回答0
回答0
回答0
回答