1. 程式人生 > >hadoop3.1.0 HA高可用完全分散式叢集的安裝部署(詳細教程)

hadoop3.1.0 HA高可用完全分散式叢集的安裝部署(詳細教程)

1.環境介紹

伺服器環境:CentOS 7 5臺伺服器 兩臺namenode 三臺datanode

節點

IP

NN

DN

ZK

ZKFC

JN

RM

NM

h01

192.168.163.135

1

1

1

h02

192.168.163.136

1

1

1

h03

192.168.163.137

1

1

1

1

h04

192.168.163.138

1

1

1

1

h05

192.168.163.139

1

1

1

1

安裝檔案版本:

JDK      :jdk-8u65-linux-x64.tar.gz

Zookeeper :  zookeeper-3.4.9.tar.gz

2.配置hadoop的hosts檔案和關閉防火牆及配置ssh免密登陸每臺都要配置

2.1新增hostname(每臺都要執行)

hostnamectl --static set-hostname h01

2.2新增hosts檔案配置項

vim /etc/hosts

內容如下:

192.168.163.135 h01

192.168.163.136 h02

192.168.163.137 h03

192.168.163.138 h04

192.168.163.139 h05

檔案拷貝至其他4臺伺服器使用命令

scp -r /etc/hosts [email protected]:/etc/hosts

scp -r /etc/hosts [email protected]:/etc/hosts

scp -r /etc/hosts [email protected]:/etc/hosts

scp -r /etc/hosts [email protected]:/etc/hosts

2.3關閉防火牆

安裝iptables

yum install iptables-services

關閉和永久關閉防火牆

systemctl stop iptables
systemctl disable iptables
systemctl stop firewalld
systemctl disable firewalld

2.4配置ssh免密登陸(一定要配置很重要)

在5臺伺服器上生成密匙

ssh-keygen -t rsa

密匙相互拷貝伺服器別漏掉

(每臺都要執行包括自己本身)

ssh-copy-id h02

在任意機器測試連線情況

ssh [email protected]

3.安裝JDK

新建資料夾

mkdir -p /usr/local/java

解壓jdk檔案

tar -zxvf jdk.....  -C /usr/local/jav

配置環境變數

vim /etc/profile

內容如下

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

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

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

生效配置檔案

source /etc/profile

拷貝jdk到其他伺服器

scp -r /usr/local/java/jdk1.8.0_65 h02:/usr/local/java/jdk1.8.0_65

拷貝環境變數到其他伺服器

scp /etc/profile h05:/etc

每臺機器生效環境變數

source /etc/profile

4.安裝zookeeper叢集

建立zookeeper的資料存放路徑

(h03,h04,h05三臺伺服器都要建立)

mkdir zdata/data

安裝zookeeper

tar -xzvf zookeeper-3.4.9.tar.gz

建立zookeeper的資料夾連線

ln -sf zookeeper-3.4.9 zookeeper

修改環境變數

vim /etc/profile

變成如下內容

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

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export ZOOKEEPER_HOME=/zdata/zookeeper

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

拷貝後修改配置檔案

cp /zdata/zookeeper/conf/zoo_sample.cfg /zdata/zookeeper/conf/zoo.cfg

如下內容

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/zdata/data

# the port at which the clients will connect

clientPort=2181

server.1=h03:2888:3888

server.2=h04:2888:3888

server.3=h05:2888:3888

拷貝安裝目錄和環境變數到h04,h05伺服器

scp /etc/profile h05:/etc

scp -r /zdata/zookeeper-3.4.9 h04:/zdata/zookeeper-3.4.9

生效配置檔案

source /etc/profile

生成ID在data資料夾中(三臺伺服器對應)

echo "1" > myid

echo "2" > myid

echo "3" > myid

啟動zookeeper服務進入bin目錄(三臺都要啟動)

./zkServer.sh start

Jps檢視是否啟動成功

出現QuorumPeerMain標識啟動成功

5.安裝hadoop叢集

新建hadoop資料夾 5臺伺服器都要建立

mkdir -p /usr/local/hadoop

解壓hadoop

tar -zxvf hadoop-3.1.0.tar.gz -C /usr/local/hadoop/

配置環境變數每臺都要配置

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

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.0

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

生效配置檔案命令上面有。

下面開始配置hadoop的配置檔案

