使用CM安装部署CDH集群的一个总结

卸载  cdh

systemctl stop cloudera-scm-server
systemctl stop cloudera-scm-agent
yum -y remove 'cloudera-manager-*'
yum -y remove 'cloudera-manager-*'
yum clean allumount cm_processesumount /var/run/cloudera-scm-agent/process
rm -rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/cloudera* /var/log/cloudera* /var/run/cloudera*
rm -rf /tmp/.scmpreparenode.lock
rm -rf /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/lib/oozie /var/lib/solr /var/lib/sqoop* /var/lib/zookeeper
rm -rf datadrivepath/dfs datadrivepath/mapred datadrivepath/yarn
rm -rf /var/lib/hadoop-* /var/lib/impala /var/lib/solr /var/lib/zookeeper /var/lib/hue /var/lib/oozie  /var/lib/pgsql  /var/lib/sqoop  /data/dfs/  /data/impala/ /data/yarn/  /dfs/ /impala/ /yarn/  /var/run/hadoop-*/ /var/run/hdfs-*/ /usr/bin/hadoop* /usr/bin/zookeeper* /usr/bin/hbase* /usr/bin/hive* /usr/bin/hdfs /usr/bin/mapred /usr/bin/yarn /usr/bin/sqoop* /usr/bin/oozie /etc/hadoop* /etc/zookeeper* /etc/hive* /etc/hue /etc/impala /etc/sqoop* /etc/oozie /etc/hbase* /etc/hcatalog
 

首先

两个实现CM的安装包概念: cloudera -scm-server, 与 cloudera -scm-agent;

cloudera -scm-server决定了web部署页面

在页面中,选中主机,一步一步下去,自动安装cloudera -scm-agent 

 

 

CDH 是Hadoop的一个版本。又是一个集群,意味着要使用多台机器 centos 7( 以下使用的linux版本) 

Hadoop 以前接触的是 每台机器上都要单独安装jdk, hadoop,然后修改每个 配置文件等等,namenode 格式化等达到集群的目的。

那么 CDH 的话, 引入了一个 CM (cloudera manager) 好比一个图形界面,极大的简化集群的搭建,不再需要手动修改core-xml等配置文件了,也千万不能手动修改

只需要,确定好一个机器为(CM) 并在CM上先安装了 mysql +jdk,并且配置好与其他机器的ssh免密。

那么打开这个CM的图形化界面,自动搜索到其他机器,然后一个按钮,勾选的方式,统一安装 hdfs,hive等等组件,并且配置谁为datanode,谁为namenode 等等

 

jdk, hdfs,hive,等等组件的安装包 一般被放在了一起parcel,放在一个服务器上保证集群内装的软件一致。有了它,才可以在创建集群时, 安装时提供一个软件列表(也就是这个parcel包含的东西)供我们自己选择下载。

 

 

开始第一步 修改所有节点

以下设置如无声明,即默认每个节点都需要进行的配置

关闭防火墙

可百度其他方法,firewalld 等命令

[root@master ~]#  chkconfig iptables off

修改Host

方便互相访问

其中,系统Hostname、网络Host配置、应完全对应,所有节点的Hosts文件中节点相关的信息应完全相等

# 查看Hostname

[root@master ~]#  uname -a

Linux master 3.10.0-862.9.1.el7.x86_64 #1 SMP Mon Jul 16 16:29:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

[root@master ~]#  hostname

master

# 修改Hostname可以直接修改/etc/hostname文件,但建议使用如下专有命令修改

[root@master ~]#  hostnamectl set-hostname NEW-HOSTNAME

修改Hosts信息

[root@master ~]#  vim /etc/hosts

[root@master ~]#  cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

# CHD-Node

10.20.202.85    cdhmgtuat01v.gafc.com

10.20.202.86    cdhmgtuat02v.gafc.com

10.20.202.87    cdhnoduat01v.gafc.com

10.20.202.88    cdhnoduat02v.gafc.com

10.20.202.89    cdhnoduat03v.gafc.com

10.20.202.90    cdhdbmuat01v.gafc.com

修改Host直接编辑/etc/hosts文件即可。建议在一个节点编辑好后使用scp命令传送到各个节点,保证配置的一致性。

注意:/etc/hosts只配置长域名,配置多个域名会导致在CM控制节点的时候无法连接,HOSTNAME使用短域名并与长域名对应即可

建议为本地Win也配置该Hosts

 

