CDH6.3.1-Hadoop3.0.0集群部署

举报
Smy1121 发表于 2022/12/30 15:07:15 2022/12/30
【摘要】 基于CDH6.3.1版本-Hadoop3.0.0集群部署注意:虚拟服务器要固定ip地址一、修改主机名在对应服务器分别执行:hostnamectl set-hostname ****-master1hostnamectl set-hostname ****-master2hostnamectl set-hostname ****-master3hostnamectl set-hostname ...

基于CDH6.3.1版本-Hadoop3.0.0分布式集群部署

注意:虚拟服务器要固定ip地址

一、修改主机名

在对应服务器分别执行:

hostnamectl set-hostname ****-master1
hostnamectl set-hostname ****-master2
hostnamectl set-hostname ****-master3
hostnamectl set-hostname ****-master4
hostnamectl set-hostname ****-master5
hostnamectl set-hostname ****-slave1
hostnamectl set-hostname ****-slave2
hostnamectl set-hostname ****-slave3
hostnamectl set-hostname ****-slave4
hostnamectl set-hostname ****-slave5
hostnamectl set-hostname ****-slave6
hostnamectl set-hostname ****-slave7
hostnamectl set-hostname ****-slave8
hostnamectl set-hostname ****-slave9
hostnamectl set-hostname ****-slave10
hostnamectl set-hostname ****-app



hostnamectl set-hostname ****-master1
hostnamectl set-hostname *-master2
hostnamectl set-hostname *-master3
hostnamectl set-hostname *-master4
hostnamectl set-hostname *-master5
hostnamectl set-hostname *-slave1
hostnamectl set-hostname ****-slave2
hostnamectl set-hostname ****-slave3
hostnamectl set-hostname ****-slave4
hostnamectl set-hostname *-slave5
hostnamectl set-hostname *-slave6
hostnamectl set-hostname *-slave7
hostnamectl set-hostname ****-slave8
hostnamectl set-hostname *-slave9
hostnamectl set-hostname ****-slave10
hostnamectl set-hostname *-app


二、修改hosts文件

在对应服务器分别执行,编辑文件,添加 ip-域名映射:vim /etc/hosts

xxx.xx.xx.xx    ****-master1
xxx.xx.xx.xx    ****-master2
xxx.xx.xx.xx    ****-master3
xxx.xx.xx.xx    ****-master4
xxx.xx.xx.xx    ****-master5
xxx.xx.xx.xx     ****-slave1
xxx.xx.xx.xx    ****-slave2
xxx.xx.xx.xx    ****-slave3
xxx.xx.xx.xx    ****-slave4
xxx.xx.xx.xx    ****-slave5
xxx.xx.xx.xx    ****-slave6
xxx.xx.xx.xx    ****-slave7
xxx.xx.xx.xx    ****-slave8
xxx.xx.xx.xx    ****-slave9
xxx.xx.xx.xx    ****-slave10
xxx.xx.xx.xx    ****-app



xxx.xx.xx.xx   *-master1
xxx.xx.xx.xx  *-master2
xxx.xx.xx.xx  *-master3
xxx.xx.xx.xx  ****-master4
xxx.xx.xx.xx  *-master5
xxx.xx.xx.xx  *-slave1
xxx.xx.xx.xx  *-slave2
xxx.xx.xx.xx  ****-slave3
xxx.xx.xx.xx  *-slave4
xxx.xx.xx.xx  *-slave5
xxx.xx.xx.xx  ****-slave6
xxx.xx.xx.xx  ****-slave7
xxx.xx.xx.xx  ****-slave8
xxx.xx.xx.xx  *-slave9
xxx.xx.xx.xx  *-slave10
xxx.xx.xx.xx  ****-应用程序


三、关闭selinux

永久关闭输入命令:sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
临时关闭输入命令:setenforce 0     #重启系统后还会开启

查看seLinux的状态命令:getenforce
显示Enforcing为打开状态
显示Disabled为关闭状态

四、关闭防火墙

禁止开机启动:    systemctl disable firewalld.service
关闭防火墙:        systemctl stop firewalld.service
查看防火墙状态:systemctl status firewalld.service

五、设置时间同步

安装: yum install chrony
启动:systemctl start chronyd
设置开机自启动:systemctl enable chronyd

编辑配置文件: vim /etc/chrony.conf
server 172.16.3.166 iburst
查看服务是否启动: systemctl status chronyd.service

运行以下命令查看本机时间同步状态
chronyc tracking   #校准时间服务器

六、配置免密登录

命令解释:

ssh-keygen 产生公钥与私钥对

ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中

ssh-copy-id命令也能让你有到远程机器的home,~./ssh,和 ~/.ssh/authorized_keys的权利

操作

第一步:在每一台服务器上使用ssh-keygen命令产生公钥私钥对

