CM5.14.4离线安装及卸载(详细版本,含MYSQL卸载)

本文详细介绍了CM5.14.4在Linux服务器上的离线安装过程,包括环境检查、JDK和MySQL的安装,以及Cloudera Manager的配置和启动。同时,文章还提供了完整的CDH5卸载步骤和可能出现的问题解决方案,包括MYSQL的卸载方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

uname -a 查看服务器版本

Linux datanode1 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

选择对应的CDH 安装包
http://archive.cloudera.com/cm5/cm/5/
http://archive.cloudera.com/cdh5/parcels/5.14/

lsb_release -a 查看系统版本,选择对应的Cloudera Manager

LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.4.1708 (Core) 
Release:	7.4.1708
Codename:	Core

安装上传下载文件程序

yum -y install lrzsz

wget 是一个从网络上自动下载文件的自由工具
wget 资源链接

CM的安装:
1.网络配置(所有节点)
1.1修改hostname

vi /etc/sysconfig/network 
NETWORKING=yes 
HOSTNAME=sparkmaster

1.2. 修改 ip 与主机名的对应关系
vi /etc/hosts

10.10.0.126 node1
10.10.0.8 node2
10.10.0.127 node3

2. 设置 ssh 无密码登陆
在主节点上执行

1.ssh-keygen -t rsa

一路回车,生成无密码的密钥对。
将公钥添加到认证文件中:

2.cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

,并设置 authorized_keys 的访问权限:

chmod 600 ~/.ssh/authorized_keys

3.scp 文件到所有 datenode 节点:

4.scp ~/.ssh/authorized_keys root@nodexx:~/.ssh/

注意:这里需要将各节点之间的免密登录都进行配置,包括自己到自己的免密登录

2.2JDK 环境安装
#上传 jdk 安装包

jdk-8u65-linux-x64.tar.gz 

#解压安装包

tar zxvf jdk-8u65-linux-x64.tar.gz -C /opt

#配置环境变量 /etc/profile

export JAVA_HOME=/opt/jdk1.8.0_65 
export PATH=$PATH:$JAVA_HOME/bin 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

#刷新配置

source /etc/profile 

备注:
最好选择rpm软件包的安装方式好处有二。
第一:rpm安装的默认路径即是CDH安装时会去寻找jdk的路径,否则在CM的安装中会报错。
(如果用tar包手动的方式安装可以创建软连接 进入/usr/java目录[没有就手动创建之]:
ln -s你的jdk安装目录 /usr/java/default,运用此方法别忘记手动配置环境变量)
第二:rpm安装会自动创建环境变量。

2.3 安装mysql
a. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称)

1 [root@localhost ~]# rpm -qa | grep -i mysql
2 mysql-libs-5.1.66-2.el6_3.x86_64
3 [root@localhost ~]# yum -y remove mysql-libs*

b. 下载Linux对应的RPM包,如:CentOS6.4_64对应的RPM包,如下:

1 [root@localhost rpm]# ll
2 total 74364
3 -rw-r--r--. 1 root root 18442536 Dec 11 20:19 MySQL-client-5.6.15-1.el6.x86_64.rpm
4 -rw-r--r--. 1 root root  3340660 Dec 11 20:06 MySQL-devel-5.6.15-1.el6.x86_64.rpm
5 -rw-r--r--. 1 root root 54360600 Dec 11 20:03 MySQL-server-5.6.15-1.el6.x86_64.rpm

c. 安装MySQL

1 [root@localhost rpm]# rpm -ivh MySQL-server-5.6.15-1.el6.x86_64.rpm
2 [root@localhost rpm]# rpm -ivh MySQL-devel-5.6.15-1.el6.x86_64.rpm
3 [root@localhost rpm]# rpm -ivh MySQL-client-5.6.15-1.el6.x86_64.rpm

4 #修改配置文件位置

5 [root@localhost rpm]# cp /usr/share/mysql/my-default.cnf /etc/my.cnf

d. 初始化MySQL及设置密码

1 [root@localhost rpm]# /usr/bin/mysql_install_db
2 [root@localhost rpm]# service mysql start
3 [root@localhost rpm]# cat /root/.mysql_secret  #查看root账号密码
4 # The random password set for the root user at Wed Dec 11 23:32:50 2013 (local time): qKTaFZnl
5 [root@localhost ~]# mysql -uroot –pqKTaFZnl
6 mysql> SET PASSWORD = PASSWORD('123456');    #设置密码为123456
7 mysql> exit
8 [root@localhost ~]# mysql -uroot -p123456

e. 允许远程登陆

 1 mysql> use mysql;
 2 mysql> select host,user,password from user;
 3 +-----------------------+------+-------------------------------------------+
 4 | host                  | user | password                                  |
 5 +-----------------------+------+-------------------------------------------+
 6 | localhost             | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
 7 | localhost.localdomain | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |
 8 | 127.0.0.1             | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |
 9 | ::1                   | root | *1237E2CE819C427B0D8174456DD83C47480D37E8 |
