前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论__CDH5躺过的坑

论__CDH5躺过的坑

作者头像
DataScience
发布2020-04-14 12:08:15
1.1K0
发布2020-04-14 12:08:15
举报
文章被收录于专栏:A2DataA2DataA2Data

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

第一部分:准备工作

One

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

Cloudera Manager 5.9

CDH5.9 主文件

CDH5.9 sha文件

manifest 文件

(注:此处为方便下载已经传入云盘,请在后台回复CDH5 自动获取下载地址(包含本文所有软件包))

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:

}&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

在所有节点上面节点上启动CM的agent服务

/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)

mysql>

除错:

把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

有用,有趣,有态度!

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

年少风

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataScience 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档