执行:ssh-keygen

第二步:在除****-master1以外的机器上执行,使用ssh-copy-id命令将公钥复制到远程的****-master1机器中

执行:ssh-copy-id -i ~/.ssh/id_rsa.pub ****-master1

第三步:在****-master1机器上执行,将文件分发到其它机器

执行:scp authorized-keys root@****-slave1:~/.ssh

第四步:登录到远程机器互相验证 不用输入密码

执行:ssh ****-slave10

七、安装jdk
第七,jdk

离线下载Java jdk压缩安装包:jdk-8u321-linux-x64.tar.gz
离线下载Java jdk压缩安装包:jdk-8u321-linux-x64.tar.gz

创建目录: mkdir /usr/java -p

将jdk压缩包上传至服务器目录:/usr/java

将jdk压缩包解压:tar -xf jdk-8u211-linux-x64.tar.gz
jdk

配置java环境变量,编辑文件:vim /etc/profile

添加:export JAVA_HOME=/usr/java/jdk1.8.0_321
           export PATH=$JAVA_HOME/bin:$PATH

输出JAVA_HOME = /usr/java/jdk1.8.0_321
           $PATH:$JAVA_HOME/bin

输出JAVA_HOME = /usr/java/jdk1.8.0_321
           $PATH:$JAVA_HOME/bin。

输出JAVA_HOME = /usr/java/jdk1.8.0_321
           $PATH:$JAVA_HOME/bin

保存退出

是配置生效:source /etc/profile

检查是否安装成功:java -version

八、安装mysql

进入目录: cd /usr/local/src
在linux下载文件: wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
如果不能访问外网,则在外部这个地址页面手动下载安装包然后再上传到服务器,下载地址:https://downloads.mysql.com/archives/community/

mysql版本:mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar

解压mysql jar包:tar -xf mysql-5.7.30- 1.el7.x86_64.rpm-bundle.tar
创建目录:  mkdir mysql-5.7.30-rpm
把解压的文件移动到此目录: mv *rpm mysql-5.7.30-rpm/
执行安装命令: sudo yum install *.rpm

修改配置my.cnf :   echo character-set-server=utf8 >> /etc/my.cnf


开启MySQL服务:service mysqld start
查看默认密码: sudo grep 'temporary password' /var/log/mysqld.log

登录: mysql -uroot -p  输入默认密码:uyL*bygH9NOf

登陆成功后修改密码:alter user root@localhost identified by '******';
如果执行上面那条修改密码sql命令报错,则换个方式修改密码:/usr/bin/mysql_secure_installation

修改密码成功后,创建CDH数据库名:
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

新建库后一定要给新建的库赋权限,以下是赋权限及修改密码操作:
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '***';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '***';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '***';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '***';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY '***';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '***';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '***';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '***';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '***';

新建库后一定要给新建的库赋权限,以下是赋权限及修改密码操作:
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '***';
GRANT ALL ON AMON.* TO 'amon'@'%' IDENTIFIED BY '***';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '***';
GRANT ALL ON Hue.* TO 'hue'@'%' IDENTIFIED BY '***';
GRANT ALL ON元存储。* TO 'metastore'@'%' IDENTIFIED BY '***';
GRANT ALL ON Sentry.* TO 'sentry'@'%' IDENTIFIED BY '***';
在导航栏中授予所有权限 * TO 'nav'@'%' IDENTIFIED BY '***';
在navms上授予所有权限。* TO 'navms'@'%' IDENTIFIED BY '***';
GRANT ALL ON Oozie.* TO 'oozie'@'%' IDENTIFIED BY '***';

新建库后一定要给新建的库赋权限,以下是赋权限及修改密码操作:
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '*';
GRANT ALL ON AMON.* TO 'amon'@'%' IDENTIFIED BY '*';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '*';
GRANT ALL ON Hue.* TO 'hue'@'%' IDENTIFIED BY '***';
GRANT ALL ON元存储。* TO 'metastore'@'%' IDENTIFIED BY '*';
GRANT ALL ON Sentry.* TO 'sentry'@'%' IDENTIFIED BY '*';
在导航栏中授予所有权限 * TO 'nav'@'%' IDENTIFIED BY '*';
在navms上授予所有权限。* TO 'navms'@'%' IDENTIFIED BY '*';
GRANT ALL ON Oozie.* TO 'oozie'@'%' IDENTIFIED BY '***';

