1、所需文件下载
2、磁盘直挂
1、磁盘分区并挂载磁盘
2、磁盘挂载并设置开机自启
mount /dev/sdb1 /data1
echo "/dev/sdb1 /data1 ext4 defaults 0 0" >> /etc/fstab
3、磁盘挂载完要打开 df -l 查看挂载情况,可能会直接挂载在根目录上,而其他磁盘挂载在/root/data1,导致在安装集群时找不到磁盘
3、离线安装HTTP
从 https://centos.pkgs.org/ 下载依赖包,全部选择X86_64
直接通过这种办法安装是比较麻烦的,我使用上面的方式安装的时候发现有很多依赖,而且又有版本限制,花了很长时间才把这个服务安装上去,最好的方式是通过挂载的CentOS 镜像安装,省时省力。
4、时钟同步ntp安装
1、卸载已安装的包及安装指定版本的包
yum remove ntpdate.x86_64
rpm -ivh autogen-libopts-5.18-5.el7.x86_64.rpm
rpm -ivh ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm
rpm -ivh ntp-4.2.6p5-28.el7.centos.x86_64.rpm
2、开启时钟同步
systemctl start ntpd
systemctl enable ntpd
systemctl status ntpd
3、配置文件
以离线环境下任意服务器为例,如10.1.42.210为服务端server配置,10.1.42.211为客户端client配置。
在ntp服务器server端
vi /etc/ntp.conf
------------------添加
允许IPV4 IPV6 查询 拒绝修改
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify
.# 如果联不通外网,则把上面几行注释,然后添加下面两行,意思是设置成时间服务器是自己
server 127.127.1.0.fudge 127.127.1.0 stratum 8
.# 注释掉以下行
.# server 0.centos.pool.ntp.org iburst
.# server 1.centos.pool.ntp.org iburst
.# server 2.centos.pool.ntp.org iburst
.# server 3.centos.pool.ntp.org iburst
service ntpd restart
systemctl disable chronyd.service
systemctl enable ntpd.service
ntpstat
在ntp客户client端
vi /etc/ntp.conf
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify
.# 如果联不通外网,则把上面几行注释,然后添加下面两行,意思是设置成时间服务器是自己
server 10.1.42.210
fudge 10.1.42.210 stratum 8
service ntpd restart
systemctl disable chronyd.service
systemctl enable ntpd.service
ntpstat
ntpdate -u 10.1.42.210
5、Hosts文件配置
配置各服务器IP
vi /etc/hosts
6、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
7、禁用selinux并关闭防火墙
vi /etc/sysconfig/selinux
8、镜像挂载
挂载镜像到目录:/media/CentOS7
mkdir -p /media/CentOS7
cd /media/CentOS7
挂载ISO文件到新建(/media/CentOS7)路径下,比如当前的文件上传到了/opt 目录下, 则最好是cd 到iso镜像所在目录再执行挂载,否则会报挂载只读的错误。
cd /opt
mount -t iso9660 -o loop /opt/CentOS-7.8.iso /media/CentOS7
然后将原来的所有repo文件都 copy到bak目录中:
cd /etc/yum.repos.d
mkdir bak
mv ./* bak
此时需要根据原 CentOS-Base.repo进行修改,则先将该文件copy一份到 /etc/yum.repo.d 在进行修改
cd bak
cp CentOS-Base.repo ../
cd ../
vi /etc/yum.repos.d/CentOS-Base.repo
后修改Centos-Base.repo为当前的文件内容,vi 进入后可以先删除全部文件行(可以输入 100dd,删除前100行),文件内容如下:
[base]
name=centos7
baseurl=file:///media/CentOS7
enabled=1
gpgcheck=0
gpgkey=file:///media/CentOS7/RPM-GPG-KEY-CentOS-7
挂载完成后可以进行查询或者安装东西.
yum install -y gcc-C++ 或者yum search jdk
如何把本地yum源给其他机器使用_使用本地http的yum源
查看上传的镜像
http://10.1.42.210/cdh6/
从一台服务器复制远程访问本地镜像文件到另一台
cd /etc/yum.repos.d
scp Centos-Base.repo root@master01:/opt/cloudera/parcel-repo
如果不想挂载这么麻烦,还有一种办法是使用 UltralSO 打开镜像,然后把需要的包拖出来,用rpm 安装就行了。
9、修改机器名
hostnamectl set-hostname centos701
10、安装Java
1、把rpm安装包上传
2、mkdir /usr/java
3、把原系统安装的jdk卸载后再安装jdk
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64 java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
4、安装jdk
rpm -ivh jdk-8u261-linux-x64.rpm
chmod -R 755 /usr/java
5、vi /etc/profile 在最后加入
export JAVA_HOME=/usr/java/default
export CLASSPATH=.:JAVA_HOME/jre/lib
export PATH=PATH
6、返回终端输入以下命令立即生效
source /etc/profile
11、安装数据库
1、解决mariadb-libs is obsoleted by mysql-community-libs-5.7.16-1.el7.x86_64问题
rpm -qa | grep postfix
rpm -qa | grep mariadb
rpm -e postfix-2:2.10.1-9.el7.x86_64
rpm -e mariadb-libs-5.5.65-1.el7.x86_64
2、安装数据库
rpm -ivh mysql-community-*.rpm
3、打开数据库
systemctl start mysqld
systemctl enable mysqld #开机自启
4、查看初始化密码
cat /var/log/mysqld.log |grep password
5、用初始化密码登陆
mysql -uroot -p
报错:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
在vi /etc/my.cnf 加入skip-grant-tables 退出终端重启数据库
6、输出查出的初始密码,修改密码为
set password=password('Bigdata@2022');
解决 MySQL修改密码:ERROR 1133 (42000): Can’t find any matching row in the user table
use mysql; select Host,User from user;
报错:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
set password for ‘root’@‘localhost’=password(‘Bigdata@2022’);
或
set password for 'root'@'%'=password('Bigdata@2022');
再运行
flush privileges;
7、建立相关数据库及用户,允许远程登陆
登录
mysql -uroot -p
密码
mysql -uroot -p‘Bigdata@2022’
在数据库里执行
grant all on *.* to root@'%' identified by ‘Bigdata@2022’ with grant option;
create database scm default character set utf8 default collate utf8_general_ci;
grant all on scm.* to 'scm'@'%' identified by 'Bigdata@2022';
create database hue default character set utf8 default collate utf8_general_ci;
grant all on hue.* to 'hue'@'%' identified by 'Bigdata@2022';
create database hive default character set utf8 default collate utf8_general_ci;
grant all on hive.* to 'hive'@'%' identified by 'Bigdata@2022';
create database azkaban default character set utf8 default collate utf8_general_ci;
grant all on azkaban.* to 'azkaban'@'%' identified by 'Bigdata@2022';
flush privileges;
flush privileges 是让数据库及时生效
9、初始化数据库
在终端执行
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root Bigdata@2022
10、把mysql-connection.jar安装包复制
cp mysql-connector-java-5.1.48.jar /usr/share/java/mysql-connector-java.jar
12、安装CM
1、从挂载上去的CentOS系统中取出安装所需文件并安装
yum install mod_ssl
yum install openssl-devel
yum install python-psycopg2
yum install MySQL-python
yum install lsb
yum install postgresql-server
以上可合并为如下
yum install mod_ssl openssl-devel python-psycopg2 MySQL-python lsb postgresql-server
3、上传CM、CDH文件到服务器上,然后从一台拷贝到其他所有机器上,修改sha1 为sha
cd /var/www/html/cdh6/
Mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
scp clou* root@master01:/opt/cm6
scp CDH* root@master01:/opt/cdh6
3、安装CM
cd /opt/cm6
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
13、修改配置文件
1、所有agent节点
vi /etc/cloudera-scm-agent/config.ini
把
server_host=hostname
改为
server_host=master01
或
server_host=192.168.1.210
#尽量不要用机器名,因为在10段访问时,识别的机器IP为10段,不是内部的192段。
2、配置server节点
vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost(或192.168.1.210)
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=root
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=123456
14、启动集群
1、启动server 和agent所有节点
service cloudera-scm-server start
systemctl enable cloudera-scm-server
systemctl status cloudera-scm-server
service cloudera-scm-agent start
systemctl enable cloudera-scm-agent
systemctl status cloudera-scm-agent
查看端口
netstat -nltp
2、登陆CM管理界面安装集群
http://10.1.42.210:7180/cmf/login
登陆的界面网上有很多截图,这里我没有一一截图。
每个节点的配置其实不用太纠结,在在后面装完后,可以在管理界面上添加角色和服务。
15、不良处理
1、节点不良处理办法:
rm -f /var/lib/cloudera-scm-agent/cm_guid
systemctl restart cloudera-scm-agent
2、格式化集群
hdfs namenode -format
3、终端显示乱码
方法1:
打开文件
vi /etc/locale.conf
输入
LANG=“ch_CN”
立即生效
source /etc/locale.conf
终端运行date 验证,发现 星期 是中文的就说明成功了
date
方法2:
可以使用命令修改locale.conf配置文件
localectl set-locale LANG=zh_CN
source /etc/locale.conf
4、授权访问磁盘文件夹
sudo chmod -R a+w /root/data1
5、重装系统(这部分在第一篇文章有详细图片)
1、修改iso文件名称长度,缩短,重新刻录进U盘
2、重启服务器 按del进去manager configure 修改boot type为legacy Boot
3、保存重启
4、装完系统后,需再修改回UEFI Boot
6、该主机已与 Cloudera Manager Server 建立联系。 该主机未与 Host Monitor 建立联系。
service cloudera-scm-agent stop
service cloudera-scm-agent start
网上有很多教程说是要删除节点,然后再添加,这本麻烦,因为master和agent之间是有一个UUID相互匹配的,如果重装之后不一致,就添加不进来了。尤其是当master出现问题时,这可能使得整个集群崩溃,如果是新安装的集群,里面没数据还好,损失不大,要是使用很久的,这就会导致影响业务。