CentOS7下完全离线安装CDH6集群

文件下载

首先一些安装CDH6集群的必须文件要先在外网环境先下载好。

Cloudera Manager 6.0.1

CM6 RPM:https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/
需要下载该链接下的所有RPM文件,由于jdk1.8我在环境准备部分已经手动安装了,所以可以不用下载RPMS/x86_64/目录下的jdk包oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm,但是其他4个rpm包一定要下载,保存到cloudera-repos目录下。

ASC文件:https://archive.cloudera.com/cm6/6.0.1/allkeys.asc
同时还需要下载一个asc文件,同样保存到cloudera-repos目录下:

  1. /upload/cloudera-repos/
  2. ├── allkeys.asc
  3. ├── cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
  4. ├── cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
  5. ├── cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
  6. └── cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
  7.  
  8. 0 directories, 4 files

MySQL JDBC驱动

要求使用5.1.26以上版本的jdbc驱动,可点击这里直接下载mysql-connector-java-5.1.47.tar.gz

CDH 6.0.1

CDH6 Parcels:https://archive.cloudera.com/cdh6/6.0.1/parcels/
需要下载CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcelmanifest.json这两个文件

配置Cloudera Manager yum库

注意:不要尝试使用FTP搭建CM的YUM库!

首先安装httpdcreaterepo
yum -y install httpd createrepo
启动httpd服务并设置开机自启动:
systemctl start httpd
systemctl enable httpd
然后进入到前面准备好的存放Cloudera Manager RPM包的目录cloudera-repos下:
cd /upload/cloudera-repos/
生成RPM元数据:
createrepo .

  1. [root@cdh601 cloudera-repos]# createrepo .
  2. Spawning worker 0 with 2 pkgs
  3. Spawning worker 1 with 2 pkgs
  4. Workers Finished
  5. Saving Primary metadata
  6. Saving file lists metadata
  7. Saving other metadata
  8. Generating sqlite DBs
  9. Sqlite DBs complete

然后将cloudera-repos目录移动到httpd的html目录下:
mv cloudera-repos /var/www/html/
确保可以通过浏览器查看到这些RPM包:
img
接着在Cloudera Manager Server主机上创建cm6的repo文件(要把哪个节点作为Cloudera Manager Server节点,就在这个节点上创建repo文件):
cd /etc/yum.repos.d
vim cloudera-manager.repo
添加如下内容:

  1. [cloudera-manager]
  2. name=Cloudera Manager 6.0.1
  3. baseurl=http://cdh601/cloudera-repos/
  4. gpgcheck=0
  5. enabled=1

保存,退出,然后执行yum clean all && yum makecache命令:
img

安装Cloudera Manager Server

这一步只需要在CM Server节点上操作。
执行下面的命令:
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
将会需要很多依赖包,所以说还是有必要搭一个局域网内yum源的:
img

配置本地Parcel存储库

Cloudera Manager Server安装完成后,进入到本地Parcel存储库目录:
cd /opt/cloudera/parcel-repo
将第一部分下载的CDH Parcel文件(CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcelmanifest.json)上传至该目录下,然后执行命令生成sha文件:
sha1sum CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel | awk '{ print $1 }' > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
然后执行下面的命令修改文件所有者:
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
最终/opt/cloudera/parcel-repo目录内容如下:
img

安装数据库

MySQL的安装在环境准备部分中已经有说明,这里就跳过MySQL安装了。

数据库配置

