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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【小白视角】大数据基础实践(二)Hadoop环境搭建与测试

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【小白视角】大数据基础实践(二)Hadoop环境搭建与测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hadoop環境的搭建與測試

    • 1.簡介
      • 實驗環境
      • 1.1基礎知識
      • 1.2 特點
      • 1.3 生態系統
        • 1.3.1 HDFS
        • 1.3.2 YARN
        • 1.3.3 MapReduce
        • 1.3.4 Zookeeper
        • 1.3.5 HBase
        • 1.3.6 Hive
        • 1.3.7 Pig
        • 1.3.8 Mahout
        • 1.3.9 Sqoop
        • 1.3.10 Flume
    • 2. Hadoop 安裝于環境配置
      • 2.1 解壓Hadoop壓縮包
      • 2.2 Hadoop環境變量配置
    • 3. 單機模式
      • 3.1 特點
      • 3.2 配置
      • 3.3 執行例子
    • 4. 偽分布模式
      • 4.1 特點
      • 4.2 SSH 免密登陸
      • 4.3 修改Hadoop配置文件
      • 4.4 初始化
      • 4.3 執行
    • 5. 全分布模式
      • 5.1 特點
      • 5.2 集群準備
      • 5.3 網絡配置
      • 5.4ssh免密登陸
      • 5.5 Hadoop 環境配置
      • 5.6測試實例
    • 總結

1.簡介

實驗環境

  • Vmware (Ubuntu18.04)
  • Java 1.8
  • Hadoop 3.1.3

1.1基礎知識

  • Hadoop是一個由Apache基金會所開發的開源分布式計算平臺,為了讓用戶可以在不了解分布式底層細節的情況下開發分布式程序。
  • Hadoop是一個基礎架構系統,是Google的云計算基礎架構的開源實現,主要由HDFS、MapReduce組成,其中HDFS是Google的GFS的開源實現,MapReduce是Google的MapReduce的開源實現。HDFS為海量的數據提供了存儲,MapReduce為海量的數據提供了計算。
  • Hadoop是基于Java語言開發的,具有很好的跨平臺特性,并且可以部署在廉價的計算機集群中。
  • 簡單來說,Hadoop是一個可以更容易開發和運行處理大規模數據的軟件平臺,充分利用集群的威力進行高速運算和存儲。

1.2 特點

