说明有些步骤看自己的情况而定!
3.1.2 Ip 修改
这里要使用固定IP,而centOS 7已经没有setup命令,所以图形界面的设置已经没有了,这里只能修改配置文件,而且配置文件的名称还不固定,每个人的都可能不一样,这里我说一下位置,IP配置文件的位置:cd /etc/sysconfig/network-scripts/
转存失败重新上传取消
Vi ifcfg-ens33
我们需要先修改BOOTPROTO的参数为static,然后创建两个新参数IPADDR和NETMASK。
转存失败重新上传取消重启 service network restart
1:vi /etc/hostname 按i修改主机名三台机器分别修改下名
第一台 hadoop1
后按最左上esc 后输入:wq 回车
如果不想重启再运行 hostname hadoop1
第二第三台分别按照上面进行设定
二:每台机器上执行
vi /etc/sysconfig/network 按i 添加下面主机名后:wq 回车保存
NETWORKING=yes
HOSTNAME=hadoop1不同的主机不同的名称
三台都执行 service network restart
3.1.4 修改主机名与ip映射
三台机器都执行
vi /etc/hosts 按i 添加下面后:wq 回车保存
第一台机器Ip地址
192.168.152.10
第三天机器ip地址 hadoop3
tip:所有的机器
systemctl stop firewalld.service && systemctl disable firewalld.service
关闭selinux
vi /etc/selinux/config
SELINUX=disabled
重启或setenforce 0
3.1.6 ssh免密码登录
(1)机器hadoop1 上
第一步
ssh-keygen -t rsa (多次回车(Enter)即可)
第二步
chmod 700 ~/.ssh/
ssh-copy-id root@hadoop1
ssh-copy-id root@hadoop3
ssh-copy-id root@hadoop2
要输入下密码
(2)在机器hadoop2 上
第一步
ssh-keygen -t rsa (多次回车(Enter)即可)
第二步
chmod 700 ~/.ssh/
ssh-copy-id root@hadoop1
ssh-copy-id root@hadoop3
ssh-copy-id root@hadoop2
(3)在机器hadoop3 上
第一步
ssh-keygen -t rsa (多次回车(Enter)即可)
第二步
chmod 700 ~/.ssh/
才对~
ssh-copy-id root@hadoop1
ssh-copy-id root@hadoop3
ssh-copy-id root@hadoop2
验证免密钥登录 ,在hadoop1节点上执行命令如下
ssh hadoop2
、
3.1.7 安装配置ntp
cloudera要求集群中所有机器时间不能偏差过大,所以需要时间同步,因为机器无法联网,所以只能离线安装:
在每台机器上:执行
先查看机器有没有
rpm –qa |grep ntp
如果有可以不用安装
cd /opt
rpm -ivh autogen-libopts-5.18-5.el7.x86_64.rpm
rpm -ivh ntpdate-4.2.6p5-25.el7.centos.x86_64.rpm
rpm -ivh ntp-4.2.6p5-25.el7.centos.x86_64.rpm
本例中让每个hadoop1和hadoop2,hadoop3同步时间,将hadoop1作为ntpserver,在hadoop1中:
修改配置文件ntp.conf : 命令
:第一台机器修改ntp.conf
vi /etc/ntp.conf
在文件中添加如下内容(这里是152,需要根据你的子网自己修改)
restrict 192.168.152.0 mask 255.255.255.0 nomodify notrap
注释一下四行内容(三台0000000000
#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org
#server 2.centos.pool.ntp.org
#server 3.centos.pool.ntp.org
去掉以下内容的注释,如果没有这两行,那就自己添加上下面的两行内容
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
三台机器配置以下内容,保证BIOS(主板)与系统时间同步
vi /etc/sysconfig/ntpd
添加一行内容 SYNC_HWLOCK=yes
没有用的都在前面加#号
保存退出,执行:
service ntpd start
在另外两机器上:vi /etc/ntp.conf
添加:该注释的注释掉(下图
server hadoop1
保存退出,执行:
service ntpd start
Hadoop1上的ntp server启动后要等5-10分钟才能可用,然后在每个hadoop2 hadoop3执行:
这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步\
在hadoop2 hadoop3 执行
ntpdate –u hadoop1
npdate -u hadoop1
输入这个
watch ntpq -p
查看是否和hadoop1同步
按 Ctrl +c 退出
启动ntpd的运行进程
其他两台机器与第一台服务器进行时钟同步(这里同步的ip是上面配置的服务器的ip地址service ntpd start
配置定时器,定时每分钟与时钟服务器进行同步
在hadoop2 hadoop3
crontab -e 然后加入以下内容
*/1 * * * * /usr/sbin/ntpdate -u hadoop1
三台机器设置ntpd开机启动
systemctl disable chronyd.service
rm -rf '/etc/systemd/system/multi-user.target.wants/chronyd.service'
systemctl enable ntpd.service 设置开机启动
三台机器都安装
rpm -qa |grep java
如果有其它版本的jdk先把其它的卸载掉
rpm -e -–nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64 java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64 java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
cd /opt
rpm -ivh jdk-8u162-linux-x64.rpm
、配置环境变量(分别在3台机器上执行)
echo " export JAVA_HOME=/usr/java/jdk1.8.0_162 " >> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
echo "export CLASSPATH=.:$JAVA_HOME/lib" >> /etc/profile
再执行
source /etc/profile
1.其他依赖
针对这个步骤,你可以看网上很多的博客都是将这个步骤放到了MySQL安装的后面,但是经过本人的测试,这一步还是放在前面比较好,因为后面安装的软件,但凡有依赖的,你在这里已经做好了,所以在这里操作安装依赖包,并且是所有节点都安装。
先检查又没有下面的包,如果有就不用安装了
查看
rpm -qa |grep 包名
rpm -ivh chkconfig-1.7.4-1.el7.x86_64.rpm
rpm -ivh bind-libs-9.9.4-61.el7.x86_64.rpm
rpm -rpm -ivh psmisc-22.20-15.el7.x86_64.rpm
rpm rpm -ivh net-tools-2.0-0.22.20131004git.el7.x86_64.rpm
rpm -ivh bind-utils-9.9.4-61.el7.x86_64.rpm
rpm -ivh snappy-1.1.0-3.el7.x86_64.rpm
rpm -ivh cyrus-sasl-gssapi-2.1.26-23.el7.x86_64.rpm
centos7自带的是mariadb,需要先卸载掉
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
MySQL jar包
。
一三台机器准备mysql的jar包:
mysql-connector-java.jar
mkdir -p /usr/share/java并拷贝到/usr/share/java/目录:
cp /opt/mysql-connector-java.jar /usr/share/java/
二 这个环节只需要在haadoop1节点上进行即可
cd /opt
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -s mysql-5.7.24-linux-glibc2.12-x86_64 mysql
cd /etc/
touch my.cnf
vi my.cnf 编辑
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port=3306
socket=/tmp/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
二 创建目录
mkdir -p /usr/local/mysql/data
四 创建用户及用户组
#增加用户组mysql:
groupadd mysql
#增加用户mysql,加入mysql用户组:
useradd -r -g mysql mysql
初始化mysql并启动mysql服务
cd /var/log/
touch mysqld.log
chmod –R 755 /var/log/mysqld.log
chown -R mysql:mysql /var/log/mysqld.log
cd /usr/local/mysql/bin
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
#注意:mysqld --initialize-insecure初始化后的mysql是没有密码的
3
#重新修改下各个目录的权限
4
chown -R root:root /usr/local/mysql/ #把安装目录的目录的权限所有者改为root
5
chown -R mysql:mysql /usr/local/mysql/data/ #把data目录的权限所有者改为mysql
启动
/usr/local/mysql/bin/mysqld_safe --user=mysql &
(7)修改密码
1
cd /usr/local/mysql/bin/
2
./mysql -u root -p ( cd /var/log/ cat mysqld.log |grep password查看密码)
进行重置密码
set password=password('123456');
35
flush privileges;
6
exit;
八、设置开机启动:
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
¥###########################################
vi /etc/profile
在最下面添加 export PATH=/usr/local/mysql/bin:$PATH
九、添加service启动服务命令
service mysqld start (开始) /stop(停止) /restart(重启)
mysql -uroot -p123456
use mysql;
mysql> update user set host='%' where user='root' and host='localhost'; //允许mysql远程访问
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql -uroot -p123456创建以下数据库:
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# Oozie
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#Hue
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database active DEFAULT CHARSET utf8 COLLATE utf8_general_ci
#授权root用户在主节点拥有所有数据库的访问权限
Use mysql;
grant all privileges on *.* to 'root'@'hadoop1' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'%' identified by 'scm' with grant option;
grant all privileges on *.* to 'root'@'%' identified by 'bsoft2019' with grant option;
grant all privileges on *.* to 'scm'@'%' identified by 'scm' with grant option;
flush privileges;
Hadoop1解压安装
cloudera manager的目录默认位置在/opt下,
cloudera-manager-centos7-cm5.12.0_x86_64.tar.gz
解压:
tar -xzvf cloudera-manager-centos7-cm5.12.0_x86_64.tar.gz
把包里mysql-connector-java.jar,放到cp mysql-connector-java.jar /opt/cm-5.12.0/share/cmf/lib/ 中。
在所有节点创建cloudera-scm用户:
useradd --system --home=/opt/cm-5.12.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
在主节点(hadoop1)初始化CM5的数据库:
/opt/cm-5.12.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop1 -uroot -p123456 --scm-host hadoop1 scm scm scm
说明:这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。-cdh1:数据库建立在cdh1主机上面,也就是主节点上面。-uroot:root身份运行mysql。-123456:mysql的root密码是***。--scm-host cdh1:CMS的主机,一般是和mysql安装的主机是在同一个主机上,最后三个参数是:数据库名,数据库用户名,数据库密码。-p后面是密码
表示成功
Agent配置
修改/opt/cm-5.12.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。
vi /opt/cm-5.12.0/etc/cloudera-scm-agent/config.ini
server_host = hadoop1
同步Agent到其他节点
scp -r /opt/cm-5.12.0/ root@hadoop2:/opt/
scp -r /opt/cm-5.12.0/ root@hadoop3:/opt/
准备Parcels,用以安装CDH5
将CHD5相关的Parcel包放到hadoop1主节点的/opt/cloudera/parcel-repo/目录中。
相关的文件如下:
CDH-5.12.0-1.cdh5.12.0.p0.29-el7.parcel
CDH-5.12.0-1.cdh5.120.p0.29-el7.parcel.sha
manifest.json
相关启动脚本
通过/opt/cm-5.12.0/etc/init.d/cloudera-scm-server start启动服务端。(hadoop1)
通过/opt/cm-5.12.0/etc/init.d/cloudera-scm-agent start启动Agent服务。(hadoop1,hadoop2,hadoop3三个节点都启动)
原因:因为系统是最小化安装,默认没有安装
解决:安装psmisc )(所有机器都要装)
rpm -ivh psmisc-22.20-15.el7.x86_64.rpm
/opt/cm-5.12.0/etc/init.d/cloudera-scm-server stop
/opt/cm-5.12.0/etc/init.d/cloudera-scm-agent stop
我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart
CDH5的安装配置
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),11.9、登陆
http://hadoop1:7180
默认用户密码都是admin
再运行下面
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
下面的页面选择自定义 勾选
下面默认即可
Hive的拷贝位置为:# cp /opt/cm-5.12.0/share/cmf/lib/mysql-connector-java.jar /opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12.0.p0.29/lib/hive/lib
删除 rm -r /etc/ld.so.cache
使其重新生成
[root@slave01 etc]# more /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/lib64/mysql
[root@slave01 etc]# ldconfig
[root@slave01 etc]#
下面如果有hive之外的 库 就填在mysql里创建的 amon这个 名字 后面再输入mysqld 的用户密码
最左边是选择hadoop1
下面针对安装失败的时候!!!
7.卸载cloudera manager
如果要卸载的话,记得要删掉下面的目录:
然后删除/var/lib/cloudera-scm-server-db/目录,不然下次安装可能不成功。
rm -f /opt/cm-5.12.0/etc/cloudera-scm-server/db.properties
rm -r /dfs/*