专栏首页A2DataCDH5-史无前例教程

CDH5-史无前例教程

生活

就是一系列下定决心的努力

· 正 · 文 · 来 · 啦 ·

第一&二部分:准备工作&安装CM

One

第一部分:准备环境
1.下载安装包,规划三台机器
Cloudera Manager 5.9
CDH5.9 主文件
CDH5.9 sha文件
manifest 文件

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

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

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,

重启机器 reboot

5.shell (主从节点维护起来)
在hdp-01机器root目录下,产生一个host文件,文件内容如下,主要将各节点的主机名维护起来。
vim 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(三台都需要,版本可能不一样根据实际操作)
#查看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

#按版本卸载jdk
[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@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--图像化界面安装

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--到集群完整安装以及除错。

有用,有趣,有态度!

本文分享自微信公众号 - DataScience(DataScienceTeam),作者:Jack 风

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 论__CDH5躺过的坑

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

    DataScience
  • 类型提升

    当容量小的的数据类型的变量与容量大的数据类型做运算时,结果自动提升为容量大的数据。

    DataScience
  • Apache Hive FROM_UNIXTIME

    ⊙时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

    DataScience
  • 一个有趣的时间段重叠问题

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    用户1148526
  • 丢给你个环形队列玩玩

    假设我需要处理10000个字节的数据,就是串口一次性会发过来10000个字节,然后单片机每次取10个字节处理,然后处理1000次就处理完了

    杨奉武
  • 重叠时间段问题优化算法详解

    这是一个实际业务需求中的问题。某一直播业务表中记录了如下格式的用户进出直播间日志数据:

    用户1148526
  • pytorch基础知识-维度变换-(上)

    维度变换是pytorch中的重要操作,尤其是在图片处理中。本文对pytorch中的维度变换进行讲解。

    用户6719124
  • MySQL中InnoDB引擎对索引的扩展

    MySQL中,使用InnoDB引擎的每个表,创建的普通索引(即非主键索引),都会同时保存主键的值。

    数据和云
  • pytorch基础知识:张量(下)

    其中一维标量主要用于Bias(偏差)中,如在构建神经元中多组数据导入到一个神经元中,由激活函数激活输出一个数值,则该神经元主要使用bias功能。线性层输入(Li...

    用户6719124
  • Linux-Shell变量

    悠扬前奏

扫码关注云+社区

领取腾讯云代金券