vim /usr/local/hadoop/hadoop-3.1.0/etc/hadoop/hadoop-env.sh

內容如下

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

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.0

 修改core-site.xml

<configuration>

<!-- 指定hdfs的nameservice為ns1 -->

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://ns1/</value>

    </property>

    <!-- 指定hadoop臨時目錄 -->

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/hdata/tmp</value>

    </property>



    <!-- 指定zookeeper地址 -->

    <property>

        <name>ha.zookeeper.quorum</name>

        <value>h03:2181,h04:2181,h05:2181</value>

    </property>

</configuration>

修改hdfs-site.xml

<configuration>

    <!--指定hdfs的nameservice為ns1,需要和core-site.xml中的保持一致 -->

    <property>

        <name>dfs.nameservices</name>

        <value>ns1</value>

    </property>

    <!-- ns1下面有兩個NameNode,分別是nn1,nn2 -->

    <property>

        <name>dfs.ha.namenodes.ns1</name>

        <value>nn1,nn2</value>

    </property>

    <!-- nn1的RPC通訊地址 -->

    <property>

        <name>dfs.namenode.rpc-address.ns1.nn1</name>

        <value>h01:9000</value>

    </property>

    <!-- nn1的http通訊地址 -->

    <property>

        <name>dfs.namenode.http-address.ns1.nn1</name>

        <value>h01:50070</value>

    </property>

    <!-- nn2的RPC通訊地址 -->

    <property>

        <name>dfs.namenode.rpc-address.ns1.nn2</name>

        <value>h02:9000</value>

    </property>

    <!-- nn2的http通訊地址 -->

    <property>

        <name>dfs.namenode.http-address.ns1.nn2</name>

        <value>h02:50070</value>

    </property>

    <!-- 指定NameNode的edits元資料在JournalNode上的存放位置 -->

    <property>

        <name>dfs.namenode.shared.edits.dir</name>

        <value>qjournal://h03:8485;h04:8485;h05:8485/ns1</value>

    </property>

    <!-- 指定JournalNode在本地磁碟存放資料的位置 -->

    <property>

        <name>dfs.journalnode.edits.dir</name>

        <value>/hdata/jdata</value>

    </property>

    <!-- 開啟NameNode失敗自動切換 -->

    <property>

        <name>dfs.ha.automatic-failover.enabled</name>

        <value>true</value>

    </property>

    <!-- 配置失敗自動切換實現方式 -->

    <property>

        <name>dfs.client.failover.proxy.provider.ns1</name>

        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

    </property>

    <!-- 配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行-->

    <property>

        <name>dfs.ha.fencing.methods</name>

        <value>

            sshfence

            shell(/bin/true)

        </value>

    </property>

    <!-- 使用sshfence隔離機制時需要ssh免登陸 -->

    <property>

        <name>dfs.ha.fencing.ssh.private-key-files</name>

        <value>/root/.ssh/id_rsa</value>

    </property>

    <!-- 配置sshfence隔離機制超時時間 -->

    <property>

        <name>dfs.ha.fencing.ssh.connect-timeout</name>

        <value>30000</value>

    </property>

</configuration>

修改mapred-site.xml

<configuration>

    <!-- 指定mr框架為yarn方式 -->

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

</configuration>

修改yarn-site.xml

<configuration>



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

<!-- 開啟RM高可用 -->

    <property>

        <name>yarn.resourcemanager.ha.enabled</name>

        <value>true</value>

    </property>

    <!-- 指定RM的cluster id -->

    <property>

        <name>yarn.resourcemanager.cluster-id</name>

        <value>yrc</value>

    </property>

    <!-- 指定RM的名字 -->

    <property>

        <name>yarn.resourcemanager.ha.rm-ids</name>

        <value>rm1,rm2</value>

    </property>

    <!-- 分別指定RM的地址 -->

    <property>

        <name>yarn.resourcemanager.hostname.rm1</name>

        <value>h01</value>

    </property>

    <property>

        <name>yarn.resourcemanager.hostname.rm2</name>

        <value>h02</value>

    </property>

    <!-- 指定zk叢集地址 -->

    <property>

        <name>yarn.resourcemanager.zk-address</name>

        <value>h03:2181,h04:2181,h05:2181</value>

    </property>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

修改工作workers檔案

vim workers

內容如下

h01

