CDH集群安装

查看Linux系统:

cat /etc/redhat-release

CentOS Linux release 7.5.1804 (Core)

2.1.1. 准备虚拟机(根据自己的系统资源分配虚拟机资源)

rpm -qa|grep vim

先安装vim

yum -y install vim*

2.1.2. 静态IP设置(每个节点)****--这个已经设置好

vim /etc/sysconfig/network-scripts/ifcfg-ens192

service network restart 重启网络生效

yum install -y net-tools ifconfig 查看设置

2.1.3. 编辑/etc/hosts文件(每个节点)

vim /etc/hosts

新增以下内容:

172.24.10.2 master.prd.yzf master

172.24.10.3 slave01.prd.yzf slave01

172.24.10.4 slave02.prd.yzf slave02

172.24.10.5 slave03.prd.yzf slave03

刷新: ****/etc/init.d/network restart

  • 然后修改各个节点hostname,master: hostnamectl set-hostname master.prd.yzf (其他节点参考该命令)

2.1.4. 关闭防火墙、禁止防火墙开机自启(每个节点)

  1. systemctl stop firewalld 关闭防火墙

  2. systemctl disable firewalld 禁止防火墙开机自启

查看防火墙状态看是否关闭: firewall-cmd --state

查看防火墙自启是否禁用: systemctl list-unit-files | grep firewall

  1.  vim /etc/selinux/config —> SELINUX=disabled (修改)
    
image.png

2.1.5. ssh无密码登录

  1. 172.24.10.2 master.prd.yzf 节点执行 ssh-keygen -t rsa

一路回车到结束,在 /root/.ssh/ 下面会生成一个公钥文件 id_rsa.pub

可以直接类似 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.24.10.3

2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 将公钥追加到 authorized_keys

3. chmod 600 ~/.ssh/authorized_keys 修改权限

4. 将 ~/.ssh 从当前节点分发到其他各个节点。如:scp -r ~/.ssh/ root@node1:~/.ssh/

5. ssh 各个节点互相登陆

无法scp情况下: 将每个节点的 cat ~/.ssh/id_rsa.pub 文件内容复制到同一个文件tmp中

在每个节点执行 vim ~/.ssh/authorized_keys ,然后将上面包含每个节点公钥的文件粘贴到这个文件中

image.png

保存退出。

ssh root@slave01.prd.yzf

2.1.6. 配置NTP服务(所有节点)

查看ntp服务是否启动:systemctl status ntpd

查看ntp服务开机自启是否启动: systemctl list-unit-files | grep ntpd

  1. 修改时区(改为中国标准时区)ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime--此操作已经实现,无需再执行

  2. 安装ntp : yum -y install ntp

  3. ntp主机配置 vim /etc/ntp.conf

  4. manager节点

server ntp1.aliyun.com

server ntp2.aliyun.com

server ntp3.aliyun.com

image.png

5.其余节点:server master 或者 server master.prd.yzf

image.png
  1. 重新启动 ntp 服务:service ntpd restart
    

Centos7

开启ntp服务: systemctl start ntpd

开机自启: systemctl enable ntpd

  1. 设置开机自启:systemctl enable ntpd.service
    
  2. ntpdc -c loopinfo #查看与时间同步服务器的时间偏差
    
  3. ntpq -p #查看当前同步的时间服务器
    
  4. ntpstat #查看状态

配置成功状态(服务开启后前面出现*说明成功):

2.1.7. 修改Linux swappiness参数(所有节点)****--此操作不一定需要

为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)

image.png
  • 上述方法rhel6有效,rhel7.2中:tuned服务会动态调整系统参数
  • 查找tuned中配置,直接修改配置
  • cd /usr/lib/tuned/
  • grep ‘vm.swappiness’ * -R 查询出后依次修改
image.png

修改完确认:

image.png

2.1.8. 禁用透明页(所有节点)

cat /sys/kernel/mm/transparent_hugepage/enabled

使用命令查看时,如果输出结果为[always]表示透明大页启用了。[never]表示透明大页禁用、[madvise]表示(只在MADV_HUGEPAGE标志的VMA中使用THP)

临时解决办法如下:

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效 在/etc/rc.d/rc.local 添加上面命令

vim /etc/rc.d/rc.local

image.png

保存退出。

给与可执行权限:chmod +x /etc/rc.d/rc.local

2.1.9. JDK安装(所有节点)****--机器已经预装了,无需再安装

