论__CDH5躺过的坑

CDH5--史无前例的最详细安装教程

第一部分:准备工作

One

1.下载安装包,规划三台机器

Cloudera Manager 5.9

CDH5.9 主文件

CDH5.9 sha文件

manifest 文件

2.修改/etc/hosts 文件

192.168.6.3 hdp-01

192.168.6.4 hdp-02

192.168.6.5 hdp-03

临时修改主机名

hostname hdp-01

hostname hdp-02

hostname hdp-03

更改主机名

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=hdp-01

3.ssh 免密 登陆

ssh-keygen -t rsa

ssh-copy-id -i /root/.ssh/id_rsa.pub hdp-01

ssh-copy-id -i /root/.ssh/id_rsa.pub hdp-02

ssh-copy-id -i /root/.ssh/id_rsa.pub hdp-03

4.关闭防火墙

service iptables stop (临时关闭)

chkconfig iptables off (重启后生效)

关闭

SELINUXsetenforce 0临时生效,

另外修改修改

/etc/selinux/config 下的SELINUX=disabled,

重启机器

5.shell

在hdp-01机器root目录下,产生一个host文件,文件内容如下,主要将各节点的主机名维护起来

hdp-02

hdp-03

在hdp-01机器root目录下,产生一个scp.sh文件,文件内容如下,输入需要传送的源文件路径与目标机器的存放路径两个参数,路径都是绝对路径。

#!/bin/bash

cat host | while read host

do

{

scp -r $1 $host:$2

}&wait

done

6.jdk 安装

①都卸载自带jdk(三台都需要,版本可能不一样根据实际操作)

[root@hdp-03 ~]# rpm -qa|grep java

tzdata-java-2012j-1.el6.noarch

java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64

