linux搭建集群
Ⅰ 什麼是linux集群
1.集群就是一堆集群一起提供用戶的訪問。
2.集群目的:
a.7*24隨時服務
b.三高:高並發、高數據量、高帶寬下的大量用戶訪問問題。
3.單機就類似街邊小餐館,集群就類似大酒店
Ⅱ 如何在Linux下搭建hadoop集群環境 小殘's Blog
前期准備
l 兩台linux虛擬機(本文使用redhat5,IP分別為 IP1、IP2)
l JDK環境(本文使用jdk1.6,網上很多配置方法,本文省略)
l Hadoop安裝包(本文使用Hadoop1.0.4)
搭建目標
210作為主機和節點機,211作為節點機。
搭建步驟
1修改hosts文件
在/etc/hosts中增加:
IP1 hadoop1
IP2 hadoop2
2 實現ssh無密碼登陸
2.1 主機(master)無密碼本機登陸
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
直接回車,完成後會在 ~/.ssh/ 生成兩個文件: id_dsa 和 id_dsa.pub 。
這兩個是成對出現,類似鑰匙和鎖。
再把 id_dsa.pub 追加到授權 key 裡面 ( 當前並沒有 authorized_key s文件 ) :
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost hostname
還是要輸入密碼,一般這種情況都是因為目錄或文件的許可權問題,看看系統日誌,確實是許可權問題
.ssh下的authorized_keys許可權為600,其父目錄和祖父目錄應為755
2.2 無密碼登陸節點機(slave)
slave上執行:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
生成.ssh目錄。
將master上的authorized_keys復制到slave上:
scp authorized_keys hadoop2:~/.ssh/
實驗:在master上執行
ssh hadoop2
實現無密碼登陸。
3 配置Hadoop
3.1拷貝hadoop
將hadoop-1.0.4.tar.gz ,拷貝到usr/local 文件夾下,然後解壓。
解壓命令:
tar –zxvf hadoop-1.0.4.tar.gz
3.2查看 cat /etc/hosts
IP1 hadoop1
IP2 hadoop2
3.3 配置 conf/masters 和 conf/slaves
conf/masters:
1
IP1
conf/slaves:
1
2
IP2
IP2
3.4 配置 conf/hadoop-env.sh
加入
1
export JAVA_HOME=/home/elvis/soft/jdk1.7.0_17
3.5 配置 conf/core-site.xml
1
2
3
4
<property>
<name>fs.default.name</name>
<value>hdfs://IP1:9000</value>
</property>
3.6 配置 conf/hdfs-site.xml
加入
<property>
<name>dfs.http.address</name>
<value>IP1:50070</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
3.7 配置conf/mapred-site.xml
加入
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.50:8012</value>
</property>
3.8 建立相關的目錄
1
/usr/local/hadoop/ //hadoop數據和namenode目錄
【注意】只創建到hadoop目錄即可,不要手動創建data和namenode目錄。
其他節點機也同樣建立該目錄。
3.9 拷貝hadoop文件到其他節點機
將hadoop文件遠程到其他節點(這樣前面的配置就都映射到了其他節點上),
命令:
1
scp -r hadoop-1.0.4 IP2:/usr/local/
3.10 格式化Active master
命令:
bin/hadoop namenode -format
3.11 啟動集群 ./start-all.sh
現在集群啟動起來了,看一下,命令:
1
bin/hadoop dfsadmin -report
2個datanode,打開web看一下
瀏覽器輸入:IP1:50070
打完收工,集群安裝完成!
Ⅲ 伺服器集群怎麼搭建Linux平台的
linux伺服器集群平台的搭建比較簡單,有專門的均衡軟體,比如lvs,lvs是一個集群系統,由很多伺服器組成,可以根據需要,把它門分為三層,一層是前端機,用於均衡,相當於公平為系統分配工作,二層是伺服器群,比如web伺服器群,DNS,mail群等,這些就是接待員,把均衡器分配的工作進行處理,第三層是存儲設備,用於存儲數據,相當於檔案庫。
知道這些後,要搭建就非常容易,有現成的軟體,比如我有四台web伺服器,2台資料庫,1台前置機 ,安裝linux系統,安裝lvs軟體,比如
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
heartbeat-devel-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
heartbeat-gui-2.1.4-9.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
當然還需要配置,你可以自己網路有關lvs集群的詳細安裝說明。希望能幫助你。
Ⅳ 基於Linux自己初步搭建Kubernetes(k8s)集群基礎,詳細教程
k8s官方網站:https://kubernetes.io/zh/,可自行查看相關文檔說明
k8s-master:Ubuntu--192.168.152.100
k8s-node01:Ubuntu--192.168.152.101
k8s-node02:Ubuntu--192.168.152.102
全部已安裝docker,未安裝可根據官方文檔安裝:https://docs.docker.com/get-docker/
1,禁止swap分區
K8s的要求,確保禁止掉swap分區,不禁止,初始化會報錯。
在每個宿主機上執行:
2,確保時區和時間正確
時區設置
3,關閉防火牆和selinux
ubuntu 查看防火牆命令,ufw status可查看狀態,ubuntu20.04默認全部關閉,無需設置。
4,主機名和hosts設置(可選)
非必須,但是為了直觀方便管理,建議設置。
在宿主機分別設置主機名:k8s-master,k8s-node01,k8s-node02
hosts設置
1,更改docker默認驅動為systemd
為防止初始化出現一系列的錯誤,請檢查docker和kubectl驅動是否一致,否則kubectl沒法啟動造成報錯。版本不一樣,docker有些為cgroupfs,而kubectl默認驅動為systemd,所以需要更改docker驅動。
可查看自己docker驅動命令:
更改docker驅動,編輯 /etc/docker/daemon.json (沒有就新建一個),添加如下啟動項參數即可:
重啟docker
需要在每台機器上安裝以下的軟體包:
2,更新 apt 包索引並安裝使用 Kubernetes apt 倉庫所需要的包
安裝軟體包以允許apt通過HTTPS使用存儲庫,已安裝軟體的可以忽略
3,下載公開簽名秘鑰、並添加k8s庫
國外 :下載 Google Cloud 公開簽名秘鑰:
國內:可以用阿里源即可:
請注意,在命令中,使用的是Ubuntu 16.04 Xenial 版本, 是可用的最新 Kubernetes 存儲庫。所以而非20.04 的focal。
4,更新 apt 包索引,安裝 kubelet、kubeadm 和 kubectl,並鎖定其版本
鎖定版本,防止出現不兼容情況,例如,1.7.0 版本的 kubelet 可以完全兼容 1.8.0 版本的 API 伺服器,反之則不可以。
只需要在master上操作即可。
1,初始化錯誤解決(沒有報錯的可以跳過這條)
錯誤提示1:
原因:kubectl沒法啟動,journalctl -xe查看啟動錯誤信息。
解決方案:k8s建議systemd驅動,所以更改docker驅動即可,編輯 /etc/docker/daemon.json (沒有就新建一個),添加如下啟動項參數即可:
重啟docker和kubectel
錯誤提示2:
原因:初始化生產的文件,重新初始化,需要刪除即可
錯誤提示3:
解決方法:重置配置
2,初始化完成
無報錯,最後出現以下,表示初始化完成,根據提示還需要操作。
根據用戶是root或者普通用戶操作,由於大多環境不會是root用戶,我也是普通用戶,所以選擇普通用戶操作命令:
如果是root用戶,執行以下命令:
初始化完成,用最後的提示命令 kubeadm join.... 在node機器上加入集群即可。
3,主節點pod網路設置
主節點支持網路插件:https://kubernetes.io/zh/docs/concepts/cluster-administration/addons/
這里安裝Calico網路插件:https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises
Calico官網提供三種安裝方式,1)低於50個節點,2)高於50個節點,3)etcd datastore(官方不建議此方法)。
這里選擇第一種:
安裝完成後, kubectl get node 可查看節點狀態,由NotReady變成Ready則正常,需要等幾分鍾完成。
1,node加入master節點
在所有node節點機器操作,統一已安裝完成 kubelet、kubeadm 和 kubectl,用master初始化完成後最後提示命令加入,切記要用root用戶。
加入成功後,提示如下:
再次查看kubelet服務已正常啟動。
2,需注意的坑
1:加入主節點,需要 root 用戶執行詞條命令,才可以加入master主節點。
node在沒有加入主節點master之前,kubelet服務是沒法啟動的,是正常情況,會報錯如下:
原因是缺失文件,主節點master初始化 `kubeadm init`生成。
node節點是不需要初始化的,所以只需要用root用戶`kubeadm join`加入master即可生成。
2:如果加入提示某些文件已存在,如:
原因是加入過主節點,即使沒成功加入,文件也會創建,所以需要重置節點,重新加入即可,重置命令:
3,在master查看節點
加入完成後,在master節點 kubectl get node 可查看已加入的所有節點:
這里k8s集群創建完成,下一步使用可參考我的下一篇文章:k8s初步熟悉使用介紹,實踐搭建nginx集群
Ⅳ linux 的環境搭建(二)--redis單機環境、生產環境、集群環境的搭建
一、目錄
1、工具
2、安裝tcl
3、安裝單機版redis
4、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5、安裝redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安裝tcl(安裝redis必須先要安裝tcl)
3.1、把tcl8.6.1-src.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下
四、安裝單機版redis
4.1、把redis-3.2.8.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下
4.2、依次運行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解壓文件
cd redis-3.2.8
make && make test && make install
五、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5.1、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個redis實例監聽的埠號
5.2、修改redis_6379腳本的第6行的REDISPORT,設置為相同的埠號(默認就是6379)
protected-mode no 取消保護模式,保護模式只能127.0.0.1訪問
daemonize yes 讓redis以daemon進程運行
pidfile /var/run/redis_6379.pid 設置redis的pid文件位置
bind 192.168.3.110
port 6379 設置redis的監聽埠號
dir /var/redis/6379 設置持久化文件的存儲位置
logfile /var/log/redis/6379.log 設置日誌文件位置
5.6、啟動redis,依次執行:
cd /etc/init.d,
chmod 777 redis_6379,賦讀寫執行的許可權(chmod -R 777 * 是遞歸把該目錄下的所有文件和其子文件全部賦許可權)
./redis_6379 start 啟動
5.7、確認redis進程是否啟動,ps -ef | grep redis
5.8、讓redis跟隨系統啟動自動啟動
5.9、重啟系統,不手動啟動redis,直接連接redis,可以連接上,表示配置成功
此時一個單機版的redis的生產環境已經搭建好了,每次伺服器重啟,redis都會自動的啟動
六、安裝redis cluster
(redis cluster集群,要求至少3個master,去組成一個高可用,健壯的分布式的集群,每個master都建議至少給一個slave,3個master,3個slave)
6.1、前提,我在其它機器上啟動了六個redis(安裝步驟都如下)
2.2、創建三個目錄:
mkdir -p /etc/redis-cluster 存放集群配置信息,自動生成配置
mkdir -p /var/log/redis redis日誌
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_7001,7001是我們希望這個redis實例監聽的埠號,並修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置為生產環境
6.5、完成了一個redis環境的配置,依次再配置其餘五個,分別為7002、7003、7004、7005、7006,每個啟動腳本內,都修改對應的埠號
6.6、啟動6個redis實例
6.7、創建集群(需要安裝ruby、rubygems)
上述命令在部分機器上是可以直接運行完成,成功安裝的,但在部分機器上運行第三條命令時會提示ruby版本太低、openssl找不到的問題,下面依次解決這兩個問題:
6.8、再次運行gem install redis命令,報出兩個錯誤
6.9、再次運行gem install redis命令,報出一個錯誤
6.10、再次運行gem install redis命令,報出一個錯誤
6.11、再次運行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
運行成功
此時Redis安裝好,此三個工具也安裝好了,這時我們來做一個Redis集群測試,在一台伺服器中創建了6個Redis實例,開啟6個Redis服務
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
此時一個redis集群環境就已經搭建好了,可以通過redis-trib.rb check 192.168.3.105:7003命令查看集群幾點的信息
[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004
redis cluster的優點:讀寫分離+高可用+多master
讀寫分離:每個master都有一個slave
高可用:master宕機,slave自動被切換過去
多master:橫向擴容支持更大數據量
Ⅵ [ray入門] 在Linux上安裝部署Ray集群
Ray 是一個高性能分布式計算框架,藉助它可以非常容易的構建分布式運算任務。本文將介紹如何在Linux上部署Ray集群:
Ray集群由一個 Head 節點和多個 Worker 節點組成:
為了方便,我們最好利用 Anaconda 構建來一個獨立的python運行環境。(當然你也可以直接使用系統內python運行環境,那麼你可以跳過此步驟)
為ray准備一個python環境,以python3.8.8示例:
安裝完之後,最好重新登錄一下,或者執行一下 source ~/.bashrc 使得環境變數生效
安裝ray(版本為1.7.0),這里為了加快速度指定了阿里的鏡像源:
在 192.168.100.1 上啟動Head節點:
正常會看到如下輸出:
輸出信息包含了2個關鍵信息,需要別注意:
在 192.168.100.2 上,按照上面的步驟將python和ray安裝好,注意它們的版本必須保持一致。
(另外,Worker不是必須的,因為Head節點本身就具有worker角色)
訪問dashboard: http://192.168.100.1:8265
無法訪問Ray Dashboard的幾個原因
Ⅶ Linux系統 CentOS 7怎麼搭建集群
CentOS 7下怎麼搭建高可用集群。高可用集群是指以減少服務中斷時間為目的的伺服器集群技術。它通過保護用戶的業務程序對外不間斷提供的服務,把因軟體/硬體/人為造成的故障對業務的影響降低到最小程度。那麼新的centos下怎麼來搭建高可用集群。
環境:本文以兩台機器實現雙集熱備高可用集群,主機名node1的IP為192.168.122.168 ,主機名node2的IP為192.168.122.169 。
一、安裝集群軟體必須軟體pcs,pacemaker,corosync,fence-agents-all,如果需要配置相關服務,也要安裝對應的軟體
二、配置防火牆
1、禁止防火牆和selinux
修改/etc/sysconfig/selinux確保SELINUX=disabled,然後執行setenforce 0或者reboot伺服器以生效
2、設置防火牆規則
三、各節點之間主機名互相解析分別修改2台主機名分別為node1和node2,在centos 7中直接修改/etc/hostname加入本機主機名和主機表,然後重啟網路服務即可。
配置2台主機的主機表,在/etc/hosts中加入
四、各節點之間時間同步在node1和node2分別進行時間同步,可以使用ntp實現。
五、各節點之間配置ssh的無密碼密鑰訪問。下面的操作需要在各個節點上操作。
兩台主機都要互相可以通信,所以兩台主機都得互相生成密鑰和復制公鑰,相互的節點上的hosts文件是都要解析對方的主機名, 192.168.122.168 node1 192.168.122.169 node2
六、通過pacemaker來管理高可用集群
1、創建集群用戶