CDH安装

1、检查相关依赖

yum -y install ntp python-lxml httpd mod_ssl cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi

yum install psmisc -y 

确认系统时区

2、启动各种相关服务并加到开机启动服务中

ntpd服务

service ntpd start
service ntpd stop
chkconfig ntpd on

httpd服务

service httpd start
chkconfig httpd on

启动httpd报警,解决报警【Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain name, using 192.168.206.131 for ServerName】

vim /etc/httpd/conf/httpd.conf 
#注释 ServerName www.example.com:80
#添加 ServerName localhost:80
service httpd restart

3、配置ip映射

vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.206.131 cdh01

4、在mysql中添加以下库,并授予远程登录权限

创建这些库的原因是是:cm管理的cdh版hadoop,各个组件是由【各自组件名为用户名】的【用户】管理的。没有这些库,在安装chd的时候无法通过数据库的验证。

eg.

hive,是由hive这个用户管理的,hive相关元数据会写到mysql中对于的hive库中

hue,是由hue这个用户管理的,hue相关的元数据会写到mysql对应的hue库中。

sql语句:

create database hive default character set utf8;
create user 'hive'@'%' identified by '1234';
grant all privileges on hive.* to hive@'%' identified by '1234';
flush privileges;

create database hue default character set utf8;
create user 'hue'@'%' identified by '1234';
grant all privileges on hue.* to 'hue'@'%'identified by '1234';
flush privileges;

create database oozie default character set utf8;
create user 'oozie'@'%' identified by '1234';
grant all privileges on oozie.* to 'oozie'@'%'identified by '1234';
flush privileges;

create database sentry default character set utf8;
create user 'sentry'@'%' identified by '1234';
grant all privileges on sentry.* to 'sentry'@'%'identified by '1234';
flush privileges;

create database nav_as default character set utf8;
create user 'nav_as'@'%' identified by '1234';
grant all privileges on nav_as.* to 'nav_as'@'%'identified by '1234';
flush privileges;


create database nav_ms default character set utf8;
create user 'nav_ms'@'%' identified by '1234';
grant all privileges on nav_ms.* to 'nav_ms'@'%'identified by '1234';
flush privileges;

create database cmf default character set utf8;
create user 'cmf'@'%' identified by '1234';
grant all privileges on cmf.* to 'cmf'@'%'identified by '1234';
flush privileges;

create database am default character set utf8;
create user 'am'@'%' identified by '1234';
grant all privileges on am.* to 'am'@'%'identified by '1234';
flush privileges;

5、正式开始安装cm(使用root用户安装)

将在cdh安装文件和cm安装tar包传到虚拟机的系统中

6、创建cm目录

mkdir -p /opt/cloudera-manager

7、解压cm的tar包

cd /opt/cloudera-manager
tar -zxvf /usr/local/cdh/cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C ./
#在/opt/cloudera-manager生成两个文件夹:

8、修改配置文件中主节点hostname

vim /opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-agent/config.ini
#将server_host=localhost修改为server_host=cdh01

修改完毕后将cloudera-manager分发给其他节点

[root@cdh01 opt]# scp -r /opt/cloudera-manager/ cdh02:/opt/

[root@cdh01 opt]# scp -r /opt/cloudera-manager/ cdh03:/opt/

9、在节点上添加账号:cloudera-scm (所有节点)

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

run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

 --system 创建一个系统账户

         --home 指定用户登入时的主目录,替换系统默认值/home/

         --no-create-home 不要创建用户的主目录

         --shell 用户的登录 shell 名

         --comment 用户的描述信息

注:Cloudera Manager默认用户为cloudera-scm,创建具有此名称的用户是最简单的方法。 安装完成后,将自动使用此用户。

10、创建cdh实体文件存放目录并修改属主为cloudera-scm

mkdir -p /opt/cloudera/parcels   (所有节点)
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
#ps.这个目录就是安装好后的cdh实体文件的目录

11、创建cdh安装包文件路径,并将安装包复制到这个文件下

