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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...