大資料——叢集搭建
目錄
本地源yum
基礎配置-防火牆等
遠端登陸-ssh
語言環境-java
協調系統-ZK
叢集安裝-Hadoop
1本地源
Centos自帶的YUM源更新太慢,可以使用更改本地源的方法來安裝軟體。我們通常使用yum install
命令來線上安裝linux系統的軟體, 這種方式可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包。
yum 的配置檔案在/etc/yum.repos.d
目錄下, 其中有多個配置檔案,每一個配置檔案中都可以配置一個或多個repository
。yum倉庫就是使用yum命令下載軟體的映象地址。
國內的倉庫可以使用阿里源、163、清華大學等。(進入到/etc/yum.repos.d,然後把原始檔下載到該目錄)
2基礎環境配置
2.1防火牆
關閉防火牆:systemctl stop firewalld
檢視狀態:systemctl status firewalld
centos7中防火牆命令用firewalld取代了iptables,當其狀態是dead時,即防火牆關閉。
2.2主機名與對映
修改主機名:hostnamectl set-hostname <hostsname>
立即生效:bash
新增對映:vim /etc/hosts
ip地址 主機名
192.168.43.1 master
192.168.43.2 slaver1
192.168.43.3slaver2
2.3時區
tzselect命令用於選擇時區。tzselect只是幫我們把選擇的時區顯示出來,並不會實際生效,也就是說它僅僅告訴我們怎麼樣去設定環境變數TZ。
如果要永久更改時區,按照tzselect命令提示的資訊,在.profile或者/etc/profile中設定正確的TZ環境變數並生效。
設定TZ環境變數:TZ='Asia/Shanghai'; export TZ
2.4時間同步
NTP(Network Time Protocol,網路時間協議)是用來使網路中的各個計算機時間同步的一種協議。NTP伺服器就是利用NTP協議提供時間同步服務的。
ntp軟體(支援ntp協議) CentOS6自帶CentOS7需要安裝的。
安裝ntp:yum install -y ntp
master修改檔案/etc/ntp.conf,預設的一個內部時鐘資料,用在沒有外部 NTP 伺服器時,使用它為區域網使用者提供服務:
#檔案/etc/ntp.conf
#server 210.72.145.44 #中國國家授時中心的IP
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 1
slaves手動同步時間
ntpdate master # 同步master上的時間
2.5定時任務
crontab是用來定期執行程式的命令:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
寫一個定時任務:crontab -e
鍵入 i ,進入編輯模式
輸入內容:*/10 * * * * usr/sbin/ntpdate master
檢視定時任務列表:crontab -l
2.6遠端登陸-ssh
注意:如果是非root使用者,需要修改檔案許可權chmod 600 ~/.ssh/authorized_keys
語言環境-java
建立工作目錄:mkdir -p /usr/java
解壓:tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/java/
環境變數:/etc/profile
source /etc/profile(生效)
2.7協調服務zookeeper
網站架構逐漸從集中式轉變成分散式,提供更強的計算、儲存能力,避免單點故障等問題。
舉例說明:當有一項任務分配到某個團隊之後,團隊內部的成員開始各司其職,然後把工作結果統一彙總給團隊主管,由團隊主管再整理團隊的工作成果彙報給公司。
人遇到問題可以溝通,機器如何溝通?如何保證分散式系統中保證資料的一致性和可用性?
zookeeper就是各個服務或節點之間進行協調的服務或中間人,同步資料,同步資訊;
下載解壓zoo安裝包,工作路徑:/usr/zookeeper,注意修改環境變數/etc/profile。
配置檔案zoo.cfg
tickTime=2000 #心跳間隔 initLimit=10 #最大初始時間限制10倍心跳 syncLimit=5 #請求應答時長5倍心跳 dataDir=/usr/zookeeper/zookeeper-3.4.14/zkdata # 資料目錄 clientPort=2181 #客戶端、服務端連線埠 dataLogDir=/usr/zookeeper/zookeeper-3.4.14/zkdatalog #日誌目錄 server.1=master:2888:3888 #叢集列表 server.2=slave1:2888:3888 server.3=slave2:2888:3888
dataDir指定的目錄下面,建立一個myid檔案,裡面內容為一個數字,用來標識當前主機。
注意:mkdir zkdata zkdatalog
2.8Hadoop安裝
下載解壓Hadoop安裝包,工作路徑:/usr/hadoop,注意修改環境變數/etc/profile。
- hadoop-env.sh 用來定義Hadoop執行環境相關的配置資訊;
- core-site.xml 定義系統級別的引數,包括HDFS URL、Hadoop臨時目錄等;
- hdfs-site.xml 定義名稱節點、資料節點的存放位置、文字副本的個數、檔案讀取許可權等;
- mapred-site.xml MapReduce引數
- yarn-site.xml 叢集資源管理系統引數配置
- master檔案,slaves檔案
- 格式化並啟動Hadoop
-
- 2.9新增刪除節點
- 新增節點
- 修改所有的slaves檔案:新增slave3
- 啟動DataNode程序:hadoop-daemon.sh start datanode
-
啟動nodemanage:yarn-deamon.sh start nodemanager
- 刪除節點
-
master主機中hdfs-site.xml配置---dfs.hosts.exclude
-
主節點重新整理所有DataNode:hdfs dfsadmin -refreshNodes
關閉DataNode程序:hadoop-daemon.sh stop datanode
關閉nodemanage:yarn-daemon.sh stop nodemanager