阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7下CDH搭建Hadoop集群

310次阅读
没有评论

共计 6105 个字符,预计需要花费 16 分钟才能阅读完成。

一、说明 

节点(CentOS7.5) Server  || Agent CPU
node11 Server  || Agent 4G
node12 Agent 2G
node13 Agent 2G

二、系统环境搭建

1、网络配置(所有节点)

1.设置主机名和 IP

2.配置 /etc/hosts  IP 和主机名的映射 

2、SSH 免密码登录

1.产生公钥和私钥:ssh-keygen -t rsa(一直回车直即可)

2.将公钥分发给所有节点(包括本机):ssh-copy-id -i 主机名

3.测试 ssh 访问:    ssh root@主机名

3、关闭防火墙

1.关闭防火墙:systemctl stop firewalld

2.防止开机自启:systemctl disable firewalld

3.查看状态:firewall-cmd –state

4、关闭 SELINUX

1.编辑  vi /etc/selinux/config

2.将 SELINUX 设置为:SELINUX=disabled

[root@node11~]# sestatus -v

SELinux status: disabled 表示已经关闭了

5、安装 JDK

1.查看安装的 Java 信息:

rpm -qa | grep java

2.卸载自带 open jdk

rpm -e –nodeps 包名

3.创建 /usr/java 目录,并上传包到此目录下,然后将 rpm 包解压到此目录下

rpm -ivh  jdk-8u191-linux-x64.rpm

4.配置环境变量

vi /etc/profile

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

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5.使配置后的环境变量生效

source /etc/profile

6.查看是否安装成功

java -version

6、设置 NTP

[root@node11~]#yum -y install ntp 更改 master 的节点

[root@node11~]## vi /etc/ntp.conf 注释掉所有 server *.*.* 的指向,新添加一条可连接的 ntp 服务器(我选的本公司的 ntp 测试服务器)

server 172.30.0.19 iburst 在其他节点上把 ntp 指向 master 服务器地址即可(/etc/ntp.conf 下) server node11 iburst

[root@node11~]## systemctl start ntpd // 启动 ntp 服务

[root@node11~]## systemctl status ntpd // 查看 ntp 服务状态

7、安装配置 MySQL

(主节点安装即可 – 这里将 node11 作为主节点)

1.卸载 mariadb

rpm -qa|grep mariadb

rpm -e –nodeps mariadb 的包名

CentOS 7 下 CDH 搭建 Hadoop 集群 

2.上传 MySQL 包到自建目录:/opt/software

CentOS 7 下 CDH 搭建 Hadoop 集群

3.安装 MySQL

# groupadd mysql
# useradd -r -g mysql -s /sbin/nologin mysql
#cd /usr/local/
# tar zxvf /root/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.21-linux-glibc2.12-x86_64/ mysql
#cd mysql
# mkdir mysql-files
# chown -R mysql.mysql .
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# cp -rf /etc/my.cnf /etc/my.cnf.old
# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

skip-grant-tables  

启动 mysql

# bin/mysqld_safe --user=mysql &
# cp support-files/mysql.server /etc/init.d/mysql
# chmod a+x /etc/init.d/mysql
# chkconfig --add mysql
# chkconfig mysql on
# service mysql start

设置 root 的密码

mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('123456') where User='root';
mysql> alter user root@'localhost' identified by '123456';  // 修改密码

重新初始化

# killall mysqld
# rm -rf /usr/local/mysql/data/
# chown -R mysql.mysql /usr/local/mysql
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# bin/mysql_ssl_rsa_setup
# service mysqld restart

授权 root 用户使用密码从任意主机连接到 mysql 服务器

GRANT ALL PRIVILEGES ON *.* TO ‘ROOT’@’%’ IDENTIFIED BY ‘1234’ WITH GRANT OPTION;

flush privileges; 

三、Cloudera Manager Server&Agent 安装 

CM 安装包下载地址:   https://archive.cloudera.com/cm5/cm/5/

CDH 安装包下载地址:http://archive.cloudera.com/cdh5/parcels/5.15.0/

CentOS 7 下 CDH 搭建 Hadoop 集群

1、安装 Cloudera Manager Server&Agent

上传到 /home/tools 下 (三台机器都要安装)    tar xvzf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz  -C /opt

CentOS 7 下 CDH 搭建 Hadoop 集群

2、配置 CM Agent

1.cm 的安装包的 server 和 agent 都是同一个包,启动的时候启动命令指定为 server 还是 agent;

2.cm 有一个工作目录,需要 我们来创建;创建一个用户;修改 agent 的配置,给它指定 server 的位置;那个端口 7182 是 server 和 agent 通信的端口;

3.server_host 配置为 server 的名字;

vi   /opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini   中 server_host(三台机器)

CentOS 7 下 CDH 搭建 Hadoop 集群

3、创建用户 cloudera-scm(所有节点)

useradd –system –home=/opt/cm-5.15.0/run/cloudera-scm-server/ –no-create-home –shell=/bin/false –comment “Cloudera SCM User” cloudera-scm

4、创建 Parcel 目录