[root@hdp-03 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

[root@hdp-03 ~]# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch

[root@hdp-03 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64

[root@hdp-01 ~]# vim host

[root@lhdp-01 ~]# vim scp.sh

[root@hdp-01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

[root@lhdp-01 ~]# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch

[root@hdp-01 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64

②在hdp-01上上传jdk1.8,解压到/usr/local/下

并修改环境变量 vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_171

export PATH=$JAVA_HOME/bin:$PATH

③利用shell拷贝

sh scp.sh /usr/local/jdk1.8.0_171/ /usr/local/jdk1.8.0_171/

sh scp.sh /etc/profile /etc/

使环境变量生效(全执行)

source /etc/profile

echo "JAVA_HOME=/usr/local/jdk1.8.0_171" >> /etc/environment

7.配置yum源

rm -rf /etc/yum.repos.d/*

vi /etc/yum.repos.d/base.repo

[Base]

name=base

baseurl=file:///mnt/Server

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

挂载

mount /dev/cdrom /mnt

yum list 查看是否配置yum成功

8.安装mysql

yum -y install mysql-server

chkconfig mysqld on

service mysqld restart

mysql 登陆进去

create user 'CDH' identified by '123456';

必须设置远程可登陆

grant all privileges on *.* to CDH@'%' identified by '123456' with grant option;

flush privileges;

9.设置swap空间

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

sh scp.sh /etc/sysctl.conf /etc/

关闭大页面压缩

试过只设置defrag,但貌似个别节点还是会有警告,干脆全部设置,编辑

/etc/rc.local,末尾添加如下命令

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

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

同步到各个节点机器

sh scp.sh /etc/rc.local /etc/

然后重启reboot生效。

第二部分:安装CM

1、进入/opt/cdh目录,将CM解压到/opt目录下,不能解压到其他地方,因为cdh5的源会默认在

/opt/cloudera/parcel-repo寻找,而CM可以按照个人喜好安装

tar -zxvf cloudera-manager-el6-cm5.9.0_x86_64.tar.gz -C /opt/

mkdir -p /opt/program

mv /opt/cm-5.9.0/ /opt/program/

ln -s /opt/program/cm-5.9.0/ /opt/cm

2、将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel 和 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1移动到/opt/cloudera/parce1-repo,这样安装时CM就能直接找到了

mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 /opt/cloudera/parcel-repo/

3、将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1重命名为CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha(去掉结尾的1),非常重要。我试安装时,这点遗漏了,导致安装CDH的时候一直刷不出5.9版本,通过日志发现,没有manifest.json就会去下载,不能访问外网就报错了,但不影响安装CDH,还是mv一下吧。

mv manifest.json /opt/cloudera/parcel-repo/

cd /opt/cloudera/parcel-repo/

mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha

4、修改配置文件中的server_host,编辑/opt/cm/etc/cloudera-scm-agent/config.ini

server_host=hdp-01

将mysql的JDBC驱动放入CM的lib目录下,下载地址http://dev.mysql.com/downloads/connector/j/,gz和zip都无所谓,最终要的是里面的jar包。解压获得mysql-connector-java-5.1.5-bin.jar上传到集群。

mysql-connector-java-5.1.5-bin.jar

mv mysql-connector-java-5.1.5-bin.jar /opt/cm/share/cmf/lib/

5、为CM创建数据库

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

解决方案:

1、配置/etc/hosts文件如下:

127.0.0.1 localhost.hdp-01

192.168.160.132 hadoop3

192.168.160.130 hadoop1

192.168.160.131 hadoop2

注意:如果执行的时候报一下错误,可能是配置host的有问题,127.0.0.1 localhost.hdp-01 这个localhost不能少

create user 'CDH' identified by '123456';

必须设置远程可登陆

grant all privileges on *.* to CDH@'%' identified by '123456' with grant option;

flush privileges;

2、

需要修改mysql登录密码:

解决:

修改MySQL的root用户的密码以及打开远程连接

mysql>use mysql;

mysql>desc user;

mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "hadoop";

//为root添加远程连接的能力。

GRANT ALL PRIVILEGES ON *.* TO CDH@"%" IDENTIFIED BY "123456";

update user set Password = password('hadoop') where User='CDH';

select Host,User,Password from user where User='CDH';

flush privileges;

mysql>update user set Password = password('hadoop') where User='root';

mysql>select Host,User,Password from user where User='root';

mysql>flush privileges;

mysql>exit;

再次执行 成功

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

6、为每个节点创建cloudera-scm用户,均执行

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

7、接下来其实可以直接在hdp-01上启动服务安装了,但因为其它节点没有CM,最后还是通过远程的yum在线下载再安装,我这设置了内部网络,其它节点是访问不了外网的,所以拷贝CM到其它节点进行完全离线安装。拷贝CM到每个节点,在拷贝之前在其余节点执行

mkdir /opt/program

sh scp.sh /opt/program/cm-5.9.0/ /opt/program/cm-5.9.0/

ln -s /opt/program/cm-5.9.0/ /opt/cm (每台机 手动执行)

8、在hdp-01上启动CM的service服务

/opt/cm/etc/init.d/cloudera-scm-server start

/opt/cm/etc/init.d/cloudera-scm-agent start

service服务过程需要启动几分钟,这看机器性能,

如果用netstat -apn|grep 7180能够查看到端口占用,就可以用浏览器打开http://hdp-01:192.168.6.3:7180/进行访问,登录用户名与密码分别为admin

到此基本上CM的安装启动己完成,接下来就可以用过WEB界面进行安装CDH了,基本上顺利完成百分之60了。

第三部分:CDH--图像化界面安装

1)登陆CDH

service httpd start

http://192.168.6.3:7180

2)然后勾选继续

3)按需求所选,我这里选择免费,继续。

4)继续

5)因为我们在节点上启动了agent,所以直接点“当前管理的主机”,此时当前管理主机有5个。如果节点上没有CM,只有master上有,这边可以在新主机下去搜索,例如192.168.6.2.[100-104],但这样最后从节点会去yum在线安装。(此处截图为5台,按此教程应该为3台,分别是hdp-01,hdp-02,hdp-03)

6)选择之后 将所有主机都勾选上,然后继续。

7)然后选择版本

8)然后进入安装环节:

激活主节点卡住 解决方案:

我是把hosts文件中第一行中的主机名称去掉就好了!!!!!

#127.0.0.1这一行不能有其他东西!

127.0.0.1 localhost

192.168.6.3 hdp-01

192.168.6.4 hdp-02

192.168.6.5 hdp-03

9)如果主节点长时间未激活,请按上述解决方案。完成后请点击继续。

10)鸡冻,请继续。

11.)集群设置,按需求。这里我选择所有

12)角色分配,如若没有其他需求 可以按默认,继续即可!!!

13)创建数据库。需要创建数据库 以下有数据库连接详细方案,请参考!!

14)从hdfs--到集群完整安装以及除错。

数据库链接:

[root@hdp-01 ~]# mysql -h localhost -u root -phadoop

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 13

Server version: 5.1.66 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

Query OK, 1 row affected (0.12 sec)

除错:

把jdk软连接到/usr/java/default首先查看是否有/usr/java目录,没有的话新建此目录:mkdir /usr/java。然后添加软连接到/usr/java/default,命令如下:ln -s /home/monitor/apps/jdk1.7.0_45 /usr/java/default 为什么要添加软连接到/usr/java/default?这是因为有些软件,不会去找环境变量的java,而是找/usr/java下的,比如说cloudera manager在部署最后的spark时,一直报“上的客户端配置 (id=3) 已使用 1 退出,而预期值为 0”这个错误,其中一个原因就是访问java访问不到,参考:cloudera manager报错“客户端配置 (id=3) 已使用 1 退出,而预期值为 0”

hdfs除错:

创建目录 /tmp/hdfs

hive 报错

接下来就等待初始化和启动服务,这里可能会遇到Hive报错的问题,因为我们选择了Mysql作为hive的元数据存储,查看日志知道是Hive初始化Mysql的时候找不到jar文件,将

mysql-connector-java-5.1.5-bin.jar拷贝到hive存放jar文件的目录重试即可。

[root@hdp-01 ~]# cp /opt/program/cm-5.9.0/share/cmf/lib/mysql-connector-java-5.1.5-bin.jar /opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/hive/lib/

ooize (此处与hive 基本一直 也是因为没有包的原因)

1.Download the MySQL JDBC driver from http://www.mysql.com/downloads/connector/j/5.1.html.

2.Extract the JDBC driver JAR file from the downloaded file. For example:

tar zxvf mysql-connector-java-5.1.31.tar.gz

3.Copy the JDBC driver, renamed, to the relevant host. For example:

$ sudo cp mysql-connector-java-5.1.31/mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-connector-java.jar

If the target directory does not yet exist on this host, you can create it before copying the JAR file. For example:

$ sudo mkdir -p /usr/share/java/

$ sudo cp mysql-connector-java-5.1.31/mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-connector-java.jar

15) 到此全部完成安装。

1)http://192.168.6.3:50070

2)http://192.168.6.3:8088

3)http://192.168.6.3:7180

有用,有趣,有态度!

生活就是,一系列下决心的努力!!

年少风

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180620G00BF200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券