https://blog.csdn.net/qq_37667074/article/details/78731529
1、下载文件
1.1 下载jdk
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载jdk1.8
下载cdh
- Cloudera Manager下载地址:
http://archive.cloudera.com/cm5/cm/5/
cloudera-manager-centos7-cm5.11.0_x86_64.tar.gz - CDH安装包(下载5.11.2版本)
http://archive.cloudera.com/cdh5/parcels/5.11.2/
CDH-5.11.2-1.cdh5.11.2.p0.4-el7.parcel
CDH-5.11.2-1.cdh5.11.2.p0.4-el7.parcel.sha1
manifest.json
下载mysql
mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
mysql-connector-java-5.1.44-bin.jar
https://dev.mysql.com/downloads/file/?id=476936
点击下载
2、Centos7安装
- 用户名/密码
root/**** root用户
*/**** 普通用户 主机ip
master 192.168.10.101
slave1 192.168.10.102
slave2 192.168.10.103配置/etc/hostname
分别是maser和slave1和slave2- 3台都配置/etc/hosts
加入:
192.168.111 master
192.168.121 slave1
192.168.131 slave2
注:安装过程都使用root用户
CDH 安装在/opt。
CDH在var目录会放文件,要预留空间
数据保存在/data
3、配置ssh无密码登录
1.查看是否安装openssh和rsync
rpm -qa | grep openssh
rpm -qa | grep rsync
2. 3台都运行
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
(-t dsa:表示使用密钥的加密类型,可以为'rsa'和'dsa')
3.配置authorized文件
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这一步,把本机的密钥写入authorized_keys文件
然后要将其他2台的密钥写入本机的authorized_keys文件
4. 各个节点都相互配置
master运行
scp ~/.ssh/id_dsa.pub root@slave1:~/.ssh/ authorized_keys_from_master
scp ~/.ssh/id_dsa.pub root@slave2:~/.ssh/ authorized_keys_from_master
slave1 运行
cat .ssh/authorized_keys_from_master >> ~/.ssh/authorized_keys
slave2 运行
cat .ssh/authorized_keys_from_master >> ~/.ssh/authorized_keys
slave1运行
scp ~/.ssh/id_dsa.pub root@master:~/.ssh/authorized_keys_from_slave1
scp ~/.ssh/id_dsa.pub root@slave2:~/.ssh/authorized_keys_from_slave1
master运行
cat .ssh/authorized_keys_from_slave1 >> ~/.ssh/authorized_keys
slave2 运行
cat .ssh/authorized_keys_from_slave1 >> ~/.ssh/authorized_keys
slave2运行
scp ~/.ssh/id_dsa.pub root@master:~/.ssh/authorized_keys_from_slave2
scp ~/.ssh/id_dsa.pub root@slave1:~/.ssh/authorized_keys_from_slave2
master运行
cat .ssh/authorized_keys_from_slave2 >> ~/.ssh/authorized_keys
slave2 运行
cat .ssh/authorized_keys_from_slave2 >> ~/.ssh/authorized_keys
最后3台的authorized_keys文件,内容都有3个key
测试SSH无密码登陆
在任意一台上,ssh slave1 都可以无密码登陆
4、同步各时间节点
1 将3台服务器时间同步,若hbase各节点时间差距过大会报错(默认30秒)
关闭3台的防火墙(centos6方法)
service iptables stop
chkconfig iptables off 重启后也生效
重启防火墙 (centos7方法)
firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
配置时间同步
参考这篇文章
https://www.cnblogs.com/Csir/p/6912527.html
5、安装JDK
1 检查并写在openjdk
检查命令:java -version 或 rpm -qa | grep java
卸载命令:rpm –e --nodeps(忽略依赖) 安装包名
或yum -y remove 安装包名
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
2 解压安装
Jdk版本:jdk-7u80-linux-x64.tar.gz
解压到/usr/local :
cd /usr/local;
tar –zxvf jdk-7u80-linux-x64.tar.gz
3 配置环境变量
3台都编辑/etc/profile文件:vim /etc/profile
加入
set java environment
export JAVA_HOME=/usr/local/jdk1.8.0_80
export LASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使配置生效:source /etc/profile
6、安装mysql
mysql安装在slave2
1、检查是否存在mysql库文件
检查命令:rpm –qa | grep mysql
若存在则卸载:rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
2 检查是否存在mysql用户和组
检查命令:cat /etc/group | grep mysql;
cat /etc/passwd | grep mysql
若不存在则创建:groupadd mysql;
useradd –r –g mysql mysql
(-r参数表示mysql用户是系统用户,不可用于登录系统)
3 创建数据、日志存储目录
命令:mkdir -p /data/mysql/data; mkdir /var/lib/mysql/log
更改所属用户:
chown –R mysql:mysql /data/mysql
chown –R mysql:mysql /usr/local/mysql
4 解压并初始化
解压安装包:
/usr/local目录
tar –zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
改目录名
mv mysql-5.6.36-linux-glibc2.5-x86_64 mysql
初始化参数:
到mysql目录
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
复制配置文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
修改
vi /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
vi /etc/my.cnf
basedir =/usr/local/mysql
datadir =/data/mysql/data
character_set_server=utf8
在usr/local/mysql/script目录运行
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
5 添加环境变量
编辑文件:vim /etc/profile
export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/mysql/bin:$PATH
6 配置mysql自动启动
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
设置在运行级别为3和5时mysql自动启动:
chkconfig --level 35 mysql on
7 启动mysql
命令:bin/mysqld_safe --user=mysql &
登录mysql
bin/mysql --user=root -p
设置root密码
set password=password('anjian123');
允许root在任何主机登录:grant all privileges on . to 'root'@'%' identified by 'anjian123' with grant option;
grant all privileges on . to 'root'@'master' identified by 'anjian123' with grant option;
刷新权限表:flush privileges;
8 创建以下数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
9 报错处理
mysql报错
https://blog.csdn.net/gaojing2240/article/details/77336287
还有可能是防火墙未关闭导致的,centos7 防火墙
systemctl stop firewalld.service
[root@slave2 usr]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service
.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service
.
[root@slave2 usr]# systemctl stop firewalld.service
[root@slave2 usr]# systemctl list-unit-files|grep firewalld.service
关于防火墙,参考https://www.linuxidc.com/Linux/2016-12/138979.htm
7、安装CDH
1、安装Cloudera Manager Server 和Agent
主节点解压安装
cloudera manager的目录默认位置在/opt下,解压:tar xzvf cloudera-manager*.tar.gz将解压后的cm-5.11.0和cloudera目录放到/opt目录下。
复制mysql-connector-java-5.1.44-bin.jar到目录/usr/share/java和/opt/cm-5.11.0/share/cmf/lib/
并改名成mysql-connector-java.jar
2 创建用户cloudera-scm
在所有节点上执行
useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
3 agent配置
主节点,修改/opt/cm-5.11.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。
Hostname of the CM server.
server_host=master
同步Agent到其他所有节点:
scp -r /opt/cm-5.11.0 root@slave1:/opt/
scp -r /opt/cm-5.11.0 root@slave2:/opt/
4 在主节点初始化CM5数据库
运行
/opt/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql cm -h slave2 -uroot -panjian123 --scm-host master scm scm scm
-h后是mysql的主机名
--scm-host 后是SCM server的主机名(主节点)
如果有报错,一般是msyql的权限设置没设好,root不能远程登录
还碰到java_home not found的情况
需要设置java_home,在下面的文件内都加入:
export JAVAH_HOME=/usr/local/jdk1.8.0_80
/opt/cm-5.11.0/share/cmf/schema
/scm_database_functions.sh
/opt/cm-5.11.0/etc/init.d
cloudera-scm-agent cloudera-scm-server
注意拷贝jdbc到制定目录
5 准备Parcels,用以安装CDH5
将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中
相关的文件如下:
CDH-5.11.2-1.cdh5.11.2.p0.4-el7.parcel
CDH-5.11.2-1.cdh5.11.2.p0.4-el7.parcel.sha1
manifest.json
最后将CDH-5.11.2-1.cdh5.11.2.p0.4-el7.parcel.sha1,重命名为CDH-5.11.2-1.cdh5.11.2.p0.4-el7.parcel.sha
6 启动脚本
主节点:通过/opt/cm-5.11.0/etc/init.d/cloudera-scm-server start启动服务端。
所有节点(包括主节点):通过/opt/cm-5.11.0/etc/init.d/cloudera-scm-agent start启动Agent服务
注:
停止可以用/init.d/cloudera-scm-server stop
启动成功后,可以用ps –ef|grep cloudera看到这2个进程
cloudera-scm-agent 的log如果报错:
[04/Sep/2017 16:29:38 +0000] 2983 MainThread agent ERROR Heartbeating to master:7182 failed.
一般是主节点防火墙没关闭
7、安装CDH
登录如下网址
http://192.168.10.101:7180/cmf/login
用户名和密码都是admin
选择免费版本
输入主机,master,slave1,slave2,点搜索
出现下面的情况,有的是当前受管为否的,说明有问题
是由于在master节点,启动过agent,然后scp至其他salve节点,agent启动后会有uid生成,scp至各个节点后,各个节点的uid就相同了,所以导致上面的情况。
解决方案:
删除/opt/cm-5.1.3/lib/cloudera-scm-agent/目录下的所有文件。
清空主节点CM数据库,重新初始化数据库,重新安装
如果所有机器都处于受管状态,选中三台主句,就可以进行继续安装了
接下来选中Parcel安装,点击继续
点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约10多分钟吧,取决于内网网速。
接下来检查安装环境
接下来是服务器检查,可能会遇到以下问题:
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
通过echo 0 > /proc/sys/vm/swappiness即可解决。
按照提示的方法进行处理,重新检查数据
选中安装的服务
配置环境
数据库设置
集群检查
检查过程中,提示java_home问题,同样如上面的处理
/opt/cloudera/parcels/CDH-5.11.2-1.cdh5.11.2.p0.4/bin/hdfs
增加如下
export JAVA_HOME=/usr/local/jdk1.8.0_171
如果namenode初始化后有问题,重新检查安装会提示目录下有数据,要清除,按照提示删除目录下的文件。
最后访问安装后的集群
错误:
pstree: command not found
yum -y install psmisc
碰到的localhost.admin 的问题
https://blog.csdn.net/shirdrn/article/details/6562292
报错java_home 找不到的信息
/opt/cloudera/parcels/CDH-5.11.2-1.cdh5.11.2.p0.4/bin/hdfs
增加如下
export JAVA_HOME=/usr/local/jdk1.8.0_171