(开篇感谢博主https://blog.csdn.net/weixin_38023225/article/details/106186029)
先登录进行: 192.168.XXX.X5 管理员用户: xhna 密 码: xhna
1.修改hosts文件 etc/hosts,主机工作域名配置 测试环境
192.168.XXX.XX0 test001
192.168.XXX.XX1 test002
192.168.XXX.XX2 test003
192.168.XXX.XX3 test004
正式环境
192.168.XXX.XX0 cdh001
192.168.XXX.XX1 cdh002
192.168.XXX.XX2 cdh003
192.168.XXX.XX3 cdh004
192.168.XXX.XX4 cdh005
192.168.XXX.XX5 cdh006
2.修改主机名
先查看主机名
hostname
再修改主机名 命令形式
hostnamectl set-hostname 主机名
修改
hostnamectl set-hostname cdh005/cdh006
再次查看主机名
hostname
无需重启,只需新开会话窗口,便可变为新的主机名。
使用reboot 可以机器重启hosts文件中的原始主机名会还原(待解决)
Source /etc/hosts 即使在正常环境上使用也不通(最起码source 命令在cdh中刷新hosts文件是行不通的,可以使用source刷新profile环境变量的配置文件)
总结
hosts文件不用刷新保存即生效!!!
reboot 重启hosts配置文件会发生更改!!
使用hostname 查看是否将机器名字更改过来。
3.关闭防火墙和清空规则
#查看防火墙状态,注:active是绿的running表示防火墙开启
systemctl status firewalld.service
#关闭防火墙
systemctl stop firewalld.service
#开机禁用防火墙自启命令
systemctl disable firewalld.service
4.免密登录 默认情况下,centos7已经安装了ssh的服务端和客户端 可以通过以下方式查看。
yum list installed | grep openssh-server
如果没有安装,可以通过以下方式安装
yum install openssh-server
测试ssh:
ssh root@要进行链接的机器ip地址 例如:
ssh root@test001
ssh-keygen -t rsa 命令生成密钥
回车1234 四下
将本机生成的密钥发动给谁,谁就能免密登录test004
ssh-copy-id 192.168.**.*
例如:
ssh-copy-id test001
查看该文件可以知道有没有配置某台机器的免密登录 /root/.ssh目录下: cat -n known_hosts
第一次免密登录还是要进行输入密码
5.添加新用户
添加新用户:useradd**** (qytest) 例如:
useradd xhna
然后再: passwd + 用户名 例如:
passwd xhna
回车后 录入自己设置的密码(qiyue)
xhna
用root用户进行到root目录下(普通用户没有权限) visudo命令:
为该用户添加配置权限:(此处赋的管理员权限 ALL)
参考现有集群中(cdh001…cdh004)节点权限配置:
为普通用户(zhangwen)赋予权限:
admin ALL=(ALL) NOPASSWD: ALL
xhna ALL=(ALL) NOPASSWD: ALL
User_Alias CDH_INSTALLER=xhna
Cmnd_Alias CDH_CMD= /usr/bin/chown, /usr/sbin/service, /usr/bin/systemctl, /usr/bin/rm, /usr/bin/id, /usr/bin/install,/usr/sbin/chkconfig, /usr/bin/yum, /usr/bin/sed, /usr/bin/mv, /usr/sbin/ntpdate
CDH_INSTALLER ALL=(ALL) NOPASSWD:CDH_CMD
xhna ALL =(ALL) NOPASSWD: ALL
cloudera-scm ALL=(ALL) NOPASSWD:ALL
quickapp ALL=(ALL) NOPASSWD: ALL,!/bin/su,!/bin/bash
admin ALL=(ALL) NOPASSWD: /bin/whoami
Bigdata ALL=(ALL) NOPASSWD: ALL
普通用户登录切换到root用户:
可用 sudo su root 即可完成切换,如果不配置普通用户权限此操作不能完成
6.安装jdk (主要参考:
https://blog.csdn.net/weixin_46609492/article/details/118000385
检查本地自带jdk:
rpm -qa|grep java --此命令也是网上搜的,亲测不太好用
使用java -version 命令,进行测试新节点机器上是否安装jdk
test001、test002、test003 都会查询到jdk的版本信息,新节点test004上查询不到jdk的版本型号,说明没有安装。
如果有自带的jdk,那么卸载自带的jdk:
rpm –e --nodeps xxxxxxxxx
修改文件所属组(/etc/group文件记录系统中所有的组名称)
chgrp xhnafile xhna
修改文件所有者
chown xhnafile xhna
例如: 修改jdk文件夹的所属用户和组 sudo chown -R root:root/usr/java/jdk1.8.0_211
解压命令
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/java
-- usr/java是解压到哪个目录下 mkdir /usr/java/
直接将test001上的解压后的jdk文件夹发送到test004机器向对应的位置(再修改配置即可使用)
scp -r jdk/ test004:$PWD jdk一般放在 /usr/java/ 路径下,
这里我提前在新节点创建了新的文件夹
配置新增机器的profile 配置文件: 在profile 文件的最后边添加 export JAVA_HOME=/usr/java/jdk1.8.0_144 export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
配置文件内容有特殊字符,这里显示有异样(下面配张图)
7.透明大页 首先查看透明大页是否启用,
[always] never表示已启用
always [never]表示已禁用
查看命令 cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never (正在启用)
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never (正在启用)
以上状态就说明是启用的
永久关闭:
修改配置文件:
/etc/rc.d/rc.local
//在文件后添加下面内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
保存退出 然后赋予rc.local文件执行权限:
chmod +x /etc/rc.d/rc.local
8.调整时间(NTP):
timedatectl 命令查看时间
查看结果已经为上海时区(也可以通过命令设置时区timedatectl set-timezone Asia/Shanghai)
通过yum源进行安装:
yum install -y ntp
安装ntp(集群中时间相关配置)
编辑ect 目录下的ntp.conf 配置文件 #本来根据本机服务获取当前时间,修改为根据集群中主节点获取当前时间
# local clock
#server 127.127.1.0
#fudge 127.127.1.0 stratum 10
#集群中主节点ip
server 192.168.xxx.xx0 #集群中主机ip 这里我用的是test001
fudge 192.168.200.210 stratum 10
启动ntpd
systemctl start ntpd
设置开机启动
systemctl enable ntpd
查看ntp的状态
systemctl status ntpd
验证是否成功设置 查看是否开机自启1:
systemctl list-unit-files |grep enabled | grep ntpd
查看是否开机自启2:
systemctl is-enabled ntpd
Disabled 不开机自启 查看ntp的进程
netstat -tlunp | grep ntp
解决机器重启ntp 不重启的问题:
1.需要禁掉chronyd.service:
systemctl disable chronyd.service
2.手动启动ntpd:
systemctl start ntpd
3.再次设置开机自启动:
systemctl enable ntpd
4.重启服务器测试ntpd即可正常自启动了
图中问题由于 反复启动ntp服务导致
9.CM Agent安装(集群相关连的服务)
从主节点test001上将:
cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
分发到test004机器上
从节点上安装
sudo rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
sudo rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
配置Agent
sudo vi /etc/cloudera-scm-agent/config.ini
# Hostname of the CM
server_host=test001 #集群主节点 ,我仍然用的是我集群中的主机点
创建文件夹(root用户下创建):
/usr/share/java
在主节点上的该目录下(执行)分发给新加节点:
scp -r mysql-connector-java.jar/ test004:$PWD
用户连接数据库,读取cloudera服务信息数据
新增的Agent节点:
启动服务:(添加节点只需要启动agent服务即可)
service cloudera-scm-agent start(从节点上启动该服务) 注意!!!
service cloudera-scm-service start(主节点启动该服务) 从节点不要试着启它
10.配置交换内存
配置交换内存:
修改swappiness参数 临时性修改:
sysctl vm.swappiness=10
查看
cat /proc/sys/vm/swappiness
结果 10
永久修改:
vim /etc/sysctl.conf
vm.swappiness=30
查看交换内存:
swapon -s 不显示结果
配置交换内存:
https://blog.csdn.net/qq_26894673/article/details/102950521
创建挂载文件 (测试集群中最好保持一致的文件路径 home/swap/swap 这里最后一个swap为挂载文件) (正式环境中实在home/目录下直接创建的挂载文件 swap )
例如: fallocate -l 8G swap 置为8G内存 (这里测试环境设置的为61G,正式环境97G[注意一次配置够此文件不好删除])
测试环境如下操作: 1、
fallocate -l 61G swap 置为61G内存(fallocate -l 100G swap)
2、
chmod 600 swap
3、
mkswap swap
4、
swapon swap
/home/swap/swap
5、编辑配置文件:
vim /etc/fstab
/home/swap/swap swap swap defaults 0 0
11.下载python 1、rpm -qa | grep postgresql 在test001,test002,test003上能够查询到结果,而在test004不能查询到结果
2、yum install postgresql-devel
3、yum install gcc libffi-devel python-devel openssl-devel -y
4、pip install --upgrade psycopg2 test004上执行报异常
执行这里的23步后,再在test004执行1就可以查询到结果了(异常没了)
12.挂载磁盘
挂载2T以下的磁盘 1、查看未挂载的硬盘
fdisk -l
2、创建硬盘分区
fdisk /dev/vdb (系统自带目录)
fdisk /dev/vdc (系统自带目录)
fdisk /dev/vdd (系统自带目录)
3、硬盘分区
依次输入"n","p" "1",两次回车,"wq"
4、查看硬盘分区信息
lsblk
4、格式化硬盘
mkfs.ext4 /dev/vdb1(格式化分区后的文件)
mkfs.ext4 /dev/vdc1(格式化分区后的文件)
mkfs.ext4 /dev/vdd1(格式化分区后的文件)
5、挂载硬盘(建立挂载目录/已有目录)
mount /dev/vdb1 /data0
mount /dev/vdc1 /data1
mount /dev/vdd1 /data2
6、df -h 查看挂载路径
更改挂载目录: 实例: 把已经挂载在 data0 目录上的硬盘挂载到 data 目录上 1、查看挂载情况
df -h
2、data 文件已经存在不用再建
把 data 目录下的文件拷贝到其他文件夹下,挂载完之后再放进来
3、解除原来挂载的目录
umount /data0
4、查看挂载情况
df -h
5、重新挂载
mount /dev/vdb1 /data
6、查看挂载情况
df -h
7、配置配置文件 vi /etc/fstab (编辑fstab文件修改或添加,使重启后可以自动挂载)
/dev/vdb1 /data ext4 auto 0 0
拓展文件拷贝命令:
cp -r /data /home/zhangwen/nxw/data(不显示进度条)
由于磁盘容量大于2T:一般的挂载不可用 1、查看未挂载的硬盘
fdisk -l
2、先解除 umount /data 的挂载(/dev/vdb1)
umount /data
umount /data1
umount /data2 (解决文件在忙的问题fuser -m -v /data2)
3、df -h 查看挂载路径
4、标志位GPT /dev/vdb
parted /dev/vdb mklabel gpt
parted /dev/vdc mklabel gpt
parted /dev/vdd mklabel gpt
5、使用 parted 分区创建分区
parted /dev/vdb mkpart primary 0 100%
parted /dev/vdc mkpart primary 0 100%
parted /dev/vdd mkpart primary 0 100%
6、格式化分区
mkfs.ext4 /dev/vdb1 (第五台机器分区 /dev/vdb,注意配置文件书写)
mkfs.ext4 /dev/vdc1
mkfs.ext4 /dev/vdd1
7、查看硬盘分区信息
lsblk
7、创建文件或者使用已存在文件 data data1 data2
8、分区挂载
mount /dev/vdb1 /data (第五台机器分区 /dev/vdb,注意配置文件书写)
mount /dev/vdc1 /data1
mount /dev/vdd1 /data2
9、查看分区情况
df -h
配置文件etc/fstab:
第5台机器配置!!!(vdb 格式化需要注意)
/dev/vdb1 /data ext4 defaults 0 0(/dev/vdb /data ext4 defaults 0 0 第五台机器配置文件)
/dev/vdc1 /data1 ext4 defaults 0 0
/dev/vdd1 /data2 ext4 defaults 0 0
第6台机器配置
/dev/vdb1 /data ext4 defaults 0 0
/dev/vdc1 /data1 ext4 defaults 0 0
/dev/vdd1 /data2 ext4 defaults 0 0
拓展 为某些文件赋权限: 修改该文件的权限:
chmod u+w /etc/sudoers //先增加权限
chmod u-w /etc/sudoers //然后再把权限去掉
访问http://192.168..:71/cmf/home
在web页面进行节点添加操作:常遇到的问题
下面提示不用做处理:(选择qytest集群即可)
下面提示不用做处理:
Add Hosts:
下面提示不做处理:
下图问题在于test004节点没与qytest集群建立连接: 解决办法:重启agent 服务
此问题需要解决:检查test004新加节点,所有需要启动的服务是否正常启动,
提示1:swappiness参数配置问题(跟集群现有集群保持一致) 提示2:下载安装postgresql-devel 提示3:测试环境jdk版本不一致
透明大页问题: 解决方案:禁用即可
图中框中提示是由于重启新增节点test004,导致hosts文件恢复原来的主机名(一串字符)
下载更新python-pip问题 解决方法:(大数据平台环境搭建) sudo yum install gcc libffi-devel python-devel openssl-devel -y sudo yum -y install epel-release sudo yum install python-pip sudo pip install --upgrade psycopg2 test004上执行报异常
新的解决方案(网上搜索好用): 1、rpm -qa | grep postgresql 在test001,test002,test003上能够查询到结果,而在test004不能查询到结果 2、yum install postgresql-devel 3、yum install gcc libffi-devel python-devel openssl-devel -y 4、pip install --upgrade psycopg2 test004上执行报异常 执行这里的23步后,再在test004执行1就可以查询到结果了(异常没了)
vm.swappiness值问题 临时性修改: sysctl vm.swappiness=10 查看 cat /proc/sys/vm/swappiness 10
永久修改: vim /etc/sysctl.conf vm.swappiness=30
点击继续,选择qytest 集群(不用新创建)
节点组件添加问题 创建新的示例之后,进行组件的添加 调研新增节点需要添加的组件(6个组件): Yarn: NodeManager Gateway Spark Gateway Hdfs DataNode Gateway Hive Gateway
例如这里添加hdfs组件从节点
为test004添加了一个DateNode 角色:
类比其他的大数据组件,根据集群需求为test004分配相应的角色。
|