10 +-----------------------+------+-------------------------------------------+
11  
12 mysql> update user set password=password('123456') where user='root';
13 mysql> update user set host='%' where user='root' and host='localhost';
14 mysql> flush privileges;
15 mysql> exit

f. 设置开机自启动

1 [root@localhost ~]# chkconfig mysql on
2 [root@localhost ~]# chkconfig --list | grep mysql
3 mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

g. MySQL的默认安装位置

1 /var/lib/mysql/               #数据库目录
2 /usr/share/mysql              #配置文件目录
3 /usr/bin                     #相关命令目录
4 /etc/init.d/mysql              #启动脚本

修改字符集和数据存储路径

配置/etc/my.cnf文件,修改数据存放路径、mysql.sock路径以及默认编码utf-8.

 1 [client]  
 2 password        = 123456  
 3 port            = 3306  
 4 default-character-set=utf8  
 5 [mysqld]  
 6 port            = 3306  
 7 character_set_server=utf8  
 8 character_set_client=utf8  
 9 collation-server=utf8_general_ci  
10 #(注意linux下mysql安装完后是默认:表名区分大小写,列名不区分大小写; 0:区分大小写,1:不区分大小写)  
11 lower_case_table_names=1  
12 #(设置最大连接数,默认为 151,MySQL服务器允许的最大连接数16384; )  
13 max_connections=1000  
14 [mysql]  
15 default-character-set = utf8  

5. 关闭防火墙和 SELinux
注意: 需要在所有的节点上执行,因为涉及到的端口太多了,
临时关闭防火墙是为了安装 起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙:

1. service iptables stop (临时关闭)   
2. chkconfig iptables off (重启后生效) 

关闭 SELINUX(实际安装过程中发现没有关闭也是可以的,
不知道会不会有问题,还需进 一步进行验证):

1. setenforce 0 (临时生效)   
2. 修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

四、 安装 CM Server 和 Agent
1. 主节点解压安装
cloudera manager 的目录默认位置在/opt 下,
解压:

1. tar xzvf cloudera-manager*.tar.gz 
2. 将解压后的 cm-5.1.3 和 cloudera 目录放到/opt 目录下。 

2. 为 Cloudera Manager 5建立数据库
首先需要去 MySql 的官网下载 JDBC 驱动,
http://dev.mysql.com/downloads/connector/j/,解压后,
找到 mysql-connector-java5.1.33-bin.jar,放到/opt/cm-5.1.3/share/cmf/lib/中。

在主节点初始化 CM5 的数据库:

1. /opt/cm-5.14.4/share/cmf/schema/scm_prepare_database.sh mysql cm hlocalhost -uroot -proot --scm-host localhost scm scm scm

3. Agent配置
修改/opt/cm-5.14.4/etc/cloudera-scm-agent/config.ini 中的 server_host 为主节点的主机 名。
同步 Agent 到其他节点

1. scp -r /opt/cm-5.14.4 root@namenode:/opt/ 

4. 在所有节点创建 cloudera-scm 用户

1. useradd --system --home=/opt/cm-5.14.4/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

5. 准备 Parcels,用以安装 CDH5
将 CHD5 相关的 Parcel 包放到主节点的/opt/cloudera/parcel-repo/目录中: 
CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel 
CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1 
manifest.json

最后将 CDH-5.15.1-1.cdh5.15.1.p0.4-xxx.parcel.sha1,
重命名为 CDH-5.15.1-1.cdh5.15.1.p0.4-xxx.parcel.sha,这点必须注意,
否则,系统会重新下载 CDH-5.15.1-1.cdh5.15.1.p0.4-xxx.parcel 文件。

6. 启动 CM Server Agent

/opt/cm-5.14.4/etc/init.d/cloudera-scm-server start 
/opt/cm-5.14.4/etc/init.d/cloudera-scm-agent start (所有Agent节点)

停止CM

/opt/cm-5.14.4/etc/init.d/cloudera-scm-server stop
/opt/cm-5.14.4/etc/init.d/cloudera-scm-agent stop

CDH5.X完全卸载步骤
#by tinson
2019-04-10

  1. 关闭集群中的所有服务。
    这个可以通过clouder manger 主页关闭集群。

  2. 卸载

    [root@uat1 ~]# /opt/cm-5.14.4/etc/init.d/cloudera-scm-agent stop
     Stopping cloudera-scm-agent:                               [  OK  ]
    

在当初安装时的server节点停止server服务

service cloudera-scm-server stop

[root@uat4 nameservice1]# /opt/cm-5.14.4/etc/init.d/cloudera-scm-stop stop

Stopping cloudera-scm-server:                              [  OK  ]
--------------------- 

查看相关进程,如果在CM界面中未完成服务的关闭,可以用以下命令来强行关闭相关进程
#关闭相关进程