#创建目录
mkdir -p /opt/cloudera/parcel-repo (所有节点)

#移动安装包到该目录下 (主节点移动后把东西分发给其他节点)
mv /usr/local/cdh/* /opt/cloudera/parcel-repo
scp /opt/cloudera/parcel-repo/* cdh02:/opt/cloudera/parcel-repo/
scp /opt/cloudera/parcel-repo/* cdh03:/opt/cloudera/parcel-repo/
#更改该目录及文件的属主
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo (所有节点)

#ps.这个目录是安装包的目录,即cm在安装cdh版hadoop时,会从这个目录读取安装文件进行解压安装,后续会再提到这个目录

12、创建lib文件目录和log文件目录(很多,这些目录要么在安装时候用到,要么在运行时用到,是根据多次报错信息收集起来的) (所有节点)

mkdir -p /var/lib/cloudera-service-monitor
mkdir -p /var/lib/cloudera-host-monitor
mkdir -p /var/lib/cloudera-scm-eventserver
mkdir -p /var/lib/cloudera-scm-navigator
mkdir -p /var/lib/cloudera-scm-headlamp
mkdir -p /var/lib/cloudera-scm-firehose
mkdir -p /var/lib/cloudera-scm-alertpublisher
mkdir -p /var/log/cloudera-service-monitor
mkdir -p /var/log/cloudera-host-monitor
mkdir -p /var/log/cloudera-scm-eventserver
mkdir -p /var/log/cloudera-scm-navigator
mkdir -p /var/log/cloudera-scm-headlamp
mkdir -p /var/log/cloudera-scm-firehose
mkdir -p /var/log/cloudera-scm-alertpublisher
mkdir -p /var/lib/cloudera-scm-server
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-eventserver
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-navigator
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-headlamp
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-firehose
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-alertpublisher
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-service-monitor
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-host-monitor
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-eventserver
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-navigator
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-headlamp
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-firehose
chown -R cloudera-scm:cloudera-scm /var/log/cloudera-scm-alertpublisher

13、配置mysql数据库驱动包

版本号删了

mkdir /usr/share/java
mv /usr/local/mysql-connector-java-5.1.37.jar /usr/share/java/mysql-connector-java.jar

注意

安装jdk的方法:把jdk软连接到/usr/java/default首先查看是否有/usr/java目录,没有的话新建此目录:mkdir /usr/java。然后添加软连接到/usr/java/default,命令如下:ln -s /usr/local/jdk1.8.0_91 /usr/java/default

14、初始化数据库用户

/opt/cloudera-manager/cm-5.16.2/share/cmf/schema/scm_prepare_database.sh mysql -hcdh01 --scm-host cdh01 cmf cmf 1234

以下信息则表示初始化成功(注意-h后面跟的是节点的hostname 3个cmf是mysql里面的库,用户,密码,前面已经创建了)

15、启动server

#启动cm server
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-server start
#查看启动服务日志
tail -f /opt/cloudera-manager/cm-5.16.2/log/cloudera-scm-server/cloudera-scm-server.log

看到日志里启动了7180端口,就可以确定server启动完成了,可以启动agent

失败了 再来一次

16、启动agent(所有节点)

#启动cm agent
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent start 
#查看启动agent日志
tail -f tail -f /opt/cloudera-manager/cm-5.16.2/log/cloudera-scm-agent/cloudera-scm-agent.log
#查看状态
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent status

17、通过web端访问cm安装cdh

默认的用户名:admin 密码:admin

地址:192.168.206.131:7180

18、安装版本选择免费

19、感谢! 继续下一步

20、选择安装节点(正式开始干活…),可以看到两个页签

第一个页签是搜索节点 — 【新主机】

第二个页签是已经检测到的节点 — 【当前管理的主机】

这个检测到的节点就是检测到我们起anget的节点,所以直接选择【当前管理的主机】就可以看到我们的cdh01,cdh02,cdh03 勾上,点继续

del: 单节点就是这样,如果多节点,这里根据需要选择安装的节点就好了

21、到了这里就可以看到下载并放到安装包目录的cdh版本了,CDH5.16.2版本

22、解释一下前面创建的文件夹

上一步的截图中看到【更多选项】的页签,打开它就可以看到我们之前为什么要按照那些路径创建目录了,如下:

我们不用去改,保持默认就好,

在前面的【】创建了/opt/cloudera/parcels这个目录

这个目录是用来存储cdh解压完运行时用到的文件目录

在前面的【】创建了/opt/cloudera/parcel-repo这个目录

这个目录是用来存储cdh安装包的路径

23、这里接着上两步点继续后的页面,这一步就算是开始分发文件并开始解压了

* 可以看到,直接显示下载100%,是因为我们是提前下载好离线安装的,

* 分配的意思就是将安装文件分发到安装的节点上,这次只有一个节点

* 解压和激活都是各个节点自己接收到安装文件后干的事啦,

* 这里稍等一会就可以继续了,如下

24、做安装前的最后检查吧

或者修改一下警告(我都改了)

关闭透明大页面(所有主机)

暂时关闭,命令行输入:

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

修改/etc/rc.local文件并添加以下两行,

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

设置swappiness(所有主机)

临时修改swappiness(重启后恢复)

sysctl -w vm.swappiness=10

永久生效(重启后不恢复)

echo "vm.swappiness=10" >> /etc/sysctl.conf

修改完毕后点击"重新运行"

完美!

25、到这步就是选择安装的组件了,可以先随便选,因为安装完后可以添加删除组件的

26、资源配置

这个页面是节点资源方面的配置,多个节点的话需要考虑节点资源平衡,哪些组件装那个节点,哪些组件最好装在同一个节点性能好都是需要考虑的,这一步也不是装了就不能改的,也可以通过添加删除组件来修改吧,但是cm删除服务是不会删除linux对于文件系统的文件的,所以能一次对就尽量一次对,免得linux越来越乱。重点:我是单节点,没得考虑…都装在一个节点上

注:给Cloudera Management Service选个节点

27、连接测试

这一步就是测试连接各个组件用户连通mysql

这些数据库,用户,我们在前面已经创建好了的

这里如果hue的连接出错,并且确认数据库用户密码没问题的话,就重新检查下前面的依赖:

执行:

yum -y install ntp python-lxml httpd mod_ssl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi

28、详细配置

这一步中都是集群中的很详细的配置了,如果明确知道怎么配置,或者哪些文件想放哪里就可以在这里配,如果第一次安装,还是直接点继续保持默认的路径吧,等玩会了在配置这些。

29、最后的战斗

到了这步,嗯,开始了…然后祈祷不要报错就好了,不然,前面一大堆得再来一遍..很酸爽,

总的来说,有问题大部分是权限的问题,就是前面创建各种日志目录的那一步。

然而,我很不幸!!!

查看/opt/cloudera-manager/cm-5.16.2/run/cloudera-scm-agent/process/ccdeploy_spark-conf_etcsparkconf.cloudera.spark_on_yarn_-1661598769368635245/logs/stderr.log

发现

解决办法:

明确了是jdk没有装好,为什么没装好,因为我的是使用tar.gz的jdk包安装的,没有往/usr/java中添加软链接,而这里默认是去/usr/java/default中找环境变量,才会报找不到java_home。

安装jdk的方法:把jdk软连接到/usr/java/default首先查看是否有/usr/java目录,没有的话新建此目录:mkdir /usr/java。然后添加软连接到/usr/java/default,命令如下:ln -s /usr/local/jdk1.8.0_91 /usr/java/default

为什么要添加软连接到/usr/java/default?这是因为有些软件,不会去找环境变量的java,而是找/usr/java下的,比如说cloudera manager在部署最后的spark时,一直报“上的客户端配置 (id=3) 已使用 1 退出,而预期值为 0”这个错误,其中一个原因就是访问java访问不到,参考:cloudera manager报错“客户端配置 (id=3) 已使用 1 退出,而预期值为 0”

解决完毕后 点击“Resume” 重来一次

30、完事

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值