Hadoop集群--(1)搭建

1.發(fā)行版本

?? Hadoop發(fā)行版本分為開源社區(qū)版和商業(yè)版,社區(qū)是指同Apache軟件基金會維護的版本,是官方維護的版本體系,是官方維護版本體系。商業(yè)版Hadoop是指由第三方商業(yè)公司在社區(qū)版Hadoop基礎上進行了一些修改、整合以及各個服務組件兼容性測試面發(fā)行的版本,比較著名的cloudera的CDH、mapR等

?? Hadoop的版本很特殊,是由多條分支并行的發(fā)展著。大的來看分為3個大的系列版本:1.x、2.x、3.x。
?? Hadoop2.0則包含一個支持NameNode橫向擴展的HDFS,一個資源管理系統(tǒng)YARN和一個運行在YARN上的離線計算框架MapReduce。當前穩(wěn)定版本:Apache Hadoop 2.7.4

2.集群簡介

?? Hadoop集群具體來說包含兩個集群:HDFS集群和YARN集群,兩者邏輯上分離,但物理上常在一起。
?? HDFS集群負責海量數據的存儲,集群中的角色主要有:
?? NameNode、DataNode、SecondaryNameNode
?? YARN集群負責海量數據運算時的資源調度,集群中的角色主要有:
?? ResourceManager、NodeManager
?? MapReduce是一個分布式運算編程框架,是應用程序開發(fā)包,由用戶按照編程規(guī)范進行程序開發(fā),后打包運行在HDFS集群上,并且受到YARN集群的資源調度管理


在這里插入圖片描述

?? 集群模式主要用于生產環(huán)境部署。會使用N臺主機組成一個Hadoop集群。 這種部署模式下,主節(jié)點和從節(jié)點分開部署在不同的機器上
?? 我以3個節(jié)點為例進行搭建,角色分配如下:

服務器名 服務名
node-01 NameNode,DataNode, ResourceManager
node-02 DataNode, NodeManager, SecondaryNameNode
node-03 DataNode, NodeManager

3.服務器準備

VMware Workstation Pro 14
CentOS 7.4

4.服務器系統(tǒng)設置

  • 同步時間

    • 手動同步時間
      date -s "2019-04-30 10:00"
    • 網絡同步時間
      yum install ntpdate ?? # 安裝軟件
      ntpdate cn.pool.ntp.org
  • 設置主機名
    hostname node-1

  • 配置IP、主機名映射
    vi /etc/hosts

  • 配置ssh免密登陸

    • 生成ssh免登陸密鑰
      ssh-keygen -t rsa (四個回車)
    • 執(zhí)行完這個命令后,會生成id_rsa(私鑰)、id_rsa.pub(公鑰)
    • 將公鑰拷貝到要免密登陸的目標機器上
      ssh-copy-id node-2
  • 配置防火墻

    • 查看防火墻
      systemctl status firewalld.service
    • 關閉防火墻
      systemctl stop firewalld.service
    • 關閉防火墻開機啟動
      systemctl disable firewalld.service

5.軟件安裝

下面安裝步驟中的所有安裝包可在“官網下載地址”下載,也可以直接從網盤下載
網盤地址(提取碼:yeb1)

  • 需要的安裝包
    yum gcc gcc-c++ cmake openssl-devel ncurse-devel vim
    如使用網盤內的安裝包,并且系統(tǒng)和我一樣是centos7.4,也可直接使用hadoop-2.8.5-with-CentOS7.tar.gz包,跳過Hadoop編譯安裝
    tar zxf hadoop-2.8.5-with-CentOS7.tar.gz /root/apps/

  • JDK環(huán)境安裝

    • 下載JDK安裝包并上傳
      官網下載地址
      在這里插入圖片描述
    • 解壓安裝包
      mkdir apps
      tar zxf jdk-8u211-linux-x64.tar.gz -C /root/apps/
    • 配置環(huán)境變量 /etc/profile
      vim /etc/profile
      export JAVA_HOME=/root/apps/jdk1.8.0_211
      export PATH=$PATH:$JAVA_HOME/bin
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      
    • 刷新配置
      soure /etc/profile

  • Hadoop編譯安裝

    • 需要安裝包
      yum gcc gcc-c++ cmake openssl-devel ncurse-devel vim

    • 安裝maven
      官網下載地址

      在這里插入圖片描述

      解壓:
      tar zxf apache-maven-3.6.1-bin.tar.gz -C /usr/local/
      配置環(huán)境變量 /etc/profile

      vim /etc/profile
      export MAVEN_HOME=/usr/local/apache-maven-3.6.1
      export PATH=${PATH}:${MAVEN_HOME}/bin
      

      刷新配置
      soure /etc/profile

    • 安裝protobuf
      軟件下載
      解壓:
      tar zxf protobuf-2.5.0.tar.gz -C /usr/local/
      編譯安裝:
      cd /usr/local/protobuf-2.5.0/
      ./configure
      make && make install
      驗證:
      protoc --version

      在這里插入圖片描述

    • Hadoop編譯安裝
      選擇2.8.5 source下載
      官網下載地址

      在這里插入圖片描述

      解壓:
      tar zxf hadoop-2.8.5-src.tar.gz
      編譯
      mvn package -DeskipTests -Pdist,native
      或者
      mvn package -DeskipTests -Pdist,native -Dtar
      等待編譯完成,時間很長,可以喝個茶,打個游戲去
      在這里插入圖片描述

      直到看到上面的內容那就說明編譯完成了。
      cp -r hadoop-2.8.5-src/hadoop-dist/target/hadoop-2.8.5/ /root/apps/

