CDH6.2.0安裝步驟
1 檢查生產環境
1.1 檢查硬體資訊
硬體資訊一般裝系統的同學會提供,且叢集的機器也會按照我們的要求進行配置,檢驗幾個核心的系統和硬體引數:
記憶體:free -g
磁碟空間和目錄劃分:df -h
系統核數:grep "processor" | sort | uniq | wc -l
1.2 確認系統資訊
保證作業系統是要求的centos系列,最低建議要求7.4,位數建議64位
檢視命令:cat /etc/redhat-release
1.3 確認伺服器內部網路是否互通
如果無法ping通內部服務,則檢查 /etc/sysconfig/network-scripts/ifcfg-ens33 檔案,確認 ONBOOT 的值如果為no需要修改為yes(Centos7.5虛擬機器安裝初始預設為no),否則網路無法連通。手動檢查各個主機上的網路設定,如果有問題則修改配置
# ONBOOT=no 改成 ONBOOT=yes(ifcfg-ens33該名稱各主機可能不一樣)修改完後重啟 vim /etc/sysconfig/network-scripts/ifcfg-ens33 reboot
1.4 配置yum源
已配置好的話此步跳過,以下適用於伺服器已經配置了其他源,yum不可用的情況
cd /etc/yum.repos.d/ rename .repo .repo.bak *.repo wget http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
2 修改系統配置
2.1 修改主機名(可選)
修改的主機名,和稍後需要配置hosts檔案保持一致
檢視主機名(Centos7) less /etc/hostname 修改主機名,以下每條命令在對應的主機上執行 hostnamectl set-hostname master01 hostnamectl set-hostname hadoop01 hostnamectl set-hostname hadoop02 hostnamectl set-hostname hadoop03
2.2 更新hosts檔案
所有節點執行(重要)
所有叢集hosts配置要相同
檢視hosts: less /etc/hosts
echo "192.168.0.131 master01" >> /etc/hosts
echo "192.168.0.45 hadoop01" >> /etc/hosts
echo "192.168.0.155 hadoop02" >> /etc/hosts
echo "192.168.0.170 hadoop03" >> /etc/hosts
2.3 關閉防火牆,禁止開機自啟
所有節點執行
區域網內部安全情況下最好關閉防火牆,因為CM管理元件和CDH元件有大量的埠進行通訊,需要配置很多防火牆策略。
需要開放的埠可參考 官網說明,如果不能確保開放所有所需埠,則需要關閉防火牆
-
- systemctl stop firewalld 關閉防火牆 - systemctl disable firewalld 禁止防火牆開機自啟 - vim /etc/selinux/config —> SELINUX=disabled (修改)
2.4 各主機之間的免密登入(可以不用配置)
- manager節點執行ssh-keygen -t rsa 一路回車到結束,在/root/.ssh/下面會生成一個公鑰檔案id_rsa.pub
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 將公鑰追加到authorized_keys
- chmod 600 ~/.ssh/authorized_keys 修改許可權
- 將~/.ssh從當前節點分發到其他各個節點。如:scp -r ~/.ssh/ root@node1:~/.ssh/
- ssh 各個節點互相登陸
2.5 禁用selinux(優化項,所有節點)
所有節點
檢視是否開啟:vim /etc/selinux/config 修改:SELINUX=disable
sed -i ‘s/SELINUX=enforce/SELINUX=disabled/g’ /etc/selinux/config
2.6 禁用ipv6(優化項,所有節點)
Centos7.5預設開啟IPv6,CM元件明確說明不支援系統的IPv6功能,IPv6開啟狀態下可能會出現不可預料的錯誤,需要提前關閉。
檢視IPv6啟用狀態可以通過以下幾種方式:
- ifconfig:檢視是否有IPv6的地址(inet6)
- lsmod:檢視是否有ipv6關鍵字
- disable_ipv6:檢視/proc/sys/net/ipv6/conf/all/disable_ipv6檔案內容,0為開啟,1為關閉
# 檢視IPv6當前狀態,有值則為開啟,空則為關閉 ansible all -a "lsmod | grep ipv6"
IPv6開啟的情況下如何關閉:
# 第六行新增 vim /etc/default/grub GRUB_CMDLINE_LUNUX="ipv6.disable=1 ...." # 重啟 ansible all -a "reboot" # 驗證 ansible all -a "lsmod | grep ipv6"
2.7 安裝NTP
以下操作是所有節點進行
設定好後的驗證操作:
ntpdc -c loopinfo #檢視與時間同步伺服器的時間偏差
ntpq -p #檢視當前同步的時間伺服器
ntpstat #檢視狀態
1、新增dns,如果有可以不用做該操作
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
2、修改為中國標準時區
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3、安裝ntp
yum install ntp -y
4、手動同步時間(ntpd服務關閉的情況下),避免時間差距過大導致同步失敗
ntpdate -u 0.cn.pool.ntp.org
5、有外網的情況下可直接配置外部ntp伺服器
echo "server ntp1.aliyun.com" >> /etc/ntp.conf
6、啟動ntp
systemctl start ntpd
7、設定開機自動啟動
systemctl enable ntpd
3 優化系統配置
3.1 關閉tuned (所有節點)
tuned服務會動態調整系統引數,在自定義優化後,重啟會覆蓋掉已優化的引數
1、啟動,檢查tuned狀態 systemctl start tuned systemctl status tuned 2、顯示No current active profile時執行下命令 tuned-adm off tuned-adm list 3、關閉tuned,禁止開機啟動 systemctl stop tuned systemctl disable tuned
3.2 關閉透明頁 (所有節點)
檢查驗證透明頁是否開啟,never是未啟用
cat /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/defrag
如果啟用啟用時,執行以下操作
1 關閉 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag 2 設定開機關閉 echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local chmod +x /etc/rc.d/rc.local 3 在GRUB_CMDLINE_LINUX專案後面新增一個引數:transparent_hugepage=never vim /etc/default/grub 4 重新生成gurb.cfg檔案 grub2-mkconfig -o /boot/grub2/grub.cfg
3.3 修改swappiness引數 (所有節點)
為了避免伺服器使用swap功能而影響伺服器效能,一般都會把vm.swappiness修改為0(cloudera建議10以下)
這裡設為1,代表:vm.swappiness=1 #使用到達99%,才開始用Swap虛擬記憶體
驗證命令,檢視原始值:
cat /proc/sys/vm/swappiness
1、設定值 sysctl -w vm.swappiness=1 echo "vm.swappiness=1" >> /etc/sysctl.conf
3.4 設定會話超時時間(所有節點)
echo "TMOUT=900">>/etc/profile
3.5 安裝常用工具 (所有節點)
yum install -y expect bc net-tools iotop zip unzip telnet wget iperf3 fio ntfs-3g lzo iftop vim
3.6 系統核心優化
echo -e "\nnet.ipv4.tcp_tw_reuse = 1
\nnet.ipv4.tcp_tw_recycle = 1
\nnet.ipv4.tcp_keepalive_time = 1200
\nnet.ipv4.ip_local_port_range = 10000 65000
\nnet.ipv4.tcp_max_syn_backlog = 8192
\nnet.ipv4.tcp_max_tw_buckets = 5000
\nfs.file-max = 655350
\nnet.ipv4.route.gc_timeout = 100
\nnet.ipv4.tcp_syn_retries = 1
\nnet.ipv4.tcp_synack_retries = 1
\nnet.core.netdev_max_backlog = 16384
\nnet.ipv4.tcp_max_orphans = 16384
\nnet.ipv4.tcp_fin_timeout = 2
\net.core.somaxconn=32768
\kernel.threads-max=196605
\kernel.pid_max=196605
\vm.max_map_count=393210" >> /etc/sysctl.conf
3.7 最大開啟檔案數優化
最大開啟檔案數
ulimit -a
sed -i '$ a\* soft nofile 196605' /etc/security/limits.conf
sed -i '$ a\* hard nofile 196605' /etc/security/limits.conf
echo "* soft nproc 196605" >> /etc/security/limits.conf
echo "* hard nproc 196605" >> /etc/security/limits.conf
4 系統效能測試
登入linux伺服器,安裝常用工具
yum install -y expect bc net-tools iotop zip unzip telnet wget iperf3 fio ntfs-3g lzo iftop vim
網路測試
使用iperf測試主機之間的網路傳輸效率。
# 在一個主機上啟動iperf 服務端
iperf3 -s -p 12345 -i 1
# 另外一個主機啟動iperf 客戶端連線服務端
iperf3 -c cdh85-19 -p 12345 -i 1 -t 10 -w 100K
磁碟IO測試
使用fio工具對io進行各個場景的讀寫效能測試。
隨機讀
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file -allow_mounted_write=1
順序讀
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file -allow_mounted_write=1
隨機寫
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file -allow_mounted_write=1
順序寫
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file -allow_mounted_write=1
混合隨機讀寫
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file -ioscheduler=noop -allow_mounted_write=1
todo:
- 記憶體效能測試
- 作業系統效能測試
5 安裝基礎服務
5.1 安裝jdk (所有節點)
rpm -qa | grep java # 查詢已安裝的java
yum remove java* # 解除安裝
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
vi /etc/profile #末尾新增
------------------新增的內容-------------------------------
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
----------------------新增的內容-----------------------------
source /etc/profile
java -version #驗證安裝是否成功
5.2 新增mysql驅動包 (所有節點)
驅動包是提前下載好,上傳到伺服器的
mkdir -p /usr/share/java
mv /root/temp/mysql-connector-java.jar /usr/share/java/
5.3 安裝 mysql (控制節點)
mysql密碼忘記後重置操作
# 重置 /usr/bin/mysql_secure_installation
檢視、解除安裝已有的mariadb資料庫
rpm -qa|grep -i mariadb rpm -e mariadb-libs-5.5.65-1.el7.x86_64 --nodeps
- 解壓mysql安裝包並進行安裝:
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm
- MYSQL配置:
初始化配置mysql mysqld --initialize --user=mysql # 初始化mysql使mysql目錄的擁有者為mysql使用者 2、檢視mysql密碼 grep "temporary password" /var/log/mysqld.log 3、啟動mysql systemctl start mysqld systemctl status mysqld systemctl enable mysqld 4、連線mysql,修改密碼 mysql -uroot –p mysql》 ALTER USER USER() IDENTIFIED BY '123456';
登入進去後,ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.需要修改訪問密碼:
ALTER USER USER() IDENTIFIED BY ‘rootpwd’;
如果是5.7之前版本,可以使用如下方式: SET PASSWORD = PASSWORD(‘rootpwd’);
如果不能登陸,設定免密登入並重啟mysql服務:
vi /etc/my.cnf
#在[mysqld]的段中加上一句:skip-grant-tables ,
然後重啟mysql: systemctl restart mysqld
- 建立庫(後續安裝服務等使用)
create database metastore default charset utf8 collate utf8_general_ci; create database amon default charset utf8 collate utf8_general_ci; create database rman default charset utf8 collate utf8_general_ci; create database hue default charset utf8 collate utf8_general_ci; create database oozie default charset utf8 collate utf8_general_ci; CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; create database hive default charset utf8 collate utf8_general_ci; GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive'; GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm'; grant all on metastore.* to 'metastore'@'%' identified by 'metastore'; grant all on amon.* to 'amon'@'%' identified by 'amon'; grant all on rman.* to 'rman'@'%' identified by 'rman'; grant all on hue.* to 'hue'@'%' identified by 'hue'; grant all on oozie.* to 'oozie'@'%' identified by 'oozie';
5.4 安裝httpd服務 (控制節點)
yum install httpd
systemctl start httpd
systemctl enable httpd.service
5.5 配置Cloudera Manager包yum源 (控制節點)
1、建立cdh包路徑,把 CDH 6.2 的三個檔案放到該目錄下
- CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha - CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel - manifest.json
mkdir -p /var/www/html/cloudera-repos/cdh6.2
2、建立cm包路徑,將Cloudera Manager安裝需要的5個rpm包,asc檔案以及jdk檔案下載到本地,放在同一目錄,執行createrepo命令生成rpm後設資料
allkeys.asc cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm cloudera-manager-server-db-2-6.2.0-968826.el7.x86_64.rpm enterprise-debuginfo-6.2.0-968826.el7.x86_64.rpm oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
mkdir -p /var/www/html/cloudera-repos/cm6.2 cd /var/www/html/cloudera-repos/cm6.2 yum install createrepo createrepo . 以上命令執行後, 最終 cm6.2目錄下多了一個repodata目錄
5.6 配置yum倉庫(控制節點)
下載倉庫檔案和key檔案
cd /var/www/html/cloudera-repos/cm6.2 wget https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPM-GPG-KEY-cloudera 2、開啟倉庫配置,下載倉庫檔案 cd /etc/yum.repos.d wget https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/cloudera-manager.repo 3、修改倉庫檔案 vim cloudera-manager.repo
[cloudera-manager]
name=Cloudera Manager 6.2.0
baseurl=http://master01/cloudera-repos/cm6.2/
gpgkey=http://master01/cloudera-repos/cm6.2/RPM-GPG-KEY-cloudera
gpgcheck=1
enabled=1
autorefresh=0
type=rpm-md$ yum clean all $ yum makecache $ yum repolist
5.7 安裝cm(管理節點)
1、安裝管理節點
sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
2、移動cdh的安裝包到/opt/cloudera/parcel-repo
mv /root/CDH-6.2.0/parcel-repo/* /opt/cloudera/parcel-repo 生成簽名檔案 sha1sum CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel | awk '{ print $1 }' > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
5.8 初始化cm(管理節點)
初始化資料庫
cat /etc/cloudera-scm-server/db.properties /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
5.9 啟動cm (控制節點)
service cloudera-scm-server start systemctl enable cloudera-scm-server
訪問 http://master01:7180/cmf/login開始操作
5.10 啟動資料節點agent
把管理節點的倉庫檔案傳送到各資料節點
1、管理節點傳送配置檔案到各子節點 scp /etc/yum.repos.d/cloudera-manager.repo root@hadoop01:/etc/yum.repos.d/ scp /etc/yum.repos.d/cloudera-manager.repo root@hadoop02:/etc/yum.repos.d/ scp /etc/yum.repos.d/cloudera-manager.repo root@hadoop03:/etc/yum.repos.d/ 2、各子節點重建yum yum clean all yum makecache yum repolist sudo yum install cloudera-manager-daemons cloudera-manager-agent 3、所有節點執行以下 systemctl start cloudera-scm-agent systemctl enable cloudera-scm-agent
6 hive配置修改
修改後可使用hiveDDL語句
1.將datanucleus.autoCreateSchema 改為true
2.將hive.metastore.schema.verification 改為 flash
2 cdh 搭建
前言
系統版本:某大資料研發建議系統版本為CentOS7.2
檢視作業系統系統版本命令
cat /etc/issue 或cat /etc/redhat-release
本次搭建環境基礎資源
CentOS Linux release 7.8.2003 (Core)
已有資源
192.168.0.131
192.168.0.170
192.168.0.45
192.168.0.155
伺服器選型
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-Enpv2g7f-1602566890310)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1594792414765.png)]
服務分配
服務名稱 | 子服務 | hadoop102 | hadoop103 | hadoop104 | hadoop104 |
---|---|---|---|---|---|
NameNode | √ | ||||
HDFS | DataNode | √ | √ | √ | |
SecondaryNameNode | √ | √ | |||
Yarn | NodeManager | √ | √ | √ | √ |
Resourcemanager | √ | ||||
Zookeeper | Zookeeper Server | √ | √ | √ | √ |
Hive | Hive | √ | |||
MySQL | MySQL | √ | |||
Sqoop | Sqoop | √ | |||
hbase | hbase | √ | √ | √ | |
cudu | cudu | √ | √ | √ | |
服務數總計 | 6 | 6 | 6 | 6 |
2.1 確認伺服器內部網路是否互通
如果無法ping通內部服務,則檢查 /etc/sysconfig/network-scripts/ifcfg-ens33 檔案,確認 ONBOOT 的值如果為no需要修改為yes(Centos7.5虛擬機器安裝初始預設為no),否則網路無法連通。手動檢查各個主機上的網路設定,如果有問題則修改配置:
# ONBOOT=no 改成 ONBOOT=yes # ifcfg-ens33該名稱各主機可能不一樣 vim /etc/sysconfig/network-scripts/ifcfg-ens33 reboot
2.1 修改伺服器名稱(可選)
檢視主機名(Centos7)
less /etc/hostname
修改主機名
hostnamectl set-hostname master1.tgserver.xiyang.com
2 下載依賴包
3、伺服器域名配置
vim /etc/hosts
例如:
44.5.10.195 nn1.gdjgj nn1
44.5.10.196 nn2.gdjgj nn2
44.5.10.197 dn1.gdjgj dn1
44.5.10.198 dn2.gdjgj dn2
44.5.10.199 dn3.gdjgj dn3
44.5.10.195 archive.cloudera.com (IP為yum源所在的機器IP地址)
4、關閉防火牆、禁止防火牆開機自啟(每個節點)
-
- systemctl stop firewalld 關閉防火牆 - systemctl disable firewalld 禁止防火牆開機自啟 - vim /etc/selinux/config —> SELINUX=disabled (修改)
相關文章
- vnc安裝步驟,vnc安裝步驟詳解VNC
- [ 安裝 ] Zeppelin安裝步驟!
- xftp安裝步驟,xftp安裝的2大步驟FTP
- Nagios安裝步驟iOS
- STF 安裝步驟
- anaconda安裝步驟
- Linux 安裝步驟Linux
- vnc安裝步驟,如何在Linux(CentOS 7)下vnc安裝步驟VNCLinuxCentOS
- Sublime Text安裝步驟
- aws安裝jenkins步驟Jenkins
- Iris 框架安裝步驟框架
- zookeeper安裝部署步驟
- windows安裝cnpm步驟WindowsNPM
- Maya 2023安裝步驟
- charles的安裝步驟
- Linux安裝Nginx步驟LinuxNginx
- 安裝jdk的步驟JDK
- vnc安裝步驟,4個在Linux下vnc的個安裝步驟VNCLinux
- ubuntu 下安裝nginx步驟UbuntuNginx
- linux下安裝docker步驟LinuxDocker
- Android studio的安裝步驟Android
- MHA安裝和部署步驟
- 【Nginx1.12.2安裝步驟】Nginx
- 國內Kubernetes安裝步驟
- Linux安裝JDK完整步驟LinuxJDK
- 如何安裝discuz論壇,discuz安裝步驟
- Mac安裝Redis,詳細redis安裝步驟MacRedis
- vnc安裝步驟,4個vnc安裝步驟實現vnc與Linux的連線VNCLinux
- 安裝sogou輸入法步驟:Go
- PostgreSQL簡介及安裝步驟SQL
- Laravel Homestead windos Mac 安裝步驟LaravelMac
- Linux 下安裝 LR Generator 步驟Linux
- dp安裝包升級步驟
- LNMP之PHP安裝操作步驟LNMPPHP
- Ubuntu 20.10的Docker安裝步驟UbuntuDocker
- docker安裝portainer詳細步驟DockerAI
- MySQL的安裝步驟(詳細)MySql
- arcgis安裝教程10.2 arcgis詳細安裝步驟