Hadoop是一個能夠對大量數據進行分布式處理的軟件框架,并且是以一種可靠、高效、可伸縮的方式進行處理的,它具有以下幾個方面的特性

  • 高可靠性
  • 高效性
  • 高可擴展性
  • 高容錯性
  • 成本低
  • 運行在Linux平臺上
  • 支持多種編程語言
  • 1.3 生態系統

    1.3.1 HDFS

    一款分布式文件系統,來源于2003年10月Google發表的GFS論文,是Hadoop體系中數據存儲管理的基礎,兩大核心之一。HDFS具有高容錯性,在設計上HDFS把硬件故障當成常態來考慮,所以它能檢測到出現故障的硬件,并加以解決,不僅體現它的可靠性。HDFS通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。

    1.3.2 YARN

    YARN是為在現有的和新的Hadoop集群上工作而設計的資源調度器。從Apache Hadoop2.0版本開始,YARN不但為已有的MapReduce應用提供了全面的兼容,也致力于支持幾乎所有的分布式應用,實現了在Hadoop框架上運行其他非MapReduce作業

    1.3.3 MapReduce

    一種計算模型,來源于2004年12月Google發表的一篇關于MapReduce的論文,可用于海量數據的計算。其中,Map函數對數據集上的獨立元素進行指定的操作,生成Key-Value對形式的中間結果。Reduce函數則對Map函數得到的所有Key-Value對中相同Key的所有Value進行規約來得到最后的結果,簡單地說,就是“分而治之”。MapReduce適用于大量計算機組成的分布式并行環境。

    1.3.4 Zookeeper

    一種分布式的、可用性高的協調服務,來源于2006年11月Google發表的Chubby論文。Zookeeper提供分布式鎖之類的基本服務用于構建分布式應用。

    1.3.5 HBase

    一種分布式的、按列存儲的數據庫,來源于2006年11月Google發表的Bigtable論文。HBase采用了BigTable的數據模型:增強的稀疏排序映射表(key/value),其中鍵由行關鍵字、列關鍵字和時間戳構成。HBase使用HDFS作為底層存儲,同時支持MapReduce的批量試計算和點查詢(隨機讀取),它將數據存儲和并行計算完美地結合在一起。

    1.3.6 Hive

    Hive由Facebook開源,最初用于解決海量結構化的日志數據統計問題,一種分布式的、按列存儲的數據倉庫。Hive管理HDFS中存儲的數據,并提供基于SQL的查詢語句HQL,將SQL轉化為MapReduce任務在Hadoop上執行,用以查詢數據。

    1.3.7 Pig

    數據流語言和運行環境,由Yahoo開源,用以探究非常龐大的數據集。Pig運行在MapReduce和HDFS集群上。

    1.3.8 Mahout

    Mahout最初是Apache Lucent的子項目,隨著它的快速發展,如今已經是Apache的頂級項目。Mahout包含了分類、聚類、推薦引擎(協同過濾)和頻繁集挖掘等廣泛使用的數據挖掘方法。除此之外,Mahout還包含數據的輸入/輸出工具和與其他存儲系統集成等數據挖掘支持架構。

    1.3.9 Sqoop

    Sqoop是SQL-to-Hadoop的縮寫,該工具用于在結構化數據存儲(如關系型數據庫)和HDFS之間高效批量傳輸數據。數據的導入和導出本質上是MapReduce程序,充分利用了MR的并行化和容錯性。

    1.3.10 Flume

    Flume是Cloudera開源的日志收集系統,具有分布式、高可靠、高容錯、易于定制和擴展的特點。它將數據從產生到傳輸再到處理以及最后寫入目標路徑的過程抽象為數據流,在具體的數據流中,數據源支持在Flume中定制數據發送方,從而支持收集各種不同協議數據。同時,Flume數據流提供對日志數據進行簡單處理的能力。除此之外,Flume還具有能夠將日志寫入各種數據目標(可定制)的能力??偟膩碚f,Flume是一個可擴展、適合復雜環境的海量日志收集系統。

    2. Hadoop 安裝于環境配置

    2.1 解壓Hadoop壓縮包

    cd 進入 Hadoop 安裝包存放位置,執行 tar 命令將 hadoop-3.1.3.tar.gz 解壓到/usr/local 目錄下,ls 查看是否生成了 hadoop3.1.3 文件夾。

    2.2 Hadoop環境變量配置

    編輯用戶環境配置文件

    cd /usr/local sudo vim ~/.bashrc

    配置HADOOP_HOME、PATH環境變量,保存并退出文件

    執行命令使環境生效

    . ~/.bashrc

    測試環境是否成功

    3. 單機模式

    3.1 特點

    • 無需運行任何守護進程,所有程序都在同一個JVM上執行,在獨立模式上測試和調試MapReduce程序非常方便,因此該模式比較適合開發階段。
    • Hadoop 的默認模式為單機模式(本地模式\非分布式),不需要進行其它配置即可運行。Hadoop 附帶了豐富的例子,包括 workcount、grep、join 等,下面運行 grep 例子來感受 Hadoop運行。

    3.2 配置

    用戶主目錄中新建 input 文件夾存放輸入數據文件:

    拷貝 Hadoop 安裝目錄下/etc/hadoop 中所有的 XML 文件到 input 文件夾中:

    3.3 執行例子

    **注意:**Hadoop 默認不會覆蓋結果文件,因此再次運行上面實例會提示出錯,需要先將output 刪除。查看當前目錄下的文件,多出了 output 文件夾,cat 命令查看結果打印到屏幕上。

    4. 偽分布模式

    4.1 特點

    • Hadoop守護進程運行在本地機器上,模擬一個小規模的集群,該模式下的Hadoop集群實現的并不是真正的集群狀態。
    • Hadoop 偽分布式配置是在沒有多臺計算機節點的情況下,對 Hadoop 的分布式存儲和計算進行模擬安裝和配置。

    4.2 SSH 免密登陸

    這個在第一篇已經寫了如何進行ssh免密登陸,這里就不多說了。
    鏈接在這 搭建Hadoop集群

    4.3 修改Hadoop配置文件

    Hadoop 的配置文件位于安裝目錄的/etc/hadoop/下,偽分布式模式配置需要修改配置文件 core-site.xml 和 hdfs-site.xml。
    core-site.xml 配置文件

    hdfs-site.xml配置文件

    4.4 初始化

    hdfs namenode -format


    找到Successfully就可以了

    先對配置文件進行配置,一開始以為localhost改成031904102_master導致失敗,一直start不起來,后來才改成了localhost,localhost是對應127.0.0.1,是本機的localhost,而031904102_master對應的是192.168.1.200,對不上,所有后面連不上。

    start-dfs.sh


    執行命令 jps 驗證是否成功啟動,成功啟動應包含如下進程。如果沒有啟動成功,可以通過啟動日志排查原因,日志位于安裝目錄的 logs 文件夾下后綴為.log。(根據錯誤信息具體問題要具體分析。確認配置文件沒有錯誤,一般可以嘗試關閉 stop-dfs.sh 后再啟動 start-dfs.sh;或者可以嘗試刪除安裝目錄下整個 tmp 文件,重新執行 namenode –format。)

    4.3 執行

  • 在hadoop上創建文件
  • hdfs dfs -mkdir /user hdfs dfs -mkdir /user/hadoop hdfs dfs -mkdir /user/hadoop/input

    查看hadoop是否創建成功文件

    hdfs dfs -ls /user/hadoop
  • 將/etc/hadoop 目錄下所有的 XML 文件上傳至 input 文件夾:
    hdfs dfs -put 原路徑 目的路徑
  • hdfs dfs -put /usr/local/hadoop-3.1.3/etc/hadoop*.xml input

    查看是否存在input中

    hdfs dfs -ls /user/hadoop/input
  • 執行 MapReduce 的 grep例子,將結果存放到 output 文件夾中,然后在分布式文件系統上查看結果:
  • hadoop jar /usr/local/hadoop-3.1.3/etc/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'

    在分布式文件系統上查看結果

    hdfs dfs -cat output/*

    5. 全分布模式

    注意 :更改主機名稱之后,要重新配置ssh密鑰!!!!
    注意主機名不要有 _ 要用-代替!!!!!
    不要111111_xxxx 要11111-xxx 不然報錯!我就是這樣!下面這些例子時我修改前的,沒成功,但是步驟是一樣的,后來改回來之后重新做了一遍,忘記截圖了。

    5.1 特點

    與偽分布模式的區別在于其守護進程運行在一個集群上,通常采用全分布模式來整合集群環境下的所有資源。

    5.2 集群準備

  • 準備兩臺虛擬機(直接克隆復制已有的虛擬機):一臺作為主節點 Master,一臺
    作為從節點 Slave;
  • Mater 節點要求:安裝 SSH server、配置 Java 環境、安裝 Hadoop;
  • Slave 節點要求:安裝 SSH server、配置 Java 環境。
    以上內容在第一篇的時候已經說好了!Slave,就是克隆
    注意:如果節點是直接克隆配置好偽分布式模式的虛擬機,需要刪除 hadoop目錄下的 tmp 文件夾和 logs 文件夾,或者刪除原有 Hadoop 安裝路徑下的所有文件夾,重新進行解壓和環境配置。
  • 5.3 網絡配置

    兩個節點 IP 配置如下,請依據計算機實際情況進行 IP 地址和主機名分配。
    主機名 IP 地址
    Master 192.168.1.10
    Slave 192.168.1.11

  • 虛擬機設置橋接網絡,Ubuntu 系統內設置靜態 IP,使節點之間網絡互通。具體設置查看“關于 VirtualBox 的虛擬機復制及 Ubuntu 系統的靜態 IP 配置”文檔、“關于 VMware workstations 中 Ubuntu 系統的靜態 ip 配置”文檔。
  • 修改/etc/hostsname 文件,更改節點主機名為“031904102-Master”和“031904102-Slave”
    沒截圖,按照老師的樣子截了個圖
  • sudo vim /etc/hostsname


    3. 改/etc/hosts 文件,更改 IP 映射關系,所有節點都要修改。hosts 文件原有映射保留一條 localhost 其余刪除,再插入兩個節點的 IP 地址映射,注意主機名和 IP 地址不要對應錯了,主機名區分大小寫。

    sudo vim /etc/hosts


    重啟之后生效即可

    reboot


    上面這個還是老師的圖,老師是master
    下面這個是我的,我的是031904102-Master 注意不要像下面那樣下劃線 “ _ ” !!

    檢查master和slave能否ping通


    發現都可以即可

    5.4ssh免密登陸

    這一段第一篇已經講過,再講一次吧。
    更改主機名稱之后,要重新配置ssh密鑰。在本次實驗中借助xftp進行密鑰的傳遞。

    左邊是Master 右邊是Slave,將對方的id_rsa.pub發給對方
    在xftp上進行密鑰的復制之后,將其中的密鑰cat到authorized_keys中,這和之前的一樣的操作

    這樣就可以實現兩臺機子的免密登陸了

    5.5 Hadoop 環境配置

    然后再依次配置master中hadoop的文件配置

  • workers
    這里是你副節點的主機名稱,我截是截老師的,我自己的是031904102-Slave就多了個學號,按照你自己的來。

  • core-site.xml
    這也是老師的圖,我這里是031904102-Master

  • hdfs-site.xml

  • mapred-site.xml

  • yarn-site.xml

    hdfs name node -format
    初始化一下就可以了。

  • 配置其余節點,使所有節點 Hadoop 配置保持一致。刪除之前運行偽分布式生成的
    log 文件和 tmp 文件夾,打包 Hadoop 遠程發送給其它節點并解壓。如果其它節點已安裝有
    Hadoop 也可以直接同步修改配置文件。
    Master節點的操作
    刪除

  • sudo rm -r /usr/local/hadoop-3.1.3/tmp sudo rm -r /usr/local/hadoop-3.1.3/logs/*

    打包

    cd /usr/local tar -zcf ~/hadoop_m.tar.gz ./hadoop-3.1.3 scp ~/hadoop_m.tar.gz Slave:/home/hadoop

    于是上網就有說上傳到tmp目錄中。就可以了

    這里Slave是你上面配置的Slave 我自己的是031904102-Slave
    Slave的操作

    sudo rm -r /usr/local/hadoop-3.1.3 sudo tar -zxf ~/hadoop_m.tar.gz -C /usr/local

    5.6測試實例

  • 啟動
  • start-dfs.sh start-yarn.sh mapred --daemon start historyserver
  • 查看是否成功啟動

    一定要是- !不能是下劃線_



    在hadoop上創建文件

    和上面偽分布一樣

    有文件之后
    執行grep操作
  • hadoop jar /usr/local/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output `dfs[a-z]+`


    cat一下結果


    再次測試時,記得把輸出結果刪除

    hdfs dfs -rm -r output

    總結

    hadoop的三種模式已經介紹一一配置了!
    有什么問題評論區留言或是私信我吧!
    我是大數據專業的,喜歡大數據的可以關注我!

    總結

    以上是生活随笔為你收集整理的【小白视角】大数据基础实践(二)Hadoop环境搭建与测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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