h02

h03

在/hadoop/sbin路徑下:

將start-dfs.sh,stop-dfs.sh兩個檔案頂部新增以下引數

#!/usr/bin/env bash

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

HDFS_JOURNALNODE_USER=root

HDFS_ZKFC_USER=root

還有,start-yarn.sh,stop-yarn.sh頂部也需新增以下:

#!/usr/bin/env bash

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

把配置好的hadoop檔案拷貝至其他機器上(別忘記修改環境變數)

scp -r /usr/local/hadoop/hadoop-3.1.0 h03:/usr/local/hadoop/hadoop-3.1.0

scp -r /usr/local/hadoop/hadoop-3.1.0 h04:/usr/local/hadoop/hadoop-3.1.0

scp -r /usr/local/hadoop/hadoop-3.1.0 h05:/usr/local/hadoop/hadoop-3.1.0

啟動過程

第一步先啟動journalnode分別在h03,h04,h05伺服器上啟動jps檢視啟動是否成功

sbin/hadoop-daemon.sh start journalnode

在h01上格式化hdfs(格式化後在吧hadoop拷貝至h02第二個節點)

hdfs namenode -format
scp -r /usr/local/hadoop/hadoop-3.1.0 h02:/usr/local/hadoop/hadoop-3.1.0

在h01上格式化ZKCF只需要執行一次

hdfs zkfc -formatZK

啟動hdfs在h01上

sbin/start-dfs.sh
  1. 測試叢集執行

相關推薦

hadoop3.1.0 HA可用完全分散式叢集安裝部署詳細教程

1.環境介紹 伺服器環境:CentOS 7 5臺伺服器 兩臺namenode 三臺datanode 節點 IP NN DN ZK ZKFC

HBase 1.2.6 完全分散式叢集安裝部署詳細過程

Apache HBase 是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,是NoSQL資料庫,基於Google Bigtable思想的開源實現,可在廉價的PC Server上搭建大規模結構化儲存叢集,利用Hadoop HDFS作為其檔案儲存系統,利用Hadoo

Hadoop偽分散式完全分散式搭建和測試詳細

安裝 Hadoop 入門學習,快速搭建偽分散式環境。 注:需要下載的安裝包在文章底部,請自行獲取。 1. 修改主機名 vim /etc/hostname vim /etc/hosts reboot reboot 重啟主機使修改配置檔案生效,這裡我

CentOS7+Hadoop2.7.2(HA可用+Federation聯邦)+Hive1.2.1+Spark2.1.0 完全分散式叢集安裝

本文件主要記錄了Hadoop+Hive+Spark叢集安裝過程,並且對NameNode與ResourceManager進行了HA高可用配置,以及對NameNode的橫向擴充套件(Federation聯邦) 1VM網路配置 將子網IP設定為192.168.1.0: 將閘道器設定

HDFS可用完全分散式搭建步驟

一、準備階段 分散式思想 分散式叢集規劃 主機名 IP地址 NN-1 NN-2 DN ZK ZKFC JNN

大資料(六) --可用完全分散式搭建

說明     搭建之前, 先根據HDFS三種模式一文將叢集的初始環境配置OK. 高可用完全分散式搭建 叢集規劃 NN(active) NN(standby) DN ZK ZKFC JNN node01 √ – – – √ √ node02

[K8s 1.9實踐]Kubeadm 1.9 HA 可用 叢集 本地離線映象部署_Kubernetes中文社群

Kubeadm HA 1.9 高可用 叢集 本地離線部署 k8s介紹 k8s 發展速度很快,目前很多大的公司容器叢集都基於該專案,如京東,騰訊,滴滴,瓜子二手車,北森等等。 kubernetes1.9版本釋出2017年12月15日,每是那三個月一個迭代, Workloads API成為穩定版本,這消除

HDFS可用完全分散式搭建

目錄 叢集規劃 關閉防火牆 時間同步 修改hosts檔案 配置免密登入 所有節點配置JDK 配置hadoop 搭建zookeeper叢集 格式化 驗證HA故障自動切換 需要注意的問題 叢集

可用完全分散式

NN-1 NN-2 DN ZK ZKFC JNN node01 √ √ √

hadoop+zookeeper+yarn搭建可用完全分散式環境詳細步驟

