大數據概念

来源:https://www.cnblogs.com/liuxianseng/archive/2018/09/07/9604050.html
-Advertisement-
Play Games

1、什麼是大數據 基本概念 《數據處理》 在互聯網技術發展到現今階段,大量日常、工作等事務產生的數據都已經信息化,人類產生的數據量相比以前有了爆炸式的增長,以前的傳統的數據處理技術已經無法勝任,需求催生技術,一套用來處理海量數據的軟體工具應運而生,這就是大數據! 處理海量數據的核心技術: 海量數據存 ...


1、什麼是大數據

基本概念

《數據處理》

在互聯網技術發展到現今階段,大量日常、工作等事務產生的數據都已經信息化,人類產生的數據量相比以前有了爆炸式的增長,以前的傳統的數據處理技術已經無法勝任,需求催生技術,一套用來處理海量數據的軟體工具應運而生,這就是大數據!

 

處理海量數據的核心技術:

海量數據存儲:分散式

海量數據運算:分散式

 

這些核心技術的實現是不需要用戶從零開始造輪子的

存儲和運算,都已經有大量的成熟的框架來用

 

存儲框架:

HDFS——分散式文件存儲系統(HADOOP中的存儲框架)

HBASE——分散式資料庫系統

KAFKA——分散式消息緩存系統(實時流式數據處理場景中應用廣泛)

 

運算框架:(要解決的核心問題就是幫用戶將處理邏輯在很多機器上並行)

MAPREDUCE—— 離線批處理/HADOOP中的運算框架

SPARK —— 離線批處理/實時流式計算

STORM —— 實時流式計算

 

輔助類的工具(解放大數據工程師的一些繁瑣工作):

    HIVE —— 數據倉庫工具:可以接收sql,翻譯成mapreduce或者spark程式運行

FLUME——數據採集

SQOOP——數據遷移

ELASTIC SEARCH —— 分散式的搜索引擎

.......

 

 

換個角度說,大數據是:

1、有海量的數據

2、有對海量數據進行挖掘的需求

3、有對海量數據進行挖掘的軟體工具(hadoop、spark、storm、flink、tez、impala......)

 

 

 

大數據在現實生活中的具體應用

數據處理的最典型應用:公司的產品運營情況分析

 

電商推薦系統:基於海量的瀏覽行為、購物行為數據,進行大量的演算法模型的運算,得出各類推薦結論,以供電商網站頁面來為用戶進行商品推薦

 

 

精準廣告推送系統:基於海量的互聯網用戶的各類數據,統計分析,進行用戶畫像(得到用戶的各種屬性標簽),然後可以為廣告主進行有針對性的精準的廣告投放

 

 

 

 

2、什麼是hadoop

hadoop中有3個核心組件:

分散式文件系統:HDFS —— 實現將文件分散式存儲在很多的伺服器上

分散式運算編程框架:MAPREDUCE —— 實現在很多機器上分散式並行運算

分散式資源調度平臺:YARN —— 幫用戶調度大量的mapreduce程式,併合理分配運算資源

 

 

 

3、hdfs整體運行機制

hdfs:分散式文件系統

hdfs有著文件系統共同的特征:

1、有目錄結構,頂層目錄是:  /

2、系統中存放的就是文件

3、系統可以提供對文件的:創建、刪除、修改、查看、移動等功能

 

 

hdfs跟普通的單機文件系統有區別:

1、單機文件系統中存放的文件,是在一臺機器的操作系統中

2、hdfs的文件系統會橫跨N多的機器

3、單機文件系統中存放的文件,是在一臺機器的磁碟上

4、hdfs文件系統中存放的文件,是落在n多機器的本地單機文件系統中(hdfs是一個基於linux本地文件系統之上的文件系統)

 

hdfs的工作機制:

1、客戶把一個文件存入hdfs,其實hdfs會把這個文件切塊後,分散存儲在N台linux機器系統中(負責存儲文件塊的角色:data node)<準確來說:切塊的行為是由客戶端決定的>

 

 

2、一旦文件被切塊存儲,那麼,hdfs中就必須有一個機制,來記錄用戶的每一個文件的切塊信息,及每一塊的具體存儲機器(負責記錄塊信息的角色是:name node)

 

3、為了保證數據的安全性,hdfs可以將每一個文件塊在集群中存放多個副本(到底存幾個副本,是由當時存入該文件的客戶端指定的)

 

 

綜述:一個hdfs系統,由一臺運行了namenode的伺服器,和N台運行了datanode的伺服器組成!

 

 

 

 

 

 

 

 

4、搭建hdfs分散式集群

4.1 hdfs集群組成結構:

 

 

4.2 安裝hdfs集群的具體步驟:

一、首先需要準備N台linux伺服器

學習階段,用虛擬機即可!

先準備4台虛擬機:1個namenode節點  + 3 個datanode 節點

 

二、修改各台機器的主機名和ip地址

主機名:hdp-01  對應的ip地址:192.168.33.61

