CDH从零开始快速安装法

允我心安 提交于 2020-04-06 01:10:38

环境:(全程root用户操作,如果是非root用户需要sudo权限)

  • 云服务器-centos7.2,2CPU+8G内存+100G磁盘 * 3 (我把hostname分别命名为:data-1、data-2、data-3)
  • CDH准备安装5.16.2版本
  • mysql准备安装5.7版本

开工,CDH在线安装~~~

【准备工作】

    1.1 命令:ssh-keygen,为了免密操作:把三台机器的公钥(~/.ssh/id_rsa.pub)都写入到三台机器的~/.ssh/authorized_keys中。

    1.2 配置/etc/hosts,为了机器间互相用hostname访问方便(如果用内网ip访问的话可以不配置)

    1.3 安装ntp,用于时间同步(如果各个机器上的时间不一致,集群会有各种问题)。【教程见附录--ntp配置】

    1.4 安装mysql,用于存储集群的元数据(不多说。。。练手的话可以直接用内置的PSQL存储元数据)【教程见附录--mysql5.7配置】

    1.5 去mysql官网下载驱动:cp mysql-connector-java-5.1.39-bin.jar /usr/share/java/mysql-connector-java(/usr/share/java/mysql-connector-java必须是这个路径、这个名字否则CDH无法识别)

【傻瓜式安装CDH --> cloudera-scm-server】https://docs.cloudera.com/documentation/enterprise/5-16-x/topics/poc_run_installer.html

# 获取安装二进制程序
wget https://archive.cloudera.com/cm5/installer/5.16.2/cloudera-manager-installer.bin

# 赋予运行权限
chmod u+x cloudera-manager-installer.bin

# 运行(一路next),进行完这一步cloudera-scm-server就会被启动起来了,先不要去访问可视化界面!请往下看
./cloudera-manager-installer.bin

!!!scm使用外部的数据库!!!一定要在可视化页面操作之前做这一步!!!(否则等下安装好的集群元数据信息都会被保存到内置的PSQL中)

安装mysql,以及建好用于存储元数据的数据库、用户授权等~~~

CREATE USER 'scm'@'localhost' IDENTIFIED BY 'Scm@2019';
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'localhost' IDENTIFIED BY 'Scm@2019';

CREATE USER 'hive'@'192.168.0.*' IDENTIFIED BY 'Hive@2019';
CREATE USER 'hue'@'192.168.0.*' IDENTIFIED BY 'Hue@2019';
CREATE USER 'oozie'@'192.168.0.*' IDENTIFIED BY 'Oozie@2019';
CREATE USER 'amon'@'192.168.0.*' IDENTIFIED BY 'Amon@2019';
CREATE USER 'rman'@'192.168.0.*' IDENTIFIED BY 'Rman@2019';
CREATE DATABASE hive DEFAULT CHARACTER SET latin1;
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'Hive@2019';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Hue@2019';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Oozie@2019';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'Amon@2019';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Rman@2019';

然后修改SCM的连接数据库文件(用mysql替换内置的PSQL)

vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost:3306
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=Scm@2019

重启:service cloudera-scm-server restart

启动需要时间,等2分钟可以访问http://data-1:7180进行可视化安装了(记得去安全组开放7180端口),默认用户名admin,默认密码admin

(如果不能访问,看日志找原因:tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log)

【可视化界面操作】

1、基本都是使用默认勾选的,一路next。。。

2、主机搜索那里填:

data-1
data-2
data-3

3、元数据存储那里,不要使用默认的PSQL~~~填刚才建的mysql库的对应信息

4、检查主机那一步的两个优化点代码:(以下代码,三台机器都要执行一遍)

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

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local

5、大功告成!

6、集群启动之后建议修改的配置

    6.1 HDFS -- dfs.replication,复制因子,由3改为2,更节省磁盘

    6.2 Hbase -- hbase.hregion.majorcompaction,HBase HRegion 最大化压缩,由7改1,让过期数据更快被清理掉

    6.3 所有主机 -- 配置 -- Java 主目录,改为jdk1.8(需要提前在每台机器上安装有jdk1.8并配置好全局环境变量:/etc/profile),否则hive个别功能报错

 

附录 -- ntp配置

yum install ntpdate
ntpdate -u ntp.api.bz
crontab -e
00 01 * * * ntpdate -u ntp.api.bz > /dev/null 2>&1

附录 -- mysql配置

1 下载安装包:wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
2 安装:yum -y install mysql57-community-release-el7-11.noarch.rpm
3 安装mysql服务器:yum install mysql-community-server
4 启动:systemctl start mysqld.service
5 停止:systemctl stop mysqld.service
6 重启:/bin/systemctl restart  mysqld.service
7 查看状态:/bin/systemctl status  mysqld.service,配置文件:/etc/my.cnf
8 设置开机启动:systemctl enable mysqld.service
9 首次使用root用户登录,查看随机密码:grep "password" /var/log/mysqld.log
10 修改root用户密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '需含大小写字母和数字和特殊字符';
11 增加用户和全球访问:CREATE USER 'username'@'%' IDENTIFIED BY 'password';
12 配置只读权限:grant select(如果是所有权限,则为ALL) on dbname.* to 'username'@'%' identified by 'password';
13 刷新:flush privileges;
14 增加slave用户:grant replication slave on *.* to '用户名'@'%' identified by '密码';
15 删除用户和权限:drop user xxx@'%';
16 不停机备份主库:mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A > dump.sql(head dump.sql -n80 | grep "MASTER_LOG_POS")

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!