https://www.jianshu.com/p/e6a09ddb4d6d
一、Linux系统的安装
-
安装Linux CentOS 7.1系统
-
设置网络
- 配置IP与主机之间的映射,命令如下:
vi /etc/hosts
10.187.113.41 cdh01
10.187.113.42 cdh02
10.187.113.43 cdh03
10.187.113.44 cdh04
10.187.113.45 cdh05- 禁用IPv6
echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf -
增加普通用户
useradd hadoop(增加用户)
passwd hadoop(修改用户密码) -
配置普通用户的sudo权限
vi /etc/sudoers
hadoop ALL=(root)NOPASSWD:ALL -
关闭防火墙
centos6.5关闭防火墙service iptables stop (暂时关闭)
chkconfig iptables off(永久性关闭)centos7关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动 -
禁用Selinux
vi /etc/sysconfig/selinux
SELINUX=disabled -
设置文件打开数量和用户最大进程数
查看文件打开数量
ulimit -a
查看用户最大进程数ulimit -u
vi /etc/security/limits.conf
增加以下内容:soft nofile 65535
hard nofile 65535
soft nproc 32000
hard nproc 32000 -
yum源更换和添加
-
更换yum 源为阿里源,请执行以下命令
cd /etc/yum.repos.d
yum install -y wget (下载资源命令)
rename .repo .repo.bak *wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum install lrzsz
-
-
卸载CentOS自带的jdk
sudo rpm -qa|grep jdk 或 sudo rpm -qa|grep java
sudo rpm -e --nodeps xxx yyy zzz -
安装jdk
安装jdk命令:rpm -ivh jdk-8u151-linux-x64.rpm
jdk下载地址:jdk-8u151-linux-x64.rpm 配置环境变量
vi /etc/profile
## JAVA HOME
JAVA_HOME=/opt/modules/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin# source /etc/profile
-
设置将 /proc/sys/vm/swappiness 设置为 0 (修改swap空间的swappiness,降低对硬盘的缓存 )
(root用户)输入:echo "vm.swappiness=0" >> /etc/sysctl.conf )
-
集群时间同步
1)配置第一台PC的时间服务器
2)让其他的PC来同步PC1的时间
在第一台PC上进行设置:
查看目前系统使用的时区
$ date -R
Sun, 16 Oct 2016 23:35:08 -0700
如果得到的结果不是+0800,那么就需要修改时区
删除目前系统使用的时区文件
# rm -f /etc/localtime
创建软链接文件/etc/localtime指向/usr/share/zoneinfo/Asia/Shanghai
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# date -R 查看,此时时区已经是+0800
调整当前时间,与当前时间同步
# ntpdate cn.pool.ntp.org
使用ntpdate命令之前可以检查此软件的安装情况
# rpm -qa | grep ntp
ntpdate-4.2.4p8-3.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntp-4.2.4p8-3.el6.centos.x86_64
如果没有安装这个软件,可以使用yum安装
# yum -y install ntp
修改ntp的配置文件
# vi /etc/ntp.conf
修改1:去掉下面这行的#,将网段改为自己的网段:192.168.234.0
restrict 192.168.234.0 mask 255.255.255.0 nomodify notrap
修改2:注释掉以下几行内容
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
修改3:去掉如下两行前的#,如没有需要 自己添加
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
启动NTP服务
# service ntpd start(systemctl restart ntpd)
在启动电脑的时候自动启动
# chkconfig ntpd on(systemctl enable ntpd)
到另外两台PC(PC2 PC3)关闭ntpd进程(要先把时区改过来)
# service ntpd stop(systemctl stop ntpd.service)
# chkconfig ntpd off(systemctl disable ntpd.service)
# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# date -R 查看,此时时区已经是+0800同步第一台PC的时间(PC2 PC3)
格式:ntpdate 开启ntp服务的主机名
# ntpdate lodestone02.com设置计划任务,每十分钟同步一次时间(PC2 PC3)
# crontab -e
*/10 * * * * /usr/sbin/ntpdate lodestone02.com -
配置免密登录
配置主机之间的免密ssh登陆(每个节点都要配置、密钥自身也要拷贝)
假如 cdh01 要登陆 cdh02
在cdh01上操作:
首先生成密钥对,命令如下:ssh-keygen
(提示时,直接回车即可)
将生产的秘钥copy到mini2上,命令如下ssh-copy-id cdh02
如果出现 ssh-copy-id: command not found 需要执行该命令yum -y install openssh-clients
二、cdh安装
1.安装mysql(需要root权限)并创建CDH相关的表【只需要在 cdh01节点安装】
安装、启动mysql
1)卸载系统自带的mysql
$ rpm -qa | grep mysql
# rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64
2)安装mysql软件包
mysql mysql-server mysql-devel
# yum -y install mysql mysql-server mysql-devel
3)启动mysql
注意:mysql的进程名称是:mysqld
# service mysqld start
# chkconfig mysqld on
====
cent7:
# yum install mariadb-server -y
# systemctl start mariadb.service
# systemctl enable mariadb.service
# mysql
4)设置密码
第一种方式(在linux命令行模式下):
mysqladmin -u root password 'xxx'
第二种方式(进入mysql之后设置):
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('xxx')
===CENT7
# mysql_secure_installation
5)输入密码登陆mysql
# mysql -uroot -p
Enter password:
6)给root用户添加权限
第一步:添加权限
grant all privileges on *.* to 'root'@'nicole02.com.cn' identified by 'root'; //linux
grant all privileges on *.* to 'root'@'192.168.37.1' identified by 'root'; //windows
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; //hdfs集群导入导出需要换为%
all privileges:添加所有权限
第一个*:所有数据库
第二个*:所有表
第一个'root':代表root用户
'nicole02.com.cn':代表主机
第二个'root':代表mysql的root用户设置的密码
第二步:刷新权限
flush privileges;
- 查看CentOS自带mysql是否已安装。
输入:sudo yum list installed | grep mysql
- 若有自带安装的mysql,如何卸载CentOS系统自带mysql数据库?
输入:sudo yum -y remove mysql-libs.x86_64
,若有多个依赖文件则依次卸载。
当结果显示为Complete!即卸载完毕。 - 使用离线的RPM包安装mysql
-
解压安装包
tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
-
安装顺序
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.20-1.el7.x86_64.rpm -
启动Mysql服务
systemctl start mysqld.service
-
修改管理员密码
安装好mysql的初始密码,需要进行重置,进入msyql将密码修改为你自己的,我这里将密码修改成rootgrep 'temporary password' /var/log/mysqld.log
如果修改密码过于简单就会报错Your password does not satisfy the current policy requirements
做如下修改mysql -uroot
mysql>use mysql;
mysql>set global validate_password_policy=0;
mysql>set global validate_password_length=1;
mysql>set password for 'root'@'%'=password('root');
mysql> flush privileges; -
修改mysql的访问权限
输入:mysql -uroot -proot
mysql> grant all privileges on . to 'root'@'%' identified by 'root';
mysql> flush privileges; -
创建表cdh相关默认库(也可以后创建)
输入命令;mysql -uroot -proot
进入mysql,执行以下sql建库语句mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database reports DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database navigatoraudit DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database navigatormetadata DEFAULT CHARSET utf8 COLLATE utf8_general_ci;mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
-
2.在主节点【cdh01】Cloudera Manager Server ,以下方式随便选择一种【建议选择离线安装】
-
在线安装sudo yum install cloudera-manager-daemons cloudera-manager-server
-
离线安装
资源下载地址:https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/
上传三个server的资源包到mini1节点上
cloudera-manager-server-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
cloudera-manager-server-db-2-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm安装
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
yum install -y postgresql-server(我这里是安装server-db的时候缺少这个依赖然后用yum安装的)
rpm -ivh cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-db-2-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
3. 拷贝mysql的连接驱动【mysql-connector-java-5.1.40.jar】到该目录下 /usr/share/cmf/lib(有的是:/opt/cloudera/cm/lib 或者是:/opt/cm-5.8.2/share/cmf/lib/)
4. 在主节点【cdh01】初始化CM5的数据库
在命令里scm_prepare_database.sh后面的参数分别是:数据库类型 数据库名称(可以随便起一个名称) 数据库主机名 数据库用户名 密码 --scm-host 主节点机名 scm scm scm
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm -h hadoop01 -u root -p 123456 --scm-host hadoop01 scm scm scm
5. 上传CHD5大数据服务组件资源包
下载地址:http://archive.cloudera.com/cdh5/parcels/latest/
cd /opt/cloudera/parcel-repo
上传:CDH-5.11.0-1.cdh5.11.0.p0.34-el7.parcel和CDH-5.11.0-1.cdh5.11.0.p0.34-el7.parcel.sha以及manifest.json 这个目录下 /opt/cloudera/parcel-repo
使用 chmod -R guo+wr xxx 给上述三个文件配置可写可读的权限
6. 主节点【cdh01】上启动Cloudera Manager Server
systemctl start cloudera-scm-server
7. 使用netstat-nltp
命令查看【cdh01】端口7180 是否启动成功,如果出现这个端口可以使用浏览器访问http://cdh01:7180 (windows下hosts做主机映射)
8. 在节点【cdh01,cdh02,cdh03,cdh04,cdh05】Cloudera Manager agent ,以下方式随便选择一种【建议选择离线安装】
-
在线安装
sudo yum install cloudera-manager-agent cloudera-manager-daemons
-
离线安装
上传两个server的资源包到mini1节点上
资源下载地址:https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/
cloudera-manager-agent-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm安装顺序
rpm -ivh cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-5.11.0-1.cm5110.p0.101.el7.x86_64.rpm
9. 修改agent所在的节点【cdh01,cdh02,cdh03,cdh04,cdh05】配置文件config.ini内容
sudo vi /etc/cloudera-scm-agent/config.ini
server_host=cdh01 (这里我是以cdh01作为server节点)
10. 启动Cloudera Manager
在从节点【cdh01,cdh02,cdh03,cdh04,cdh05】上启动Cloudera Manager Agent
sudo service cloudera-scm-agent start
centOS7:
/bin/systemctl restart cloudera-scm-agent.service
三、Clouder Manager Server和agent 安装过程异常情况处理
-
已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 7.1 (Final)”且版本为“2.6.32-279.el7.x86_64”的 Kernel 已将 enabled 设置为“[always] never”,并将 defrag 设置为“[always] never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会设置它
解决方案:echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /etc/rc.local -
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
解决方案:echo 0 > /proc/sys/vm/swappiness
sysctl vm/swappiness
echo 'vm.swappiness = 0'>/etc/sysctl.conf
sysctl -p -
异常3
pstree: 未找到命令
解决方案yum install -y psmisc
-
找不到jdk
输入:sudo vi /etc/sudoers ,在sudoers最后面添加以下内容
Defaults env_keep+=JAVA_HOME
输入:sudo vi /etc/default/bigtop-utils 在 bigtop-utils 文件中添加以下内容
export JAVA_HOME=/usr/java/latest
然后执行以下命令
source /etc/default/bigtop-utilssource /etc/default/bigtop-utils
- CM+CDH安装大数据的过程中出现主机运行状态不良情况的解决
https://blog.csdn.net/u010766519/article/details/90633887
删除agent目录下面的cm_guid文件,并重启失败节点的agent服务恢复。
cm_guid文件的内容大概是uuid,用于唯一标示agent隶属于哪一个server。
如图cd到每台主机的目录/var/lib/cloudera-scm-agent下,把cm_guid文件 删除。然后重启代理服务节点
命令: service cloudera-scm-agent restart
如果出现agent主机不良状况Error, CM server guid updated, expected 85587073-270d-43d9-a44a-e213d9f7e45b, received 4c1402a5-8364-4598-a382-0c760710e897
尝试运行以下命令
rm -rf /var/lib/cloudera-scm-agent/cm_guid
之后重启agent
service cloudera-scm-agent restart
四、Cloudera Manager首次启动
1. 登录Cloudera Manager的管理界面
cdh01:7180
账号:admin
密码:admin
登录界面
2. 用户许可条件
用户许可
3.选择部署版本
部署版本
4.为集群安装指定主机
选择主机
5. 群集安装
主机检查没有问题再进行下一步
pacel.png
cdh分配激活.png
主机检查.png
6. 安装Cloudera Management Server服务
cmserver1.png
cmserver2.png
cmserver3.png