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
- 測試叢集執行
相關推薦
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的大部分常用的方法函式。有大佬曾經說過,自動