CDH官方给的有一份推荐的MySQL的配置内容:

  1. [mysqld]
  2. datadir=/var/lib/mysql
  3. socket=/var/lib/mysql/mysql.sock
  4. transaction-isolation = READ-COMMITTED
  5. # Disabling symbolic-links is recommended to prevent assorted security risks;
  6. # to do so, uncomment this line:
  7. symbolic-links = 0
  8.  
  9. key_buffer_size = 32M
  10. max_allowed_packet = 32M
  11. thread_stack = 256K
  12. thread_cache_size = 64
  13. query_cache_limit = 8M
  14. query_cache_size = 64M
  15. query_cache_type = 1
  16.  
  17. max_connections = 550
  18. #expire_logs_days = 10
  19. #max_binlog_size = 100M
  20.  
  21. #log_bin should be on a disk with enough free space.
  22. #Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
  23. #system and chown the specified folder to the mysql user.
  24. log_bin=/var/lib/mysql/mysql_binary_log
  25.  
  26. #In later versions of MySQL, if you enable the binary log and do not set
  27. #a server_id, MySQL will not start. The server_id must be unique within
  28. #the replicating group.
  29. server_id=1
  30.  
  31. binlog_format = mixed
  32.  
  33. read_buffer_size = 2M
  34. read_rnd_buffer_size = 16M
  35. sort_buffer_size = 8M
  36. join_buffer_size = 8M
  37.  
  38. # InnoDB settings
  39. innodb_file_per_table = 1
  40. innodb_flush_log_at_trx_commit = 2
  41. innodb_log_buffer_size = 64M
  42. innodb_buffer_pool_size = 4G
  43. innodb_thread_concurrency = 8
  44. innodb_flush_method = O_DIRECT
  45. innodb_log_file_size = 512M
  46.  
  47. [mysqld_safe]
  48. log-error=/var/log/mysqld.log
  49. pid-file=/var/run/mysqld/mysqld.pid
  50.  
  51. sql_mode=STRICT_ALL_TABLES

配置mysql jdbc驱动

从前面下载好的mysql-connector-java-5.1.47.tar.gz包中解压出mysql-connector-java-5.1.47-bin.jar文件,将mysql-connector-java-5.1.47-bin.jar文件上传至CM Server节点上的/usr/share/java/目录下并重命名为mysql-connector-java.jar(如果/usr/share/java/目录不存在,需要手动创建):
tar zxvf mysql-connector-java-5.1.47.tar.gz
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

创建CDH所需要的数据库

根据所需要安装的服务参照下表创建对应的数据库以及数据库用户,数据库必须使用utf8编码,创建数据库时要记录好用户名及对应密码:

服务名数据库名用户名
Cloudera Manager Serverscmscm
Activity Monitoramonamon
Reports Managerrmanrman
Huehuehue
Hive Metastore Servermetastorehive
Sentry Serversentrysentry
Cloudera Navigator Audit Servernavnav
Cloudera Navigator Metadata Servernavmsnavms
Oozieoozieoozie

我这里就先创建4个数据库及对应用户:

  1. mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  2. Query OK, 1 row affected (0.11 sec)
  3.  
  4. mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  5. Query OK, 1 row affected (0.00 sec)
  6.  
  7. mysql> CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  8. Query OK, 1 row affected (0.00 sec)
  9.  
  10. mysql> CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  11. Query OK, 1 row affected (0.00 sec)
  12.  
  13. mysql> GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
  14. Query OK, 0 rows affected, 1 warning (0.16 sec)
  15.  
  16. mysql> GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
  17. Query OK, 0 rows affected, 1 warning (0.00 sec)
  18.  
  19. mysql> GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
  20. Query OK, 0 rows affected, 1 warning (0.00 sec)
  21.  
  22. mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive';
  23. Query OK, 0 rows affected, 1 warning (0.00 sec)
  24.  
  25. mysql> FLUSH PRIVILEGES;
  26. Query OK, 0 rows affected (0.00 sec)