禁用IPV6(非必要)

HADOOP是个仅支持 IPv4 的组件,系统打开 IPv6 在部分情况下会出现网络堆栈错误,且CDH集群建设在内网,网络地址资源充裕。

> vim /etc/sysctl.conf

# 添加如下配置

net.ipv6.conf.all.disable_ipv6 = 1

 

# 使配置生效

> sysctl -p /etc/sysctl.conf

 

# 检查 IPv6 地址是否还存在

> ip addr

关闭防火墙及系统安全

CDH需要的用到的端口较多,要在群集中的每个主机上禁用防火墙

# 备份当前防火墙配置

> iptables-save > ~/firewall.rules

# 禁用防火墙

> systemctl disable firewalld

> systemctl stop firewalld

# 查看 SELinux 状态

> getenforce

Enforcing

 

# 立即关闭

> setenforce 0

为集群配置公钥私钥

我的另外一个文章  https://blog.csdn.net/Axel_Fran/article/details/114327495

添加yum 源

指向我们的那个有 cloudera-scm-server,agent, jdk 软件库;

 

开始第二步 操作在cm主节点

1.

 --安装 jdk ,配置profile文件,再source 一下。 jdk 安装结束

--下载这个 jdbc-mysql 的一个jar包, 取一个 添加到 /usr/share/java/ 路径下

注意这个jdbc 也要传给其他机器,同样位置

--

 

2.1安装Cloudera Manager主节点(又名CM)服务程序,(其实就是将这台机器变成 了 CM)

安装Cloudera Manager Server 三个包

[root@h1 cloudera-scm-server]# yum search cloudera

=========================== N/S matched: cloudera ============================
cloudera-manager-agent.x86_64 : The Cloudera Manager Agent
cloudera-manager-server.x86_64 : The Cloudera Manager Server
cloudera-manager-server-db-2.x86_64 : Embedded database for the Cloudera
                                    : Manager Server
cloudera-manager-daemons.x86_64 : Provides daemons for monitoring Hadoop and
                                : related tools.

 

yum install (以上三个)

顺序  cloudera-manager-server.x86_64 第一 ,cloudera-manager-server-db-2.x86_64 第二

到这就够了。虽然命令行安装两个,实则3个。agent 那个暂时不需要,等待server 装好以后再说。

 

2.2 安装mysql 5.7

https://blog.csdn.net/Axel_Fran/article/details/111413462?spm=1001.2014.3001.5501

直到修改完root密码。退出

修改my.cnf。复制下面内容,复制到他的位置,覆盖

如下是官方配置文件示例

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

transaction-isolation = READ-COMMITTED

# Disabling symbolic-links is recommended to prevent assorted security risks;

# to do so, uncomment this line:

symbolic-links = 0

 

key_buffer_size = 32M

max_allowed_packet = 32M

thread_stack = 256K

thread_cache_size = 64

query_cache_limit = 8M

query_cache_size = 64M

query_cache_type = 1

 

max_connections = 550

#expire_logs_days = 10

#max_binlog_size = 100M

 

#log_bin should be on a disk with enough free space.

#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your

#system and chown the specified folder to the mysql user.

log_bin=/var/lib/mysql/mysql_binary_log

 

#In later versions of MySQL, if you enable the binary log and do not set

#a server_id, MySQL will not start. The server_id must be unique within

#the replicating group.

server_id=1

 

binlog_format = mixed

 

read_buffer_size = 2M

read_rnd_buffer_size = 16M

sort_buffer_size = 8M

join_buffer_size = 8M

 

# InnoDB settings

innodb_file_per_table = 1

innodb_flush_log_at_trx_commit  = 2

innodb_log_buffer_size = 64M

innodb_buffer_pool_size = 4G

innodb_thread_concurrency = 8

innodb_flush_method = O_DIRECT

innodb_log_file_size = 512M

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

sql_mode=STRICT_ALL_TABLES

将数据库添加到启动项,并启动数据库

> systemctl enable mysqld

> systemctl start mysqld

 

添加JDBC

 

下载 JDBC 并放入指定目录

> wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

tar -zxvf mysql-connector-java-5.1.46.tar.gz

mkdir -p /usr/share/java/

mv mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

数据库建表

使用拥有创建数据库和授权权限的账户登录数据库,执行如下SQL语句建库赋权

另外下面的密码只有三位, mysql 有规则。

mysql> show variables like '%validate_p%';