主機名:hdp-02  對應的ip地址:192.168.33.62

主機名:hdp-03  對應的ip地址:192.168.33.63

主機名:hdp-04  對應的ip地址:192.168.33.64

 

 

 

三、從windows中用CRT軟體進行遠程連接

在windows中將各台linux機器的主機名配置到的windows的本地功能變數名稱映射文件中:

c:/windows/system32/drivers/etc/hosts

192.168.33.61 hdp-01

192.168.33.62 hdp-02

192.168.33.63 hdp-03

192.168.33.64 hdp-04

 

 

用crt連接上後,修改一下crt的顯示配置(字型大小,編碼集改為UTF-8):

 

 

四、配置linux伺服器的基礎軟體環境

 

l  防火牆

關閉防火牆:service iptables stop 

關閉防火牆自啟: chkconfig iptables off

 

l  安裝jdk:(hadoop體系中的各軟體都是java開發的)

1)         利用alt+p 打開sftp視窗,然後將jdk壓縮包拖入sftp視窗

2)         然後在linux中將jdk壓縮包解壓到/root/apps 下

3)         配置環境變數:JAVA_HOME   PATH

vi /etc/profile   在文件的最後,加入:

export JAVA_HOME=/root/apps/jdk1.8.0_60

export PATH=$PATH:$JAVA_HOME/bin

4)         修改完成後,記得 source /etc/profile使配置生效

5)         檢驗:在任意目錄下輸入命令: java -version 看是否成功執行

6)         將安裝好的jdk目錄用scp命令拷貝到其他機器

7)         將/etc/profile配置文件也用scp命令拷貝到其他機器並分別執行source命令

 

l  集群內主機的功能變數名稱映射配置

在hdp-01上,vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.33.61   hdp-01

192.168.33.62   hdp-02

192.168.33.63   hdp-03

192.168.33.64   hdp-04

然後,將hosts文件拷貝到集群中的所有其他機器上

scp /etc/hosts hdp-02:/etc/

scp /etc/hosts hdp-03:/etc/

scp /etc/hosts hdp-04:/etc/

 

補充

提示:

如果在執行scp命令的時候,提示沒有scp命令,則可以配置一個本地yum源來安裝

1、先在虛擬機中配置cdrom為一個centos的安裝鏡像iso文件

2、在linux系統中將光碟機掛在到文件系統中(某個目錄)

3、mkdir /mnt/cdrom

4、mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom

5、檢驗掛載是否成功: ls /mnt/cdrom

6、3、配置yum的倉庫地址配置文件

7、yum的倉庫地址配置文件目錄: /etc/yum.repos.d

8、先將自帶的倉庫地址配置文件批量更名:

 

 

9、然後,拷貝一個出來進行修改

 

 

10、修改完配置文件後,再安裝scp命令:

11、yum install openssh-clients -y

 

 

五、安裝hdfs集群

1、上傳hadoop安裝包到hdp-01

 

2、修改配置文件

要點提示

核心配置參數:

1)         指定hadoop的預設文件系統為:hdfs

2)         指定hdfs的namenode節點為哪台機器

3)         指定namenode軟體存儲元數據的本地目錄

4)         指定datanode軟體存放文件塊的本地目錄

 

hadoop的配置文件在:/root/apps/hadoop安裝目錄/etc/hadoop/

 

1) 修改hadoop-env.sh

export JAVA_HOME=/root/apps/jdk1.8.0_60

 

2) 修改core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-01:9000</value>

</property>

</configuration>

 

3) 修改hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/root/hdpdata/name/</value>

</property>

 

<property>

<name>dfs.datanode.data.dir</name>

<value>/root/hdpdata/data</value>

</property>

 

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hdp-02:50090</value>

</property>

 

</configuration>

 

4) 拷貝整個hadoop安裝目錄到其他機器

scp -r /root/apps/hadoop-2.8.1  hdp-02:/root/apps/

scp -r /root/apps/hadoop-2.8.1  hdp-03:/root/apps/

scp -r /root/apps/hadoop-2.8.1  hdp-04:/root/apps/

 

 

 

5) 啟動HDFS

 

所謂的啟動HDFS,就是在對的機器上啟動對的軟體

要點

提示:

要運行hadoop的命令,需要在linux環境中配置HADOOP_HOME和PATH環境變數

vi /etc/profile

export JAVA_HOME=/root/apps/jdk1.8.0_60

export HADOOP_HOME=/root/apps/hadoop-2.8.1

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

 

 

首先,初始化namenode的元數據目錄

要在hdp-01上執行hadoop的一個命令來初始化namenode的元數據存儲目錄

hadoop namenode -format

l  創建一個全新的元數據存儲目錄

l  生成記錄元數據的文件fsimage

l  生成集群的相關標識:如:集群id——clusterID

 

然後,啟動namenode進程(在hdp-01上)

hadoop-daemon.sh start namenode

啟動完後,首先用jps查看一下namenode的進程是否存在

 