6.Hadoop安裝包目錄結構

bin: Hadoop最基本的管理腳本和使用腳本的目錄,這些腳本是sbin目錄下管理腳本的基礎實現,用戶可以直接使用這些腳本管理和使用Hadoop。
etc: Hadoop配置文件所在的目錄,包括core-size.xml、hdfs-size.xml、mapred-site.xml等從Hadoop1.0繼承來的配置文件和yarn-size.xml等Hadoop2.0新增的配置文件
include: 對外提供的編程庫頭文件(具體動態(tài)庫和靜態(tài)庫在lib目錄中),這些頭文件均是用c++定義的,通常用于c++程序訪問HDFS或者編寫MapReduce程序
lib: 該目錄包含了Hadoop對外提供的編程動態(tài)庫和靜態(tài)庫,與include目錄中的頭文件結合使用
libexec: 各個服務對用的shell配置文件所有的目錄,可用于配置日志輸出、啟動參數(比如JVM參數)等基本信息
sbin: Hadoop管理腳本所在的目錄,主要包含HDFS和YARN中各類服務的啟動/關閉腳本
share: Hadoop各個模塊編譯后的jar包所在的目錄

7.Hadoop配置文件修改

Hadoop安裝主要就是配置文件的修改,一般在主節(jié)點進行修改,完畢后scp下發(fā)給其他各個從節(jié)點機器
進入文件夾
cd /root/apps/hadoop-2.8.5/etc

7.1.hadoop-env.sh

文件中設置的是Hadoop運行時需要的環(huán)境變量。JAVA_HOME是必須設置的,即使我們當前的系統(tǒng)中設置了JAVA_HOME,它也是不認識的,因為Hadoop即使是在本機上執(zhí)行,它也是當前的執(zhí)行環(huán)境當成遠程服務器
vim hadoop-env.sh
export JAVA_HOME=/root/apps/jdk1.8.0_211

7.2.core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node-1:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/apps/hadoop-2.8.5/tmp</value>
</property>

7.3.hdfs-site.xml

<!-- 指定HDFS副本的數量 -->
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node-2:50090</value>
</property>

7.4.mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml 

<!-- 指定mr運行時框架,這里指定在yarn上,默認是local -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

7.5.yarn-site.xml

 <!-- 指定 YARN 的老大(ResourceManager)的地址 -->
     <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>node-1</value>
     </property>
     <!-- NodeManager上運行的附屬服務。需要配置成mapreduce_shuffle,才可運行MapReduce程序默認值-->
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>

7.6.slaves文件,里面寫上主機名

vim slaves

node-1
node-2
node-3

7.7.將hadoop添加到環(huán)境變量

vim /etc/profile

export HADOOP_HOME=/root/apps/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

7.8.下發(fā)配置

環(huán)境變量
scp /etc/profile node-2:/etc/
Hadoop文件
scp -r /root/apps/hadoop-2.8.5/ node-3:/root/apps
域名解析
scp /etc/hosts node-2:/etc/

*關于Hadoop的配置文件

***-default.xml 這里面配置了Hadoop默認的配置選項
如果用戶沒有更改,那么這里的選項將會生效

***-site.xml 這里配置了用戶需要自定義的配置選項
site中配置選項優(yōu)先級>Default中的,如果有配置的話,就會覆蓋默認的配置選項

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。