创建 parcel 目录,这个目录是 server 和 agent 用来接收和发送数据的目录,server 端的 parcel-repo 这个目录会把所有 的安装文件全部下载到此目录,而 agent 也需要安装包,parcels 就是用来存储指定的安装包的,当然需要有权限能操作 这些目录;

Server 节点

  mkdir -p /opt/cloudera/parcel-repo

  chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

Agent 节点

 mkdir -p /opt/cloudera/parcels

 chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

把 CDH 安装包移到 cloudera/parcel-repo 下面, 并修改其中后缀为 sha1 的文件为 sha, 如下

CentOS 7 下 CDH 搭建 Hadoop 集群

5、配置 CM Server 的数据库

cp mysql-connector-java.jar /opt/cm-5.15.0/share/cmf/lib/                 注意 jar 包名称要修改为 mysql-connector-java.jar

CentOS 7 下 CDH 搭建 Hadoop 集群
mysql -u root -p123456
use mysql;
grant all on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;­
初始化 cm 数据库:   cd /opt/cm-5.15.0/share/cmf/schema/
 ./scm_prepare_database.sh mysql cm -h node11 -uroot -p123456 --scm-host node11 scm scm scm  
格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server 服务器 
CentOS 7 下 CDH 搭建 Hadoop 集群

创建其他组件需要的数据库

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

6、启动 CM Manager&Agent 服务

先确保启动了 mysql  service mysqld start

node11: 执行    /opt/cm-5.15.0/etc/init.d/cloudera-scm-server start

node11,12,13:   执行  /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start 

service 服务启动需要几分钟,取决于服务器的性能,此时我们可以使用

netstat -apn|grep 7180

CentOS 7 下 CDH 搭建 Hadoop 集群

查询端口被占用后,就可以用浏览器打开 http://node11:7180/ 进行访问了,登录用户名与密码分别为 admin。

7、Server&Agent 开机自启动服务

将 /opt/cm-5.15.0/etc/init.d/ 目录下的 cloudera-scm-server 服务器启动脚本和 cloudera-scm-agent 代理服务启动脚本复制到 /etc/init.d/ 目录下面。(/etc/init.d/ 目录用于存放开机启动脚本的目录)

CentOS 7 下 CDH 搭建 Hadoop 集群
//配置 server 主节点 node11
[root@node11 ~]# cp /opt/cm-5.15.0/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
[root@node11 ~]# chkconfig --add cloudera-scm-server
[root@node11 ~]# chkconfig cloudera-scm-server on 
[root@node11 ~]# vi /etc/init.d/cloudera-scm-server 
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default} 修改为 CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cm-5.15.0/etc/default}  #你的 cloudera manager 安装目录,然后保存退出即可。添加:export JAVA_HOME=/usr/local/java/jdk1.8           #你的 java 安装目录
[root@node11 ~]# chkconfig --list cloudera-scm-server  //然后查看状态, 如果 2 - 5 显示开启表示配置成功。[root@node11 ~]# service cloudera-scm-server start & systemctl start cloudera-scm-server.service
// 配置agent 所有节点,node11,node12,node13 [root@node11 ~]# cp /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent [root@node11 ~]# chkconfig --add cloudera-scm-agent [root@node11 ~]# chkconfig cloudera-scm-agent on [root@node11 ~]# vi /etc/init.d/cloudera-scm-agent CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default} 修改为 CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cm-5.15.0/etc/default} 添加:export JAVA_HOME=/usr/local/java/jdk1.8 #你的 java 安装目录 [root@node11 ~]# service cloudera-scm-agent start & systemctl start cloudera-scm-agent.service
CentOS 7 下 CDH 搭建 Hadoop 集群

四、CDH5 安装 

CentOS 7 下 CDH 搭建 Hadoop 集群

下一步, 选择免费版本

CentOS 7 下 CDH 搭建 Hadoop 集群

继续, 下一步, 直到如下界面, 可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,这里我选择全部节点,继续。

CentOS 7 下 CDH 搭建 Hadoop 集群

选择自己下载的 CDH 版本, 点击继续

CentOS 7 下 CDH 搭建 Hadoop 集群

接下来是安装 Parcel, 服务器检查,

CentOS 7 下 CDH 搭建 Hadoop 集群

更改交换空间: 

echo 10 > /proc/sys/vm/swappiness

如下禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。以下主机将受到影响: 

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

CentOS 7 下 CDH 搭建 Hadoop 集群

重新运行检测,

CentOS 7 下 CDH 搭建 Hadoop 集群

全部完成, 点击完成, 这里选择自定义安装

CentOS 7 下 CDH 搭建 Hadoop 集群

服务配置,一般情况下保持默认就可以了,也可以自己手动根据节点情况进行分配,点击继续

CentOS 7 下 CDH 搭建 Hadoop 集群

测试如下数据库连接

CentOS 7 下 CDH 搭建 Hadoop 集群

这里启动 hive 报错找不到 mysql 连接驱动包, 靠备一份  mysql-connector-java.jar   到    /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hive/lib/ 下面

CentOS 7 下 CDH 搭建 Hadoop 集群

点击继续, 默认集群设置, 直到安装成功. 

CentOS 7 下 CDH 搭建 Hadoop 集群

更多 Hadoop 相关信息见Hadoop 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6105字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中