然後,在windows中用瀏覽器訪問namenode提供的web埠:50070

http://hdp-01:50070

 

然後,啟動眾datanode們(在任意地方)

hadoop-daemon.sh start datanode

 

 

6) 用自動批量啟動腳本來啟動HDFS

1)         先配置hdp-01到集群中所有機器(包含自己)的免密登陸

2)         配完免密後,可以執行一次  ssh 0.0.0.0

3)         修改hadoop安裝目錄中/etc/hadoop/slaves(把需要啟動datanode進程的節點列入)

hdp-01

hdp-02

hdp-03

hdp-04

 

4)         在hdp-01上用腳本:start-dfs.sh 來自動啟動整個集群

5)         如果要停止,則用腳本:stop-dfs.sh

5、hdfs的客戶端操作

客戶端的理解

hdfs的客戶端有多種形式:

1、網頁形式

2、命令行形式

3、客戶端在哪裡運行,沒有約束,只要運行客戶端的機器能夠跟hdfs集群聯網

 

文件的切塊大小和存儲的副本數量,都是由客戶端決定!

所謂的由客戶端決定,是通過配置參數來定的

hdfs的客戶端會讀以下兩個參數,來決定切塊大小、副本數量:

切塊大小的參數: dfs.blocksize

副本數量的參數: dfs.replication

 

上面兩個參數應該配置在客戶端機器的hadoop目錄中的hdfs-site.xml中配置

<property>

<name>dfs.blocksize</name>

<value>64m</value>

</property>

 

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

 

 

 

hdfs客戶端的常用操作命令

1、上傳文件到hdfs中

hadoop fs -put /本地文件  /aaa

 

2、下載文件到客戶端本地磁碟

hadoop fs -get /hdfs中的路徑   /本地磁碟目錄

 

3、在hdfs中創建文件夾

hadoop fs -mkdir  -p /aaa/xxx

 

 

4、移動hdfs中的文件(更名)

hadoop fs -mv /hdfs的路徑1  /hdfs的另一個路徑2

 

複製hdfs中的文件到hdfs的另一個目錄

hadoop fs -cp /hdfs路徑_1  /hdfs路徑_2

 

 

5、刪除hdfs中的文件或文件夾

hadoop fs -rm -r /aaa

 

 

6、查看hdfs中的文本文件內容

hadoop fs -cat /demo.txt

hadoop fs -tail -f /demo.txt

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、安裝NPM 1.1最新穩定版本: npm install vue 二、命令行工具安裝 國內速度慢,使用淘寶鏡像: npm install -g cnpm --registry=https://registry.npm.taobao.org 註意:以後使用npm的地方就替換成cnpm 1、全局安裝 ...
  • Angular新建項目步驟記錄 標簽(空格分隔): Angular 1. 2. 啟動dev環境 3. 修改 為`styles.scss`,同時修改文件 .angular cli.json 中的: 重新打包。 4. 配置全局樣式 /src 目錄下添加 文件夾 /scss 目錄下添加 ,`./utili ...
  • 一、初始JavaScript 二、瀏覽器的組成 2008年Google發佈了Chrome,它是採用優化後的js引擎,引擎代號V8,因能把js代碼直接轉化成機械碼0101來執行,進而以速度快而聞名。 ...
  • ( ′◔ ‸◔`)現在的公司啊都流行混合開發,我們公司也不例外,非要把交互非常多的社區模塊用內嵌web頁展示,好吧好吧,畢竟有的應用也是這麼做的,那既然是社區就肯定少不了用戶上傳圖片的操作,在開發階段沒有發現任何問題,也是很奇怪,等到了測試階段,發現部分機型和IOS機型拍照之後,web頁獲取路徑之後 ...
  • 在前後端分離的項目中,通常需要啟動一個後臺伺服器來配合前端項目的介面需求。Mockjs的作用是攔截ajax請求並模擬各種數據返回,讓前端開發可以更加自由獨立。 安裝 使用 Mock.mock()第一個參數是需要攔截的介面,第二個參數表明ajax請求類型(get/post/put/delete等),第 ...
  • 將多個系統的登陸認證步驟集中在登陸系統統一管理,用戶只需要登陸一次就可以在多個系統之間來回切換使用 ...
  • 歡迎大家前往 "騰訊雲+社區" ,獲取更多騰訊海量技術實踐乾貨哦~ 本文由 "sammyshen" 發表於 "雲+社區專欄" 最近幾年REST API越來越流行,特別是隨著微服務的概念被廣泛接受和應用,很多Web Service都使用了REST API。 REST是HTTP規範主要編寫者之一的Roy ...
  • 搭建zk集群,起碼保證3台虛擬機的配置,本人使用的虛擬機環境為wm14+centos7+jdk1.8 下載地址 下載地址 zk的tar包下載地址:http://mirror.bit.edu.cn/apache/zookeeper/ 安裝方式 安裝方式 下載好tar包後上傳到自己的虛擬機文件夾中,這裡 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...