新建库后一定要给新建的库赋权限,以下是赋权限及修改密码操作:
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '*';
授予所有在阿蒙。* TO 'amon'@'%' IDENTIFIED BY '*';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '*';
GRANT ALL ON Hue.* TO 'hue'@'%' IDENTIFIED BY '***';
GRANT ALL ON元存储。* TO 'metastore'@'%' IDENTIFIED BY '*';
GRANT ALL ON Sentry.* TO 'sentry'@'%' IDENTIFIED BY '***';
在导航栏中授予所有权限 * TO 'nav'@'%' IDENTIFIED BY '***';
在navms上授予所有权限。* TO 'navms'@'%' IDENTIFIED BY '*';
GRANT ALL ON Oozie.* TO 'oozie'@'%' IDENTIFIED BY '*';

flush privileges;    #修改权限后刷新mysql的系统权限相关表
注意:mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。

九、安装jdbc mysql连接器 mysql-connector-java
一个男孩,安杰德bc mysql连接儿子mysql—connector—java

下载mysql连接器到目录:/usr/local/src
mysql连接器版本:mysql-connector-java-5.1.49.jar
在linux上下载:wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.49.tar.gz
如果无法访问外网,则在外部离线下载好后上传至服务器

解压:sudo tar -xf mysql-connector-java-5.1.49.tar.gz
把解压好的jar包放到新建目录:mkdir /usr/share/java
拷贝文件并重命名:cp mysql-connector-java-5.1.49.jar /usr/share/java/mysql-connector-java.jar

十、下载安装包cm6和cdh6

安装包在外部提前下载好并上传至服务器目录

切换到目录:cd /usr/local/src
创建目录: mkdir cm6.3.1
解压cm6压缩包:sudo tar zxvf cm6.tar.gz

在NameNode节点安装
第一步安装daemons rpm:sudo rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
第二步安装server rpm:sudo rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
第三步安装agent rpm:sudo yum install cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

在DataNode节点安装
在datanode节点只需安装客户端
sudo rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
sudo rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --force --nodeps


修改cloudera-scm-server配置文件,修改数据库类型、地址、用户名、密码:
vim /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=****-master1
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=******
com.cloudera.cmf.db.setupType=EXTERNAL

启动 cloudera-scm-server:
sudo systemctl start cloudera-scm-server
查看启动日志命令:tailf -n 30 /var/log/cloudera-scm-server/cloudera-scm-server.log
查看状态:sudo systemctl status cloudera-scm-server


修改namenode客户端agent:
vim /etc/cloudera-scm-agent/config.ini
server_host=****-master1
server_port=7182

修改除NameNode节点以外的所有客户端配置:
sed -i "s/server_host=localhost/server_host= ****-master1/g" /etc/cloudera-scm-agent/config.ini

启动所有节点的agent服务
systemctl enable cloudera-scm-agent     #设置开机自启动
systemctl start cloudera-scm-agent
systemctl status cloudera-scm-agent

访问CM Web安装界面:http://1.14.179.xx:7180/

十一、下载安装cdh6

配置cdh的parcels包文件
采用parcels http私有仓库的形式离线安装

安装httpd:sudo yum install httpd
启动:service httpd start
查看状态:service httpd status

进入这个目录:cd /var/www/html,在此目录创建parcels目录:sudo mkdir parcels -p

linux上下载cdh包:wget https://archive.cloudera.com/cdh6/6.3.1/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1605554-el7.parcel

离线下载好的安装包:cdh6.tart.gz

一般下载时间较长,有提前下载好的直接上传到目录解压即可:tar zxvf cdh6.tart.gz

将解压文件中的三个文件移动到 /var/www/html/parcels/目录

文件一:mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/parcels/
文件二:mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha /var/www/html/parcels/
文件三:mv manifest.json /var/www/html/parcels/

意味深长:mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/parcels/
混合混合混合:mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha /var/www/html/parcell/
伊朗:mv manifest. json/var/www/html/parcels/

检查.parcel文件的hash码与.parcel.sha文件中的hash码对比是否一致, 检查命令:
sha1sum CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel
cat CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha


httpd服务启动成功状态下,访问 http://1.14.179.xx/parcels/ 查看私仓是否建立好

访问CM按序操作安装:  http://1.14.179.xx:7180/

注意:Hive指定在DateNode节点上安装,只能在DataNode上访问。

十二、配置CDH集群

#按照向导配置集群

接着访问CM Web界面,按序操作安装hadoop组件。

打开浏览器输入:http://172.16.14.xx:7180http://172.16.14.xx:7180

选择版本为express免费版


#显示检查结果



#关闭透明大业

两种方式:

1、重启后会失效
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

2、开机时设置never到以上文件中,永久有效。
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local

#关闭透明页后,重新运行检查。


透明页已关闭,不再提示。%MCEPASTEBIN%% MCEPASTEBIN %;

透明页已关闭,不再提示。

#自定义安装组件



#安装Zookeeper组件

#添加CM Service服务


#添加Hue组件
#添加Hive组件

#添加HBase、Spark、Kafka组件等,不一一展示了,百度可查。




【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。