注意需要添加环境变量,/etc/profile好像没有添加

  • rpm -qa | grep java # 查询已安装的java

  • 安装jdk:

  • 上传 jdk-8u251-linux-x64.tar.gz 到/usr

  • 创建目录:cd /usr ; mkdir java

  • 解压:tar zxf jdk-8u251-linux-x64.tar.gz -C ./java

  • vi /etc/profile 末尾添加

    export JAVA_HOME=/usr/java/jdk1.8.0_251

    export CLASSPATH=.:JAVA_HOME/lib:JAVA_HOME/jre/lib

    export PATH=PATH:JAVA_HOME/bin

  • source /etc/profile

  • java -version 验证

  • 其余机器重复操作

2.1.10. 上传mysql的jar包并重命名 (所有节点

创建/usr/share/java目录,将mysql-jdbc包放过去

  • mkdir -p /usr/share/java
  • 将 mysql-connector-java-5.1.34.jar 上传到 /usr/share/java/ 目录下
  • mysql-connector-java-5.1.34.jar 一定要命名为 mysql-connector-java.jar (可以创建软连接代替重命名)

然后 scp 到 其他 机器上 ,例如: scp mysql-connector-java.jar root@slave01:$PWD

2.1.11. 为保证防火墙、虚拟机参数修改后生效,各节点机器需要重启 reboot

2.1.12. Mysql安装 (manager节点)

  • 卸载mariadb:rpm -qa|grep mariadb
  • rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

可以直接使用:rpm -qa | grep mariadb | xargs rpm -e --nodeps

查看Centos自带mysql是否已经安装****:

yum list installed | grep mysql

查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)

yum list | grep mysql 或 sudo yum -y list mysql*

下载msql5.7 yum源

cd /usr/local/src

mkdir mysql

下载msql5.7 yum源

wget <u>https:</u><u>//dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm</u>

安装yum源

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

yum update --此步骤可省略试试

安装mysql

yum -y install mysql-server

  1. 重启MySQL:

systemctl restart mysqld.service

systemctl enable mysqld

  1. 查看默认密码

grep "password" /var/log/mysqld.log    (后面会出现一个mql密码用以下面的登陆)

2020-03-03T07:46:23.905362Z 1 [Note] A temporary password is generated for root@localhost: ;=KMKf/jM0gT

mysql -uroot -p

初始密码为 ;=KMKf/jM0gT

  1. 进入命令行后,首先修改密码

密码策略问题异常信息:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

1)set global validate_password_policy=LOW;

2)set global validate_password_length=6; 默认是8

alter user 'root'@'localhost' identified by 'Root@123';

7.然后进行创建用户,授权等操作

grant all privileges on . to 'root'@'%' identified by 'Root@123' with grant option; -- 授权

flush privileges;

mysql查看所有用户

select user,host from mysql.user;

mysql -uroot -pRoot@123

建库语句:

create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database nav DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

grant all on scm.* to 'scm'@'%' identified by 'Root@123';
grant all on hive.* to 'hive'@'%' identified by 'Root@123';

grant all on amon.* to 'amon'@'%' identified by 'Root@123';

grant all on rman.* to 'rman'@'%' identified by 'Root@123';

grant all on hue.* to 'hue'@'%' identified by 'Root@123';

grant all on metastore.* to 'hive'@'%' identified by 'Root@123';

grant all on sentry.* to 'sentry'@'%' identified by 'Root@123';

grant all on nav.* to 'nav'@'%' identified by 'Root@123';

grant all on navms .* to navms @'%' identified by 'Root@123';

grant all on oozie.* to 'oozie'@'%' identified by 'Root@123';

flush privileges;

mysql -uscm -pRoot@123

2.1.13. 安装Httpd服务(manager)

  • yum install httpd
  • service httpd start
  • systemctl enable httpd.service 设置httpd服务开机自启

2.1.14. 防止出现莫名错误,事先安装以下插件(所有节点)

  • yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server --skip-broken --nogpgcheck

  • 安装上述插件时会报错,找不到软件包:(马继斌:实践没有执行该命令也可)

    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile

2.1.15. 配置Cloudera Manager包yum源(manager节点)

  • mkdir -p /var/www/html/cloudera-repos/cm6/
  • 将下载的cm包文件移到此目录下: /var/www/html/cloudera-repos/cm6/
  • 包含这些文件:
image.png
  • cd /var/www/html/cloudera-repos/cm6/

创建仓库: createrepo .

如无此命令: yum install createrepo 后再执行 createrepo .

成功后会出现:repodata文件夹

image.png

创建文件: vim /etc/yum.repos.d/cloudera-manager.repo

[cloudera-manager]

name=cloudera-manager

