hadoop集羣搭建

準備工做

先說明我用的是centos7,html

而且準備了四臺虛擬機 ip分別是java

192.168.36.140node

192.168.36.141linux

192.168.36.142apache

192.168.36.143centos

 

 

1、java環境安裝

1.下載jdk

jdk下載地址下載或者在服務器中用命令下載bash

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz

注意,以上jdk-8u191-linux-x64.tar.gz的地址是會變的,因此下載地址須要替換成本身的。服務器

2.安裝

建立目錄cookie

cd /usr/local/
mkdir java
cd java

接着把安裝包上傳到java文件夾中,解壓網絡

tar zxvf jdk-8u191-linux-x64.tar.gz

       配置環境變量

       vi /etc/profile 

       在文件的末尾輸入

export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin

這裏注意本身的是否是jdk1.8.0_191

      使環境變量在當前bash中生效

      source /etc/profile 

 

  java環境配置完畢,注意每臺主機都要配置

2、hadopp下載和配置

1.下載hadoop

hadoop下載地址選擇版本,這裏我用的是3.1.1的

2.配置免密登陸

由於啓動hadoop集羣咱們一般是這樣啓動的,在主節點服務器上啓動腳本,腳本里面的代碼幫助咱們啓動咱們事先配置好的從節點,這裏咱們若是不配置免密登陸的話,早期的版本會須要本身手動輸入每一臺從節點主機的密碼,至於這個3.1.1的版本,我發現直接報錯了。(這裏我也沒肯定是hadoop版本緣由仍是centos版本緣由)

 

我選擇主節點在192.168.36.140這臺主機上,因此我須要在這臺主機上啓動

配置流程以下

在192.168.36.140這臺主機上運行如下命令

ssh-keygen
ssh-copy-id 192.168.36.140
ssh-copy-id 192.168.36.141
ssh-copy-id 192.168.36.142
ssh-copy-id 192.168.36.14

ssh-keygen命令的提示所有默認回車就能夠了

3.配置環境

groupadd hadoop
useradd hadoop -g hadoop

此時 /home 文件下就會多出一個hadoop的文件夾,切換文件夾

cd /home/hadoop

把以前下載的hadoop安裝包上傳到該文件夾下,解壓

同時建立幾個文件夾,後面有用

mkdir /home/hadoop/datas

mkdir /home/hadoop/datas/name

mkdir /home/hadoop/datas/data

接着配置hadoop的環境變量

參考 1.2java環境配置

末尾添加以下代碼

export HADOOP_HOME=/home/hadoop/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin

4.修改配置

         切換到配置文件的文件夾下

 cd /home/hadoop/hadoop-3.1.1/etc/hadoop 

須要修改的文件有五個、hadoop-env.sh  core-site.xml  hdfs-site.xml yarn-site.xml mapred-site.xml

① 首先修改hadoop-env.sh

添加

export JAVA_HOME=/usr/local/java/jdk1.8.0_191

export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"

在低版本中不須要配置這五個user,但3.1.1版本中不配置的話會提示這些user未定義

② 修改 core-site.xml

<configuration>
  <property>
      <name>fs.defaultFS</name>
      <value>hdfs://192.168.36.140:9000</value>
  </property>
</configuration>

③ 修改  hdfs-site.xml

<configuration>

<!-- Configurations for NameNode: -->
<property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/hadoop/datas/name</value>
  <description>namenode產生的元數據信息保存目錄</description>
</property>

<property>
  <name>dfs.blocksize</name>
  <value>268435456</value>
 <description>文件分塊大小,決定map的數量</description>
 
</property>

<property>
  <name>dfs.namenode.handler.count  </name>
  <value>100</value>
</property>

<!-- Configurations for DataNode: -->

<property>
  <name>dfs.datanode.data.dir</name>
  <value>/home/hadoop/datas/data/</value>
</property>

<property>
    <name>dfs.replication</name>
    <value>3</value>
<description>副本數量</description>
</property>

<property>
         <name>dfs.secondary.http.address</name>
         <value>192.168.36.141:50090</value>
          <description>secondarynamenode 運行節點的信息,和 namenode 不一樣節點</description>
</property>
<property>
    <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
    <value>false</value>
  </property>
</configuration>

標紅的地方須要注意,由於我用的是ip,3.1.1版本默認拒絕沒法解析的主機名,因此若是要使用ip配置,這裏務必改爲false,不過正式狀況下仍是建議使用主機名來配置

 

④修改 yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>192.168.36.143</value>
          <description>yarn resourcemanager的主機</description>
        </property>

<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <description>YARN 集羣爲 MapReduce 程序提供的 shuffle 服務</description> </property> </configuration>

⑤修改 mapred-site.xml

<configuration>
  <!-- Configurations for MapReduce Applications: -->
  <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
</configuration>

修改完畢,最後確保每一臺主機都如上配置,以上配置每臺節點如出一轍

修改192.168.36.140主節點文件夾下workers ,讓主節點知道去哪臺節點上啓動從節點,這裏若是須要把主節點也當成datanode的話,能夠把主節點ip也加進去

 

5.格式化目錄

192.168.36.140主節點上執行

 hadoop namenode -format 

 

最後記得關閉全部主機的防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service 

 

6 啓動

在hadoop-3.1.1目錄下執行命令

 sbin/start-all.sh 

 

 

 

 

 

3、雲服務器上搭建

若是選擇使用雲服務器玩hadoop集羣的話,操做基本上是同樣的,但有些地方須要注意了,一個服務器,會給你提供兩個ip 外網相似 21.125.26.124(隨便寫的,如下都用這個舉例公網ip),內網相似  172.0.0.16

這裏值得注意的是有些須要配置ip或主機的地方,你可能常常在log中發現一大堆 port 9000或者几几幾  in used 的錯誤信息,這時候你的網絡確定是都用公網配置的 21.125.26.124這個ip,固然若是你都使用內網172.0.0.16配置的話確定也不對,外網訪問不到主節點,因此須要這樣配置。

例如,配置主節點,這時候core-site.xml的配置文件中namenode的地址是本機,因此在這臺服務器上須要配置成內網172.0.0.16這個ip,而在配置從節點的時候,對於從節點來講主節點是在另一臺服務器上,這裏就須要配置成外網 21.125.26.124。其餘secondarynamenode 和resourcemanager配置都以此類推。

相關文章
相關標籤/搜索