查看授权是否正确:

  1. mysql> SHOW GRANTS FOR 'scm'@'%';
  2. +----------------------------------------------+
  3. | Grants for scm@% |
  4. +----------------------------------------------+
  5. | GRANT USAGE ON *.* TO 'scm'@'%' |
  6. | GRANT ALL PRIVILEGES ON `scm`.* TO 'scm'@'%' |
  7. +----------------------------------------------+
  8. 2 rows in set (0.00 sec)
  9.  
  10. mysql> SHOW GRANTS FOR 'amon'@'%';
  11. +------------------------------------------------+
  12. | Grants for amon@% |
  13. +------------------------------------------------+
  14. | GRANT USAGE ON *.* TO 'amon'@'%' |
  15. | GRANT ALL PRIVILEGES ON `amon`.* TO 'amon'@'%' |
  16. +------------------------------------------------+
  17. 2 rows in set (0.00 sec)
  18.  
  19. mysql> SHOW GRANTS FOR 'rman'@'%';
  20. +------------------------------------------------+
  21. | Grants for rman@% |
  22. +------------------------------------------------+
  23. | GRANT USAGE ON *.* TO 'rman'@'%' |
  24. | GRANT ALL PRIVILEGES ON `rman`.* TO 'rman'@'%' |
  25. +------------------------------------------------+
  26. 2 rows in set (0.00 sec)
  27.  
  28. mysql> SHOW GRANTS FOR 'hive'@'%';
  29. +----------------------------------------------------------+
  30. | Grants for metastore@% |
  31. +----------------------------------------------------------+
  32. | GRANT USAGE ON *.* TO 'hive'@'%' |
  33. | GRANT ALL PRIVILEGES ON `metastore`.* TO 'hive'@'%' |
  34. +----------------------------------------------------------+
  35. 2 rows in set (0.00 sec)

设置Cloudera Manager 数据库

Cloudera Manager Server包含一个配置数据库的脚本。

  • mysql数据库与CM Server是同一台主机
    执行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
    img
  • mysql数据库与CM Server不在同一台主机上
    执行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h <mysql-host-ip> --scm-host <cm-server-ip> scm scm

安装CDH节点

启动Cloudera Manager Server服务

systemctl start cloudera-scm-server
然后等待Cloudera Manager Server启动,可能需要稍等一会儿,可以通过命令tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log去监控服务启动状态。

当看到INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.日志打印出来后,说明服务启动成功,可以通过浏览器访问Cloudera Manager WEB界面了。

访问Cloudera Manager WEB界面

打开浏览器,访问地址:http://<server_host>:7180,默认账号和密码都为admin:
img

欢迎页面

首先是Cloudera Manager的欢迎页面,点击页面右下角的【继续】按钮进行下一步:
img

接受条款

勾选接受条款,点击【继续】进行下一步:
img

版本选择

这里我就选择免费版了:
img

第二个欢迎界面

选择版本以后会出现第二个欢迎界面,不过这个是安装集群的欢迎页:
img

选择主机

这一步是要搜索并选择用于安装CDH集群的主机,在主机名称后面的输入框中输入各个节点的hostname,中间使用英文逗号分隔开,然后点击搜索,在结果列表中勾选要安装CDH的节点即可:
img

指定存储库

Cloudera Manager Agent

这里选择自定义,填写上面使用httpd搭建好的Cloudera Manager YUM 库URL:
img

CDH and other software

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

JDK安装选项

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

SSH登录配置

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

安装Agent

到这一步会自动进行节点Agent的安装,稍等一会儿,即可安装完成:
img
img

安装Parcels

这一步同样是自动安装,分配步骤的速度主要取决于网络环境,耐心等待即可(我的3台虚拟机性能实在是太差了,这一步等了好久):
img
img

主机检查

等待检查完成即可:
img

安装CDH集群

选择服务类型

这里我选择自定义服务,HDFS,Hive,Yarn:
img

角色分配

CDH会自动给出一个角色分配,如果觉得不合理,我们可以手动调整一下,注意角色分配均衡:
img

数据库设置

因为我选择的服务中只有Hive需要数据库,故这里只需要配置Hive的metastore数据库。注意要将mysql的jdbc驱动放到hive metastore主机的/usr/share/java/目录下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值