生產環境下hadoop HA叢集及Hbase HA叢集配置
一、環境準備
作業系統版本:
centos7 64位
hadoop版本:
hadoop-2.7.3
hbase版本:
hbase-1.2.4
1、機器及角色
IP | 角色 | |||||||||
192.168.11.131 | Namenode | DFSZKFailoverController | ResourceManager | Jobhistory | HMaster | QuorumPeerMain | ||||
192.168.11.132 | Namenode | DFSZKFailoverController | HMaster | QuorumPeerMain | ||||||
192.168.11.133 | Datanode | NodeManager | JournalNode | HRegionServer | QuorumPeerMain | |||||
192.168.11.134 | Datanode | NodeManager | JournalNode | HRegionServer | QuorumPeerMain | |||||
192.168.11.135 | Datanode | NodeManager | JournalNode | HRegionServer | QuorumPeerMain |
master1:
# hostnamectl set-hostname master1
其他主機名分別配置為master2、slave1、slave2、slave3
2、所有節點關閉防火牆及selinux
說明:
命令前面#表示在root使用者下的操作,$表示在hduser使用者下操作的。
檢視防火牆狀態
# firewall-cmd --state
running
關閉防火牆
# systemctl stop firewalld.service
防火牆配置為禁用狀態
# systemctl disable firewalld.service
立即關閉selinux(臨時)
# setenforce 0
永久關閉selinux
# vi /etc/sysconfig/selinux
SELINUX=enforcing --> disabled
3、配置yum源
所有節點配置yum源
# cd
# mkdir apps
http://mirrors.163.com/centos/7/os/x86_64/Packages/wget-1.14-15.el7.x86_64.rpm
# rpm -i wget-1.14-15.el7.x86_64.rpm
# cd /etc/yum.repos.d
# wget http://mirrors.aliyun.com/repo/Centos-7.repo
# mv Centos-7.repo CentOS-Base.repo
# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/
# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/
# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/
# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/
# yum clean all
# yum makecache
# yum update
4、配置ntp時間同步,master1為ntp服務端,其他為ntp客戶端
所有節點安裝ntp
# yum install -y ntp
ntp server端:
首先配置當前時間
# date -s "2018-05-27 23:03:30"
編輯配置檔案
# vi /etc/ntp.conf
在註釋下新增兩行
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 11
註釋下面
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
啟動ntp服務並配置為開機自啟動
# systemctl start ntpd.service
# systemctl enable ntpd.service
ntp客戶端(其餘四臺都為ntp客戶端):
# vi /etc/ntp.conf
同樣註釋下新增兩行
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 192.168.11.131
fudge 127.127.1.0 stratum 11
四行添加註釋
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
# systemctl start ntpd.service
# systemctl enable ntpd.service
手動同步時間
# ntpdate 192.168.11.131
28 May 07:04:50 ntpdate[1714]: the NTP socket is in use, exiting
對出現的報錯做處理
# lsof -i:123
-bash: lsof: command not found
# yum install -y lsof
# lsof -i:123
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ntpd 1693 ntp 16u IPv4 25565 0t0 UDP *:ntp
ntpd 1693 ntp 17u IPv6 25566 0t0 UDP *:ntp
ntpd 1693 ntp 18u IPv4 25572 0t0 UDP localhost:ntp
ntpd 1693 ntp 19u IPv4 25573 0t0 UDP localhost.localdomain:ntp
ntpd 1693 ntp 20u IPv6 25574 0t0 UDP localhost:ntp
ntpd 1693 ntp 21u IPv6 25575 0t0 UDP localhost.localdomain:ntp
殺掉ntp的程序,注意ntp程序id各不相同,按實際情況處理
# kill -9 1693
再次同步時間成功
# ntpdate 192.168.11.131
27 May 23:06:14 ntpdate[1728]: step time server 192.168.11.131 offset -28808.035509 sec
5、修改主機名和hosts檔案
所有節點修改主機名(永久)
# hostnamectl set-hostname master1~slave3
臨時修改主機名
# hostname master1~slave3
主節點修改hosts檔案
# vi /etc/hosts
192.168.11.131 master1
192.168.11.132 master2
192.168.11.133 slave1
192.168.11.134 slave2
192.168.11.135 slave3
把hosts檔案覆蓋到其他機器
# scp /etc/hosts [email protected]~135:/etc/
所有節點建立管理使用者和組
建立組和使用者
# groupadd hduser
# useradd -g hduser hduser
# passwd hduser
二、配置hadoop環境
1、建立目錄並賦權
每臺機器上建立如下資料夾
# mkdir /data1
# mkdir /data2
修改許可權
# chown hudser:hduser /data1
# chown hudser:hduser /data2
# su hduser
$ mkdir -p /data1/hadoop_data/hdfs/namenode
$ mkdir -p /data2/hadoop_data/hdfs/namenode
$ mkdir -p /data1/hadoop_data/hdfs/datanode(NameNode不要)
$ mkdir -p /data2/hadoop_data/hdfs/datanode(NameNode不要)
$ mkdir -p /data1/hadoop_data/pids
$ mkdir -p /data2/hadoop_data/pids
$ mkdir -p /data1/hadoop_data/hadoop_tmp
$ mkdir -p /data2/hadoop_data/hadoop_tmp
2、無密驗證
master1和master2節點操作
# su - hduser
$ ssh-keygen -t rsa
$ cd ~/.ssh
$ cat id_rsa.pub >> authorized_keys
master1節點操作
$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
master2節點操作
$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
slave1、slave2和slave3節點建立.ssh目錄
# mkdir /home/hduser/.ssh
# chown hduser:hduser /home/hduser/.ssh
master1節點操作
$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh
$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh
$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh
master1和master2節點驗證
驗證方法,分別在兩個節點,ssh登陸本機(hdusser使用者)及其他四個節點,看看是不是無密登陸。
如果未通過驗證,所有機器執行下面命令
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
3、所有節點配置java環境
$ mkdir -p /data1/usr/src
上傳包到/data1/usr/src目錄下
$ cd /data1/usr/src
$ tar xf jdk1.7.0_79.tar -C /data1/usr/
$ vi ~/.bashrc
export JAVA_HOME=/data1/usr/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
$ source ~/.bashrc
4、mastar1節點配置hadoop
下載hadoop-2.7.3.tar.gz,上傳到/data1/usr/src
http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
$ cd /data1/usr/src
$ tar -zxf hadoop-2.7.3.tar.gz -C /data1/usr/
編輯hadoop-env.sh
$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/data1/usr/jdk1.7.0_79
export HADOOP_PID_DIR=/data1/hadoop_data/pids
export HADOOP_PID_DIR=/data2/hadoop_data/pids
export HADOOP_MAPRED_PID_DIR=/data1/hadoop_data/pids
編輯mapred-env.sh
$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/mapred-env.sh
export HADOOP_MAPRED_PID_DIR=/data2/hadoop_data/pids
編輯yarn-env.sh
$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/yarn-env.sh
export YARN_PID_DIR=/data2/hadoop_data/pids
編輯core-site.xml
$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/core-site.xml
<configuration>
<!-- 指定hdfs的nameservice為masters -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://masters</value>
</property>
<!-- 指定hadoop執行時產生檔案的儲存目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/data2/hadoop_data/hadoop_tmp</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>master1:2181,master2:2181,slave1:2181,slave2:2181,slave3:2181</value>
</property>
</configuration>
編輯hdfs-site.xml
$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice為masters,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>masters</value>
</property>
<!-- h1下面有兩個NameNode,分別是master1,master2 -->
<property>
<name>dfs.ha.namenodes.masters</name>
<value>master1,master2</value>
</property>
<!-- master1的RPC通訊地址 -->
<property>
<name>dfs.namenode.rpc-address.masters.master1</name>
<value>master1:9000</value>
</property>
<!-- master1的http通訊地址 -->
<property>
<name>dfs.namenode.http-address.masters.master1</name>
<value>master1:50070</value>
</property>
<!-- master2的RPC通訊地址 -->
<property>
<name>dfs.namenode.rpc-address.masters.master2</name>
相關推薦
生產環境下hadoop HA叢集及Hbase HA叢集配置
一、環境準備作業系統版本:centos7 64位hadoop版本:hadoop-2.7.3hbase版本:hbase-1.2.41、機器及角色IP角色192.168.11.131NamenodeDFSZKFailoverControllerResourceManagerJob
生產環境下hadoop HA集群及Hbase HA集群配置
自動切換 value 下載 shared 第一次 borde sla com 結果 一、環境準備操作系統版本:centos7 64位hadoop版本:hadoop-2.7.3hbase版本:hbase-1.2.41、機器及角色IP角色192.168.11.131Nameno
生產環境下hadoop叢集配置之DNS配置實驗
一、實驗環境: Mac os 下 VirtualBox中三臺安裝centos 6.3虛擬機器 主機名 別名 IP地址 系統版本 角色 lhmaster lhmaster.lihui.hadoop 192.168.1.4 Centos
Linux Shell腳本生產環境下安全地刪除文件
rm safe 腳本編寫背景 無論是生產環境、測試環境還是開發環境,經常需要使用rm命令刪除&批量一些“重要”目錄下的文件。按照Linux的哲學“小即是美”(一個程序只做一件事)+“用戶清楚自己做什麽”(用戶知道自己想要什麽,也明白自己在做什麽,並且會為自己的行為負責),那麽用戶在執行r
linux環境下關於顯示日期及修改密碼的小練習
一只小菜鳥的成長1.顯示1984-11-18是1984年的第幾天 2.顯示當前的日期 ##上面是兩種不同的表現形式## 3.在超級用戶下修改student用戶的密碼,並且student用戶在第一次登錄後強制修改密碼 ## passwd -e ## 強制修改密碼##註意:當使用root用戶修改其他用戶密
一次生產環境下MongoDB備份還原數據
刪除 命令格式 type 庫存 功能 字符 導出文件 信息 fields 最近開發一個版本的功能當中用到了MongoDB分頁,懶於造數據,於是就研究了下從生產環境上導出數據到本地來進行測試。 研究了一下,發現MongoDB的備份還原和MySQL語法還挺類似,下面請看詳細介紹
如何在生產環境下實現每天自動備份mysql數據庫
mysql mysql備份 自動備份mysql mysql數據庫備份 甘兵 1、描述 我相信很多朋友在工作都都會有這種需求,老板或領導讓你每天都要備份mysql數據庫,你該如何實現呢,是每天到一定的時間在服務器上敲一遍mysql的備份命令,還是想寫個腳本,定時定點的自動備份呢?我相信
hadoop、zookeeper及hbase的啟動關閉
ado bsp nbsp serve star 目錄 per slave -h hadoop 啟動:進入到hadoop目錄,sbin/start-all.sh 關閉:sbin/stop-all.sh zookeeper 啟動:進入到zook
Maven_生產環境下開發對Maven的需求
手動 不同 保存 拆分 多個 需要 開發 復制 strong 目前技術開發時存在的問題: 一個項目就是一個工程 如果一個項目非常龐大,就不適合繼續使用package來劃分模塊。最好是每一個模塊對應一個工程,利於分工協作。 借助Maven就可以將一個項目拆
java生產環境下記憶體調優
Tomcat 效能監控與調優 Nginx 效能監控與調優 JVM 層 GC 調優 JAVA程式碼層調優 1.JVM的引數型別 標準引數(各版本中保持穩定) -help -server -client -version -showversion -cp -classpath
php在linux環境下的安裝使用及擴充套件的安裝
下載地址 http://php.net/downloads.php 開始安裝 第一步:安裝相應的庫檔案 yum install xml2-config xml2-confg-devel libxml2 libxml2-devel bzip2 bzip2-de
SpringCloud從入門到進階(四)——生產環境下Eureka的完全分布式部署
分開 -s rip linux mas 此外 實例名 leo 版本 內容 由於前兩節的內容我們知道,開啟了preferIpAddress後,Eureka的偽分布式部署會提示replica不可用。這一節我們講解如何在生產環境下部署完全分布式的Eureka集群,確保開啟了p
SpringCloud從入門到進階(四)——生產環境下Eureka的完全分散式部署
內容 由於前兩節的內容我們知道,開啟了preferIpAddress後,Eureka的偽分散式部署會提示replica不可用。這一節我們講解如何在生產環境下部署完全分散式的Eureka叢集,確保開啟了preferIpAddress後replica的可用性。 版本 IDE:IDEA 2017.2.
如何在生產環境下實現每天自動備份mysql資料庫
www.syncnavigator.cn SyncNavigator 做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源資料庫和目標資料庫可以版本不同,比如:來源資料庫
redis叢集實戰(單臺機器Windows環境下搭建3主3從redis叢集)
本文主要展示在單臺win10機器上搭建三主三從redis叢集。 搭建過程 主要參考作者: 每天都在變得更好的阿飛 的兩篇部落格 《Redis叢集主從複製(一主兩從)搭建配置教程【Windows環境】》https://blog.csdn.net/u010648555/
windows 環境下anaconda的安裝及tensorflow1.9+opencv搭建
剛接觸計算機視覺,需要搭個開發環境,主要用到anaconda+TensorFlow+opencv。話不多說,直接幹。 我電腦是windows的,mac的安裝方式一樣。 1,下載anaconda 官網:https://www.anaconda.com/download/#windo
Ubuntu16.04環境下搭建Hadoop3.0.3偽分散式叢集
最近剛好趕上雙11騰訊促銷,於是搶購了一個8核16G記憶體的雲伺服器,加上業務上需要用到hadoop,hive,於是想搭建搭建一個hadoop分散式叢集,但是限於自己手頭上伺服器數量不多,因此打算先搭建一個hadoop偽分散式叢集。 首先介紹一下我的安裝
[JVM]生產環境下jvm調優概述
JVM相關的典型面試問題: Java生產環境下效能監控與調優詳解 生產環境發生了記憶體溢位如何處理? 生產環境應該給伺服器分配多少記憶體合適? 如何對垃圾收集器的效能進行調優? 4.生產環境CPU負載飆高該如何處理? 5.生產環境應該給應用分
[JVM]Java生產環境下效能監控與調優詳解_Btrace
本章關鍵詞:BTrace、攔截、注意事項 一、入門 1.做什麼的? 可以在應用程式不重啟,不修改的情況下,正在執行的情況下,動態的修改位元組碼,達到監控除錯的目的 可以動態的向目標應用程式的位元組碼注入追蹤程式碼 用到的技術 JavaComplierApi、J
[JVM]Java生產環境下效能監控與調優_參考文件連結
第二章 jdk8工具集 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html Troubleshooting https://docs.oracle.com/javase/8/doc