ps -ef |grep cloudera
#ps -ef |grep cloudera |grep -v grep |awk '{print $2}' |xargs kill
for i in hdfs mapred cloudera-scm hbase hue zookeeper oozie hive impala flume; do ps -ef |grep ${i} |grep -v grep |awk '{print $2}'; done
ps -ef |grep cmf

#查看相关进程

for u in hdfs mapred cloudera-scm hbase hue zookeeper oozie hive impala flume; do echo $(ps -u $u -o pid=); done 

kill 掉相关进程

for u in hdfs mapred cloudera-scm hbase hue zookeeper oozie hive impala flume; do sudo kill $(ps -u $u -o pid=); done

删除CM相关的软件

#卸载cloudera-manager-server
yum remove cloudera-manager-daemons cloudera-manager-server  -y
#卸载cloudera-manager-agent
yum remove cloudera-manager-agent cloudera-manager-daemons  -y
#用匹配方式删除
yum remove 'cloudera-manager-*'
#清除缓存
yum clean all

建议在卸载CDH前,先备份或转移集群上的用户数据。以下命令应在集群中所有Agent主机执行;以下路径是集群的默认安装配置,如果有所修改,请按修改后的路径操作。

for data in data data1 data2 data3 data4 data5 data6 data7 data8 data9 data10 data11 data12 data13; do rm -rf /${data}/dfs /${data}/impala /${data}/yarn /${data}/kudu; done

rm -rf /var/run/hdfs-sockets
rm -rf /usr/lib/hue
rm -rf /usr/bin/hadoop* /usr/bin/zookeeper* /usr/bin/hbase* /usr/bin/hive* /usr/bin/hdfs /usr/bin/mapred /usr/bin/yarn /usr/bin/sqoop* /usr/bin/oozie /usr/bin/impala /usr/bin/spark*

rm -rf /etc/alternatives/hadoop* /etc/alternatives/flume-ng* /etc/alternatives/hbase* /etc/alternatives/hdfs /etc/alternatives/hive* /etc/alternatives/hue* /etc/alternatives/impala* /etc/alternatives/mahout* /etc/alternatives/mapred /etc/alternatives/oozie /etc/alternatives/pig* /etc/alternatives/solr* /etc/alternatives/spark* /etc/alternatives/sqoop* /etc/alternatives/yarn /etc/alternatives/zookeeper*

rm -rf /etc/hadoop* /etc/zookeeper* /etc/hive* /etc/hue /etc/impala /etc/sqoop* /etc/oozie /etc/hbase* /etc/hcatalog /etc/spark /etc/solr

到此卸载完毕。

#MYSQL卸载
#查看当前安装mysql情况
rpm -qa|grep -i mysql

#查看mysql服务状态

service mysql status

#关闭mysql服务

service mysql stop

#查看mysql相关进程

ps -ef |grep mysql

#关闭相关进程

kill pid

#删除包命令:

yum remove -y mysql

#或者 rpm -e –nodeps 包名

#查找mysql的相关目录

find / -name mysql

#删除对应的mysql目录

rm -rf 目录

#手工删除/etc/my.cnf

rm -rf /etc/my.cnf

#检查机器是否安装mysql

rpm -qa|grep -i mysql

遇到的问题:

  1.rm: cannot remove `/var/run/cloudera-scm-agent/process': Device or resource busy

遇到这个问题,用reboot重启一下再删除即可。

2.通过Cloudera Manager添加Hive服务,在启动Hive的时候遇到错误:

 .org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver

这种情况,猜测是缺少jdbc驱动,于是添加jdbc驱动到相应的包下面。报的错中提示了lib路径,添加一下即可。
mysql-connector-java-5.1.36-bin.jar添加到hive的lib:

/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7p0.36/lib/hive/lib

3.遇到CDH安装启动失败时查看报错信息
很多情况是权限不够,使用:

chown cloudera-scm:cloudera-scm /opt/cloudera/ -R
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-agent/ -R

将cloudera manager的用户授权给/opt和日志目录:

4.mysql和jdk的安装不要放在root权限下的文件夹中

5.使用MR测试时:

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100

使用测试计算π 出现以下错误:

Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: 
user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
	at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:279)
	at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:260)
	at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:240)

问题分析与解决:

根据报错信息是hdfs文件的权限问题,命令进入集群执行的用户为root,而hdfs文件所有者为hdfs。

要么以用户hdfs执行命令,要么调整hdfs文件的权限,因为我只是使用hdfs文件的其中之一,暂时考虑:以hdfs用户执行命令。

a.在profile文件增加:

export HADOOP_USER_NAME=hdfs

b.将System.setProperty("HADOOP_USER_NAME”,“hdfs”);

    添加到代码的main方法首部,

    该语句的意思是修改代码的系统变量HADOOP_USER_NAME的内容为hdfs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值