Hadoop介紹與安裝

来源:https://www.cnblogs.com/taojinxuan/archive/2019/07/04/11130321.html
-Advertisement-
Play Games

前言 最近想學習下大數據,有點急於求成,於是去網上找了各種培訓機構的視頻,發現大都質量不佳,理論基本不說或者簡單講下,然後教你照貓畫虎的敲代碼,出了問題都沒法分析。最後還是找了廈門大學的公開課從理論開始穩扎穩打的學習了。 一 Hadoop起源 Hadoop的理論起源主要來自谷歌公司的三大論文,並迅速 ...


前言

最近想學習下大數據,有點急於求成,於是去網上找了各種培訓機構的視頻,發現大都質量不佳,理論基本不說或者簡單講下,然後教你照貓畫虎的敲代碼,出了問題都沒法分析。最後還是找了廈門大學的公開課從理論開始穩扎穩打的學習了。

一 Hadoop起源

Hadoop的理論起源主要來自谷歌公司的三大論文,並迅速應用於全球各大互聯網公司。因此,學習大數據Hadoop是繞不開的一個知識點。今年來,大數據的興起其實來自於電腦技術的發展,物聯網技術產生了大量的數據,雲技術使得電腦存儲與運算資源更加普及,因此大數據技術應運而出,用以解決大量數據的存儲與計算的問題。

二 Hadoop生態圈

學習Hadoop,需要知道Hadoop生態圈中各個項目的功能與作用,為何要用開發這種新項目,而不使用已有項目實現這種功能。

2.1 HDFS

Hadoop的底層文件系統,與傳統文件系統不同在於它是分散式的。同時與已有的分散式文件系統相比,它又有著舊分散式文件系統沒有的優點。如:高可用性,高可靠性,吞吐量大,能使用廉價伺服器構建,可通過不斷增加機器數來進行拓展。具體實現在HDFS文章中記錄。

2.2 HBase

構建在HDFS之上的分散式資料庫系統。是一種基於列的NoSQL資料庫,從另一個角度看也能看成鍵值對的NoSQL資料庫。與傳統關係型資料庫相比,最大的優勢在於可通過增加機器進行橫向擴展,並且能使用廉價伺服器。

2.3 Hive

一種分散式數據倉庫,可以導入外部數據後用類SQL語言進行操作。一般用於歷史數據的查詢與分析。與HBase不同,HBase常用於實時的互動式查詢。

2.4 MapRuduce

一種分散式計算框架,MapRuce本來就是一種計算模型的名稱。核心思想是“分而治之”,能將計算分解成多個小計算,由多個機器同時計算。適合離線批處理。

2.5 Storm

一種流式計算框架,MapRuce適合批處理,無法完成流式數據的處理,因此開發出流式處理框架。

2.6 常見大數據處理需求

  • 離線批處理,特點:使用歷史數據,大批量的處理,要求吞吐率。
  • 實時互動式處理,特點:用戶交互使用,要求反映速度在秒級到數分鐘之間。
  • 流式數據處理,特點:數據以流的形式輸入,要求毫秒級的處理速度,且處理後的數據大部分都不用儲存。

2.7 Hadoop組件關係

基本的關係就是,底層用HDFS存儲,之上是核心計算框架MapRuduce。而Hive,Hbase,Pig等等組件一般都是將自身的操作轉化成Mapreduce代碼然後通過Mapreduce進行計算實現功能。同時與MapRuduce框架同一層次的Storm解決了流式數據的處理。Hbase雖然是使用Mapreduce框架進行處理,但是基本也能實現實時互動式處理的要求。(也正是Mapreduce存在種種問題,Spark漸漸興起,雖然Mapreduce也做了各種優化,但是在某些領域相比Spark還是有些差距)。

三 Hadoop安裝

  1. 準備。同一區域網的Linux伺服器數台,我是用我的游戲本同時開了3個虛擬機代替的。

  2. Linux里創建hadoop用戶,專門負責Hadoop項目,便於管理與許可權劃分。

  3. 安裝JDK,下載Hadoop時官方會指明JDK版本需求,設置JDK環境變數

  4. 安裝SSH並設置免密登錄。因為HDFS的NameNode與其他DateNode等節點的通訊與管理就是基於SSH協議的。並且將要使用的機器功能變數名稱寫入hosts文件,方便命名。

  5. 去官網下載並解壓Hadoop。修改hadoop配置文件,位於hadoop/etc/hadoop /下麵,分別有:
  • slaves。寫入DateNode的機器,因為之前修改了功能變數名稱解析文件,可以直接寫功能變數名稱,不用寫IP了。
  • core-site.xml。Hadoop的核心配置文件
    fs.defaultFS,預設文件系統的主機和埠,這裡的文件系統就是hdfs。
    hadoop.tmp.dir hadoop的臨時文件路徑,不設置則會使用系統臨時文件路徑,系統重啟後就丟失了。
<configuration>
       <property>
               <name>fs.defaultFS</name>
               <value>hdfs://Master:9000</value>
       </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/usr/local/hadoop/tmp</value>
               <description>Abase for other temporary directories.</description>
       </property>