一、zookeeper叢集的安裝。 (我親自成功搭建過的一套叢集,涉及到很多的細節,但是有的細節地方我不一定能完全寫出,如果有遇到問題的可以留言) 前提準備3臺centos7.0虛擬機器 (1)首先設定每臺虛擬機器的網路連線方式為net方式,然後修改每臺虛

Redis practise使用Docker部署Redis可用分散式叢集

思路鑑於之間學習過的Docker一些基礎知識,這次準備部署一個簡單的分散式,高可用的redis叢集,如下的拓撲tuopu.png下面介紹下,對於這張拓撲圖而言,需要了解的一些基礎概念。Redis持久化Redis有兩種持久化策略。Rdb全量備份形成二進位制檔案: dump.rdb在使用命令 save(停寫),

Rancher2.2.2-HA 可用k8s容器叢集搭建

對於生產環境,需以高可用的配置安裝 Rancher,確保使用者始終可以訪問 Rancher Server。當安裝在Kubernetes叢集中時,Rancher將與叢集的 etcd 整合,並利用Kubernetes 排程實現高可用。 為確保高可用,本文所部署的 Kubernetes 叢集將專用於執行 Ranch

LVS+keepalived可用負載均衡集群部署---LAMP網站服務器與LVS服務器

虛擬機l 系統環境: RHEL7 l 硬件環境:虛擬機l 項目描述:為解決網站訪問壓力大的問題,需要搭建高可用、負載均衡的 web集群。 l 架構說明:整個服務架構采用功能分離的方式部署。後端采用2臺mysql 數據庫,實現主從結構以及讀寫分離。中間LAMP網站服務器共有2臺, 前端 2臺LVS服務

【hadoop】hadoop完全分散式叢集安裝

文章目錄 前言 裝備 Core 總結 前言 後面準備更新hdfs操作(shell命令版本),hbase,hive的操作。 所以這裡先更新一下hadoop叢集安裝。 裝備 1.hadoop-2.6.5.tar.gz

Jenkins的分散式構建及部署master~slaver

一 什麼是Jenkins的分散式構建和部署   Jenkins的分散式構建,在Jenkins的配置中叫做節點,分散式構建能夠讓同一套程式碼或專案在不同的環境(如:Windows和Linux系統)中編譯、部署等。 二 什麼時候使用節點和作用   當我們使用多臺伺服器時,並且配置了tomcat或jb

Hadoop分散式叢集環境搭建三節點

一、安裝準備 建立hadoop賬號 更改ip 安裝Java 更改/etc/profile 配置環境變數 export $JAVA_HOME=/usr/java/jdk1.7.0_71 修改host檔案域名 172.16.133.149 hadoop101

Sqoop-1.99.7安裝配置詳細圖文

環境:centos 6.5,hadoop2.6.4叢集 1.解壓安裝sqoop 從官網下載好安裝包,傳送到叢集中任意一臺主機即可。相信大家已經看到,1.99.7跟1.4.6是不相容的,而且官網也不建議使用這個版本在生產環境中使用。可是,為了學習,搞吧!

分散式--CentOS安裝zookeeper單機版

開啟我們的分散式之路吧!!! (1)官網下載zookeeper,我這裡使用的是3.4.5版本。下載地址 並且我們要給自己的伺服器配置hosts先 $ vi /etc/hosts (2)解壓唄,我們這就不解壓在usr/local那裡了,

Python 0基礎開發遊戲:打地鼠詳細教程VS code版本

如果你沒有任何程式設計經驗,而且想嘗試一下學習程式設計開發,這個系列教程一定適合你,它將帶你學習最基本的Python語法,並讓你掌握小遊戲的開發技巧。你所需要的,就是付出一些時間和耐心來嘗試這些程式碼和操作。 @[top] 一、準備工作 1 下載安裝 python 2 下載安裝VS code編輯器 安裝時

《手把手教你》系列進階篇之1-python+ selenium自動化測試 - python基礎掃盲詳細教程

1. 簡介   如果你從一開始就跟著巨集哥看部落格文章到這裡,基礎篇和練習篇的文章。如果你認真看過,並且手動去敲過每一篇的指令碼程式碼,那邊恭喜你,至少說你算真正會利用Python+Selenium編寫自動化指令碼了,你基本掌握了Selenium中webdriver的大部分常用的方法函式。有大佬曾經說過,自動