baseurl=http://master.prd.yzf/cloudera-repos/cm6/

enabled=1

gpgcheck=0

image.png

yum clean all ; yum makecache ;

浏览器访问:<u>http://172.24.10.2/cloudera-repos/cm6/</u>

看到下面页面说明yum源制作成功

image.png

2.1.16.导入GPG key(如果没有这步操作,很可能cloudera服务安装失败)manager节点

rpm --import <u>https://archive.cloudera.com/cm6/6.</u><u>3</u><u>.1/redhat7/yum/RPM-GPG-KEY-cloudera</u>

<u>避免不可知问题,建议多重复几遍。</u>

(实践不导入也可以)

2.1.17. 安装 Cloudera Manager(manager节点)

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

安装完CM后/opt/ 下会出现cloudera目录:

将下载的cdh的parcel包上传到 /opt/parcels/下

包含:

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256

manifest.json

将parcel包移动到指定位置

mv /opt/parcels/* /opt/cloudera/parcel-repo/

image.png

在/opt/cloudera/parcel-repo执行以下命令:

mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

初始化数据库:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm Root@123

image.png

成功后检查元数据库的字符集:

select table_collation from information_schema.tables where table_name in ('COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS');

若现在查不到这三张表'COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS',等安装完CDH后,再重复执行此步骤

如不是utf-8,执行以下语句修改

alter table metastore.COLUMNS_V2 modify column comment varchar(256) character set utf8;

alter table metastore.TABLE_PARAMS modify column param_value varchar(4000) character set utf8;

alter table metastore.PARTITION_KEYS modify column pkey_comment varchar(4000) character set utf8;

打开server服务:

service cloudera-scm-server start

静候几分钟,打开http://172.24.10.2:7180

初始密码:admin/admin

打开web页面安装cdh:

页面操作步骤参考:https://blog.csdn.net/u011026329/article/details/104442051

此处从搜索主机开始:

1、填写主机名自动点搜索

image.png

2、指定存储库

选择自定义存储库: 路径为上面配置的本地yum源地址 http://172.24.10.2/cloudera-repos/cm6/

image.png

3、如果我们之前的【配置本地Parcel存储库】步骤操作无误的话,这里会自动选择【使用Parcel】,并加载出CDH版本,确认无误后点击【继续】:

image.png

4、这一步骤我就不再勾选安装JDK了,因为我在环境准备部分已经安装过了。取消勾选,然后继续:

image.png

5、用于配置集群主机之间的SSH登录,填写root用户的密码,根据集群配置填写合适的【同时安装数量】值即可:

image.png
  • 若不知道主机访问密码,可以选择 所有主机接受相同私钥 方式,输入master的私钥(文件路径: /root/.ssh/id_rsa),短语密码可以不写。需要注意的是,需要把master节点的公钥(/root/.ssh/id_rsa.pub)添加到自己的 /root/.ssh/authorized_keys 文件中,保证使用自己的私钥能登录自己(目的就是用master的私钥能ssh登录所有机器,包括master自己)。

6、一路继续

image.png

7、安装Parcels

这一步同样是自动安装,分配步骤的速度主要取决于网络环境,耐心等待即可:

image.png

8、****主机检查

等待检查完成即可:

image.png

9、点显示验证结果

image.png

修改配置:

临时修改:

sysctl vm.swappiness=10 ; cat /proc/sys/vm/swappiness

这里我们的修改已经生效,但是如果我们重启了系统,又会变成30.

永久修改:

在/etc/sysctl.conf 文件里添加如下参数: vm.swappiness=10

或者: echo 'vm.swappiness=10'>> /etc/sysctl.conf

10、重新运行

image.png

结果如上没问题

11、继续

安装CDH集群: 此处建议选择基础服务创建集群,创建后再逐个添加其他服务

如: 此处选择 zookeeper、 hdfs 、 yarn、hive、hue、oozie

image.png

12、也可以自定选择服务

image.png

选择数据库:

数据库设置.jpg

安装CDH等hive组件后,修改hive元数据的编码集,解决字段注释中文乱码问题。

select table_collation from information_schema.tables where table_name in ('COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS');

若现在查不到这三张表'COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS',等安装完CDH后,再重复执行此步骤

如不是utf-8,执行以下语句修改

alter table metastore.COLUMNS_V2 modify column comment varchar(256) character set utf8;

alter table metastore.TABLE_PARAMS modify column param_value varchar(4000) character set utf8;

alter table metastore.PARTITION_KEYS modify column pkey_comment varchar(4000) character set utf8;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容