1. 程式人生 > 其它 >大資料——叢集搭建

大資料——叢集搭建

目錄

本地源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