set注意 set global validate_password_number_count=0,就基本可以支持三位字母的了。

create database scm  default character set utf8;\

CREATE USER 'scm'@'%' IDENTIFIED BY 'scm';\

GRANT ALL PRIVILEGES ON scm. * TO 'scm'@'%';\

FLUSH PRIVILEGES;\

create database amon  default character set utf8;\

CREATE USER 'amon'@'%' IDENTIFIED BY 'amon';\

GRANT ALL PRIVILEGES ON amon. * TO 'amon'@'%';\

FLUSH PRIVILEGES;\

create database rman  default character set utf8;\

CREATE USER 'rman'@'%' IDENTIFIED BY 'rman';\

GRANT ALL PRIVILEGES ON rman. * TO 'rman'@'%';\

FLUSH PRIVILEGES;\

create database hue  default character set utf8;\

CREATE USER 'hue'@'%' IDENTIFIED BY 'hue';\

GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%';\

FLUSH PRIVILEGES;\

create database metastore  default character set utf8;\

CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';\

GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%';\

FLUSH PRIVILEGES;\

create database sentry  default character set utf8;\

CREATE USER 'sentry'@'%' IDENTIFIED BY 'sentry';\

GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';\

FLUSH PRIVILEGES;\

create database nav  default character set utf8;\

CREATE USER 'nav'@'%' IDENTIFIED BY 'nav';\

GRANT ALL PRIVILEGES ON nav. * TO 'nav'@'%';\

FLUSH PRIVILEGES;\

create database navms  default character set utf8;\

CREATE USER 'navms'@'%' IDENTIFIED BY 'navms';\

GRANT ALL PRIVILEGES ON navms. * TO 'navms'@'%';\

FLUSH PRIVILEGES;\

create database oozie  default character set utf8;\

CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';\

GRANT ALL PRIVILEGES ON oozie. * TO 'oozie'@'%';\

FLUSH PRIVILEGES;\

在主节点server 绑定mysql

方式一,使用命令,会生成一个配置文件

/opt/cloudera/cm/schema/scm_prepare_database.sh -h localhost mysql scm scm scm #(dbname, dbuser, user_password)

不行就手敲一遍

显示成功

[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

方式二直接修改配置文件

修改cloudera-scm-server db配置

>vim /etc/cloudera-scm-server/db.properties

修改如下:

# The database type

# Currently 'mysql', 'postgresql' and 'oracle' are valid databases.

com.cloudera.cmf.db.type=mysql

 

# The database host

# If a non standard port is needed, use 'hostname:port'

#com.cloudera.cmf.db.host=localhost

com.cloudera.cmf.db.host=10.20.202.90:3306

 

# The database name

#com.cloudera.cmf.db.name=cmf

com.cloudera.cmf.db.name=scm

 

# The database user

#com.cloudera.cmf.db.user=cmf

com.cloudera.cmf.db.user=scm

 

# The database user's password

#com.cloudera.cmf.db.password=

com.cloudera.cmf.db.password=scm

 

# The db setup type

# After fresh install it is set to INIT

# and will be changed post config.

# If scm-server uses Embedded DB then it is set to EMBEDDED

# If scm-server uses External DB then it is set to EXTERNAL

com.cloudera.cmf.db.setupType=EXTERNAL

启动服务

在CM节点依次启动主程序

> systemctl restart cloudera-scm-server

#查看运行日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

# 当日志出现如下信息,UI启动成功,可以登录后台管理界面 要等一会

INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

CM管理整个CDH,不参与集群的具体任务。

到这CM 就安装好了,登录如下的网站,创建集群,为集群添加机器host(也就是cdh)。所以不要自己在准备好的机器去安装 agent

配置服务

上一步执行成功后,CM服务启动,通过web界面访问CM后台,默认端口号为7180

http://你的ip:7180/

默认账号 : admin

默认密码 : admin

 

第三 测试结果

netstat -nltp

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:7180            0.0.0.0:*               LISTEN      23999/java          
tcp        0      0 0.0.0.0:7182            0.0.0.0:*               LISTEN      23999/java   

有7180 就对了

 

 

 

以后的安装CDH 出现问题

 

各种问题,想彻底全部卸载重来,千万不要忘记删除mysql里的那些database,

show databases;

drop database hue; 等。 负责卸载了没用,集群的信息都保存在数据库了。

百度如何卸载

备份数据,要卸载干净。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值