</configuration>
  • hdfs-site.xml。HDFS的配置文件
    dfs.namenode.secondary.http-address。SecondNameNode的機器和埠
    dfs.replication。HDFS系統保存的文件副本數。
    dfs.namenode.name.dir,dfs.datanode.data.dir。NameNode和DataNode數據在原本文件系統中的存放位置。
   <configuration>
       <property>
               <name>dfs.namenode.secondary.http-address</name>
               <value>Master:50090</value>
       </property>
       <property>
               <name>dfs.replication</name>
               <value>1</value>
       </property>
       <property>
               <name>dfs.namenode.name.dir</name>
               <value>file:/usr/local/hadoop/tmp/dfs/name</value>
       </property>
       <property>
               <name>dfs.datanode.data.dir</name>
               <value>file:/usr/local/hadoop/tmp/dfs/data</value>
       </property>
</configuration>
  • mapred-site.xml。MapReuce的配置文件
    mapreduce.framework.name。MapReuce的資源管理系統。這個選yarn,原本是MapReuce自己進行分散式計算時的資源管理,後來發現效率不足便分割開來重新開發了一套框架。
    mapreduce.jobhistory.address。MapReuce的任務日誌系統,指定機器和埠。
    mapreduce.jobhistory.webapp.address。任務日誌系統web頁面所使用的機器和埠,通過這個可以在web頁面中查看任務日誌系統。
<configuration>
       <property>
               <name>mapreduce.framework.name</name>
               <value>yarn</value>
       </property>
       <property>
               <name>mapreduce.jobhistory.address</name>
               <value>Master:10020</value>
       </property>
       <property>
               <name>mapreduce.jobhistory.webapp.address</name>
               <value>Master:19888</value>
       </property>
</configuration>
  • yarn-site.xml。YARN的配置文件
    yarn.resourcemanager.hostname。YARN的ResourceManager所使用的機器。這個負責進行全局的資源分配,管理。
    yarn.nodemanager.aux-services。可以自定義一些服務,比如MapReuce的shuffle就是用這個配置的。目前我們使用填shuffle就行了。
<configuration>
       <property>
               <name>yarn.resourcemanager.hostname</name>
               <value>Master</value>
       </property>
       <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
       </property>
</configuration>
  1. 配置好以後將Hadoop文件從主節點複製到各個從節點,Hadoop的HADFS與MapReduce就安裝完成了。(CentOs系統需要關閉相應防火牆)

四 Hadoop生態圈其他組件安裝

看看網友博客和官方文檔差不多就會了,基本一個形式。下載解壓-配置環境變數-配置組件的配置文件,基本都是xxxx-env.sh,xxx-site.sh,xxx-core.sh,slave,work這種,在裡面按照需求配置參數就好了,具體參數意思和必須要配置的參數看看官方文檔也就懂了(滑稽)。


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

-Advertisement-
Play Games
更多相關文章
  • 最近使用layui的框架時,發現table插件不支持鍵盤快捷鍵切換單元格,花了點時間實現此功能。 分享給有需要的朋友們~~~ 效果圖 代碼: 1.支持 enter,上,下,右鍵 切換單元格,支持隱藏列跳過切換。註:單元格必須開啟了 edit:text 模式,才支持鍵盤切換。使用方法:1.在需要啟用此 ...
  • 跟我學SpringCloud | 第四篇:熔斷器Hystrix 1. 熔斷器 服務雪崩 在正常的微服務架構體系下,一個業務很少有隻需要調用一個服務就可以返回數據的情況,這種比較常見的是出現在demo中,一般都是存在調用鏈的,比如A B C D,如果D在某一個瞬間出現問題,比如網路波動,io偏高,導致 ...
  • 本文來講解一下兩個結構比較相似的行為設計模式:策略模式和狀態模式。兩者單獨的理解和學習都是比較直觀簡單的,但是實際使用的時候卻並不好實踐,算是易學難用的設計模式吧。這也是把兩者放在一起介紹的原因,經過對比和實例介紹,相信應該會一些比較深刻的感知。最後在結合個人的體會簡單聊一下對這兩個模式的一些看法。 ...
  • 小孩玩王者榮耀上癮,偷偷充值了6000多元,我讓騰訊游戲根據實名登記的身份證信息禁止玩游戲,這也是國家網路游戲管理辦法中要求的,禁止未成年人接觸不適宜的游戲,騰訊說做不到。這到底是騰訊游戲系統架構問題還是不作為? ...
  • 官網:www.fhadmin.org 特別註意: Springboot 工作流 前後分離 + 跨域 版本 (許可權控制到菜單和按鈕) 後臺框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+介面 前端頁面:html +vue.js 形式 jquery aj ...
  • 具有“魔性”的通用軟體開發框架,僅有5個普通的控制器類,卻響應著任何複雜的業務場景。其超前的思路、原生態的實現方式為有個性化思路的研發者提供了高度靈活的擴展空間。 ...
  • 最近在看HeadFirst設計模式一書,作為一個半路出家的程式員,感覺很多東西需要學習,學習的路程中有些東西學了當時覺得理解了,但日常工作中沒有使用到漸漸的自己就忘記了。 上面就是寫者系列的博客的原因,主要是為了鞏固知識,忘記在那個博主那邊看過這麼一句話,知識學了後總結了才變成自己的。 策略者模式 ...
  • 應用場景: 有這麼一個返現的系統,當前端客戶發起提現的時候,後端就要通過審核這筆返現訂單,才可以返現到客戶的賬號里。 來看看下麵的截圖 這裡的業務場景就是經過兩輪審核:銷售審核,財務審核都通過後,後端就會付款一筆錢到客戶,當然,這裡財務審核會有很多種情況,不通過與通過,通過後直接付款又有很多種情況, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...