Hadoop簡介安裝

      網友投稿 569 2022-05-29

      Hadoop

      簡介

      Hadoop 是Apache Lucene創始人道格·卡丁(Doug Cutting)創建的,Lucene是一個應用廣泛的文本搜索庫,Hadoop起源于開源網絡搜索引擎Apache Nutch,后者是Lucene項目的一部分.

      Apache Hadoop項目的目標是可靠的、可拓展的分布式計算開發開源軟件。

      Apache Hadoop平臺本質是一個計算存儲框架,允許使用簡單的編程模型跨計算機集群地處理大型數據集,將計算存儲操作從單個服務器拓展到數千臺服務器(小型機)每臺服務器提供本地計算和存儲。平臺本身不是依靠提升硬件來提高高可用的,而是在應用層檢測和處理故障。從而在一組計算機上提供高性能的服務,每個計算機都可能出現故障,Hadoop中所有的模塊。都基于一個假設,即硬件故障是常見事件,應由框架自動處理。

      Hadoop是一個用Java編寫的Apache開放源代碼框架,它允許使用簡單的編程模型在計算機集中環境分布式處理大型數據集。Hadoop框架式應用程序在跨計算機集群提供分布式存儲在計算集群提供的存儲和計算環境中工作,Hadoop旨在從單個服務器擴展到數千臺機器,每臺機器提供了本地計算和存儲。

      其核心構成分別為 HDFS(分布式文件系統)、MapReduce(分布式計算系統)、Yarn(資源管理系統)

      HDFS

      HDFS是Google發布于2003年10月的《Google FS》的開源實現。

      Hadoop分布式文件系統(HDFS)能夠提供對數據訪問的高吞吐量,適用于大數據場景的數據存儲,因為HDFS提高了高可靠性(主要通過多副本實現)、高拓展性(通過添加機器來達到線性拓展)、和高吞吐率的數據存儲服務,Hadoop是被設計成能夠運行在通用的硬件上的分布式文件系統,因此可以使用廉價的通用機器。大大減少了公司的成本。

      HDFS的基本原理是將數據文件以指定大小拆分成數據塊,并將數據塊以副本的方式存儲到多臺機器上,即使其中某一個節點出現故障,那么該節點上的數據塊副本丟失還有其對應的其他節點的數據副本,但是前提是你的副本系數大于1,HDFS將數據文件拆分、容錯、負載均衡等透明化(用戶感知不到整個過程,只知道上傳了一個文件到HDFS上其中數據的切分、存儲在那些機器上是感知不到的)我們可以把HDFS看成是一個容量巨大的、具有高容錯的磁盤,在使用的時候完全可以當作本地的磁盤進行使用,所以說HDFS是適用于海量數據的可靠性存儲。

      Mapreduce

      Mapreduce是一個分布式、并發處理的編程模型,用于進行大數據量的計算,MapReduce的名字源于模型中的兩個操作:Map(映射)和Reduce(歸納)。Mapreduce是一種簡化并進行應用程序開發的編程模型,能夠讓沒有多少并行應用經驗的開發人員可以進行快速地學會并行應用開發,而且不需要去關注并行計算中地一些底層問題,按照Mapreduce API的編程模型實現業務邏輯的開發即可。

      一個Mapreduce作業通常會把輸入的結果集切分成若干個獨立的數據塊,由map任務以并行處理的方式,對map的輸出先進行排序,然后把結果輸入給reduce任務由reduce任務來完成最終的統一處理。通常Mapreduce作業的輸入和輸出都是用HDFS進行存儲的,也就是說Mapreduce框架處理數據的輸入源和輸出目的地大部分場景都是儲存在HDFS上。

      在部署Hadoop集群時,通常是將計算節點和存儲節點部署在同一個節點上,這樣做的原因是允許計算框架在任務調度時,可以先將作業優先調度到那些已經存有數據節點上進行數據計算,這樣可以使整個集群的網絡帶寬十分高效地利用,這也是大數據中十分著名地話“移動計算而不是移動數據”。

      Yarn

      Yarn的全成是 Yarn Another Resource Negotiator,是一個同源資源管理系統,可以為運行在YARN之上的分布式程序提供統一的資源管理和調度。在Yarn我們可以運行不同類型的作業,如:Mapreduce、Spark、TEZ等不同的計算框架

      Yarn是隨著Hadoop發展而催生的新框架,Yarn的基本思想是將Hadoop1.x中的Mapreduce架構中的JobTracker的資源管理和作業調度監控功能進行分離,解決了Hadoop1.x只能運行 Mapreduce框架的限制。

      安裝

      機器

      準備3臺linux機器

      本教程ip配置如下

      修改主機名

      vim /etc/sysconfig/network

      ETWORKING=yes

      HOSTNAME=datanode1

      #其他機器依次執行

      SSH

      設置master節點和兩個slave節點之間的雙向ssh免密通信,下面以master節點ssh免密登陸slave節點設置為例,進行ssh設置介紹(以下操作均在master機器上操作):

      首先生成master的rsa密鑰:ssh-keygen -t rsa

      設置全部采用默認值進行回車

      將生成的rsa追加寫入授權文件:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

      給授權文件權限:chmod 600 ?~/.ssh/authorized_keys

      進行本機ssh測試:ssh datasnode1 正常免密登陸后所有的ssh第一次都需要密碼,此后都不需要密碼

      將master上的authorized_keys傳到datanode1

      sudo scp ~/.ssh/id_rsa.pub hadoop@datanode1:~/

      登陸到slave1操作:ssh slave1輸入密碼登陸

      cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

      修改authorized_keys權限:chmod 600 ?~/.ssh/authorized_keys

      退出slave1:exit

      進行免密ssh登陸測試:ssh slave1

      JAVA

      1.解壓

      tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/module/

      2.配置

      # 修改 /etc/profile

      #JAVA_HOME

      export JAVA_HOME=/opt/module/jdk1.8.0_162

      export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

      export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

      3.更新

      source /etc/profile

      NTP 時間同步

      修改配置

      vim /etc/ntp.conf

      主機配置

      從機配置

      從節點同步時間

      service ntpd restart

      chkconfig ntpd on ?# 開機啟動

      ntpdate -u datanode1

      crontab -e

      * */1 * * * /usr/sbin/ntpdate datanode1 ? ? #每一小時同步一次

      同步腳本

      #!/bin/bash

      #1 獲取輸入參數個數,如果沒有參數,直接退出

      pcount=$#

      if((pcount==0)); then

      echo no args;

      exit;

      fi

      #2 獲取文件名稱

      p1=

      fname=`basename $p1`

      echo fname=$fname

      #3 獲取上級目錄到絕對路徑

      pdir=`cd -P $(dirname $p1); pwd`

      echo pdir=$pdir

      #4 獲取當前用戶名稱

      user=`whoami`

      #5 循環

      for((host=1; host<4; host++)); do

      #echo $pdir/$fname $user@datanode$host:$pdir

      echo --------------- datanode$host ----------------

      rsync -rvl $pdir/$fname $user@datanode$host:$pdir

      done

      解壓文件

      tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/

      mv hadoop-2.7.2 hadoop

      修改配置

      fs.defaultFS

      hdfs://datanode1:9000

      hadoop.tmp.dir

      /opt/module/hadoop/data

      fs.trash.interval

      60

      dfs.replication

      3

      dfs.namenode.secondary.http-address

      datanode2:50090

      yarn.nodemanager.aux-services

      mapreduce_shuffle

      yarn.resourcemanager.hostname

      datanode3

      yarn.resourcemanager.recovery.enabled

      true

      export JAVA_HOME=/opt/module/jdk1.8.0_162

      #some Java parameters

      export JAVA_HOME=/opt/module/jdk1.8.0_162

      export JAVA_HOME=/opt/module/jdk1.8.0_162

      mapreduce.framework.name

      Hadoop簡介和安裝

      yarn

      [hadoop@datanode1 module]$ xsync hadoop/

      [hadoop@datanode1 module]$ xsync jdk1.8.0_162/

      hdfs namenode -format

      啟動

      [hadoop@datanode1 hadoop]$ start-dfs.sh

      [hadoop@datanode1 hadoop]$ jps

      51235 NameNode

      51356 DataNode

      52111 Jps

      51919 NodeManager

      [hadoop@datanode3 hadoop]$ start-yarn.sh

      [hadoop@datanode3 hadoop]$ jps

      22260 ResourceManager

      22090 DataNode

      22384 NodeManager

      23013 Jps

      界面

      大數據開發 Hadoop

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:AI人工智能發展現狀
      下一篇:電商微服務實戰之服務監控
      相關文章
      日本亚洲免费无线码| 国产亚洲免费的视频看| 久久精品亚洲综合专区| 久久精品国产精品亚洲艾草网美妙| 久久久久亚洲国产AV麻豆| 亚洲风情亚Aⅴ在线发布| 亚洲日本成本人观看| 亚洲性色精品一区二区在线| 2020国产精品亚洲综合网| 亚洲欧洲日本在线观看 | 国产精品亚洲精品观看不卡| 亚洲欧洲日本精品| 91亚洲精品自在在线观看| 亚洲在成人网在线看| 亚洲免费电影网站| 亚洲一区二区三区高清不卡| 久久久国产亚洲精品| 亚洲另类无码一区二区三区| 亚洲成av人片在www鸭子| 风间由美在线亚洲一区| 国产亚洲视频在线观看网址| 亚洲高清最新av网站| 亚洲一级片内射网站在线观看| 亚洲综合久久夜AV | 亚洲狠狠婷婷综合久久久久| 国产亚洲一区二区精品| 亚洲国产成人久久精品影视| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲欧美日韩国产精品一区| 亚洲精品第一国产综合亚AV| 久久亚洲中文无码咪咪爱| 日本中文一区二区三区亚洲| 亚洲伦乱亚洲h视频| 亚洲自偷自偷偷色无码中文| 亚洲AV无一区二区三区久久| 久久精品国产亚洲77777| 亚洲乱码一二三四区麻豆| 亚洲情A成黄在线观看动漫软件 | 亚洲一区二区三区高清| 亚洲免费视频播放| 亚洲AV成人一区二区三区观看|