未加星标

[原]CDH6安装

字体大小 | |
[数据库(综合) 所属分类 数据库(综合) | 发布者 店小二04 | 时间 2018 | 作者 红领巾 ] 0人收藏点击收藏

官方文档 https://www.cloudera.com/documentation/enterprise/6/6.0/topics/installation.html

安装之前

JDK兼容性在不同的Cloudera Manager和CDH版本中也有所不同。某些版本的CDH 5与JDK 7和JDK 8兼容。在这种情况下,请确保所有服务都部署在同一主要版本上。例如,在JDK 8上运行Sqoop时,不应在JDK 7上运行Hadoop。此外,由于Cloudera不支持混合环境,因此群集中的所有节点都必须运行相同的主要JDK版本。Cloudera仅支持Oracle提供的JDK 。对于Cloudera Manager和CDH 6.0.0及更高版本,仅支持Oracle JDK 8。

Cloudera Enterprise 6需要python 2.7或更高版本(但与Python 3.0或更高版本不兼容)

设置hostname

每个主机的规范名称 / etc / hosts文件 必须是FQDN( 例如myhost-1.example.com ),而不是不合格的主机名(例如 为myhost-1)。

[root@bigdata .ssh]# vim /etc/hosts //设置 192.168.75.128 master.test.com 所有主机都要写上 [root@bigdata .ssh]# vim /etc/sysconfig/network //设置HOSTNAME= master.test.com [root@bigdata .ssh]# hostnamectl set-hostname master.test.com [root@bigdata .ssh]# hostname master.test.com [root@bigdata .ssh]# hostname

设置ssh无密码登陆

在主节点上执行 ssh-keygen -t rsa 一路回车,生成无密码的密钥对。将公钥添加到认证文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

设置authorized_keys的访问权限

chmod 600 ~/.ssh/authorized_keys。

scp文件到所有datenode节点:

scp ~/.ssh/authorized_keys root@slave:~/.ssh/ 禁用防火墙和selinux(所有会话)

这两个东西都可以在安装并部署CDH后修改回来。

firewall-cmd --state //查看防火墙状态 systemctl stop firewalld //关闭 Systemctl disable firewalld //禁止开机启动 getenforce 检查SELinux状态: setenforce 0 (临时修改) 修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效) 启用NTP

CDH要求您在群集中的每台计算机上配置网络时间协议(NTP)服务。要启动NTP并将其配置为在重新引导时自动运行,请在群集中的每个节点上执行以下步骤。

yum install ntp

编辑/etc/ntp.conf文件以添加NTP服务器,如以下示例所示

server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org 启动服务: systemctl start ntpd
配置开机启动: systemctl enable ntpd
同步节点: ntpdate -u 0.pool.ntp.org
同步系统时钟(以防止同步问题): hwclock --systohc

在Hue主机上安装Python 2.7

centos7默认python2.7

查看版本 python --version

安装Cloudera Manager和CDH

配置存储库(所有节点)

下载cloudera-manager.repo,可以在 Cloudera Manager 6版本和下载信息 中查看cloudera-manager的版本 sudo wget <repo_file_url> -P /etc/yum.repos.d/

wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/

导入存储库签名GPG密钥:

rpm --import https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPM-GPG-KEY-cloudera

安装jdk

要安装Oracle JDK,可以使用ClouderaManager安装Cloudera提供的版本,也可以直接安装Oracle的其他版本。

要求:

JDK必须是64位。不要使用32位JDK。 已安装的JDK必须是受支持的版本 在相同版本的JDK的Oracle必须安装在每个群集主机上 yum install oracle-j2sdk1.8 安装Cloudera Manager Server

在Cloudera Manager Server主机上,键入以下命令以安装Cloudera Manager软件包

sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

启用Auto-TLS(推荐) 注意:官网这里写的推荐,不过最好先不打开,否则后面安装会遇到不好解决的问题,我下面有遇到的问题就是因为这个造成的,最后卸载了cloudera-manager,又从新安装的,不开启Auto-TLS成功的

Auto-TLS极大地简化了在群集上启用和管理TLS加密的过程。它可以自动创建内部证书颁发机构(CA)并在所有群集主机上部署证书。它还可以自动分发现有证书,例如由公共CA签名的证书。

如果要开启Auto-TLS,Auto-TLS支持两种选择:

使用Cloudera Manager生成内部证书颁发机构和相应的证书 使用现有的证书颁发机构和相应的证书

这里使用第一种更多详见 Auto-TLS为Cloudera Manager和CDH配置TLS加密

仅新安装支持Auto-TLS。在将任何主机添加到Cloudera Manager之前,必须启用Auto-TLS。要使用嵌入式Cloudera Manager CA启用自动TLS,请运行以下命令:

JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera /opt/cloudera/cm-agent/bin/certmanager setup --configure-services

注意:该certmanager实用程序包含在Cloudera Manager Agent中,但不包含在Cloudera Manager Server中。如果你看到有关的错误certmanager 命令未找到,请确保已安装cloudera-manager-agent

安装和配置数据库

Cloudera Manager使用各种数据库和数据存储来存储有关Cloudera Manager配置的信息,以及诸如系统运行状况或任务进度之类的信息。

虽然您可以在单个环境中部署不同类型的数据库,但这样做会产生意外的复杂情况。Cloudera建议为所有Cloudera数据库选择一个受支持的数据库提供程序。

Cloudera建议在不同于服务的主机上安装数据库。将数据库与服务分离可以帮助隔离一个或另一个中的故障或资源争用的潜在影响。它还可以简化具有专用数据库管理员的组织的管理。

我们可以将自己的PostgreSQL,MariaDB,mysql或Oracle数据库用于Cloudera Manager Server和其他使用数据库的服务。有关规划,管理和备份Cloudera Manager数据存储的信息

安装mysql 执行下面步骤

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm sudo yum update sudo yum install mysql-server sudo systemctl start mysqld

官方推荐mysql的配置 vim /etc/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

因为我们使用的MariaDB,所以安装MariaDB 执行下面步骤

sudo yum install mariadb-server

官方推荐配置MariaDB vim /etc/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 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd key_buffer = 16M 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 MariaDB, if you enable the binary log and do not set #a server_id, MariaDB 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/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d 为MariaDB安装MySQL JDBC驱动程序

重要提示:请勿使用yum安装 命令安装MySQL驱动程序包,因为它安装了OpenJDK,然后使用Linux 备择方案 命令将系统JDK设置为OpenJDK。

注意: Cloudera建议仅使用JDBC驱动程序的5.1版。

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/ cd mysql-connector-java-5.1.46 cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar 为Cloudera软件创建数据库

为需要数据库的组件创建数据库和服务帐户Cloudera Manager Server,Hue,Oozie,Hive Metastore Server 等等都需要用到数据库

登录数据库 mysql -u root -p

需要建的数据库有 scm、amon、rman、hue、metastore、sentry、nav、navms、oozie

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123'; CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY ' amon@123'; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123'; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123'; CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123'; CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123'; CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123'; CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123'; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';

设置Cloudera Manager数据库

运行/opt/cloudera/cm/schema/scm_prepare_database.sh

[root@master schema]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm Enter SCM password: JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera Verifying that we can write to /etc/cloudera-scm-server Creating SCM configuration file in /etc/cloudera-scm-server Executing: /usr/java/jdk1.8.0_141-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db. [ main] DbCommandExecutor INFO Successfully connected to database. All done, your SCM database is configured correctly!

如果不在一台主机上运行 /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h master.test.com scm scm

安装CDH和其他软件

启动Cloudera Manager Server:

systemctl start cloudera-scm-server

第一次启动的时候它会去scm库中创建它需要的一些表

查看启动日志

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

出错(建表出错)

2018-09-11 19:06:30,890 FATAL main:org.hsqldb.cmdline.SqlFile: SQL Error at 'UTF-8' line 57: "alter table ROLE_CONFIG_GROUPS drop column REVISION_ID" Key column 'REVISION_ID' doesn't exist in table 2018-09-11 19:06:30,890 FATAL main:org.hsqldb.cmdline.SqlFile: Rolling back SQL transaction. 2018-09-11 19:06:30,892 ERROR main:com.cloudera.enterprise.dbutil.SqlFileRunner: Exception while executing ddl scripts. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Key column 'REVISION_ID' doesn't exist in table at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) # 添加83 84两行内容 vim /opt/cloudera/cm/schema/mysql/05003_cmf_schema.mysql.ddl 80 alter table CONFIGS 81 drop column REVISION_ID; 82 83 ALTER TABLE ROLE_CONFIG_GROUPS DROP INDEX IDX_UNIQUE_ROLE_CONFIG_GROUP; 84 ALTER TABLE ROLE_CONFIG_GROUPS DROP INDEX IDX_ROLE_CONFIG_GROUP_CONFIG_REVISION; 85 86 alter table ROLE_CONFIG_GROUPS 87 drop column REVISION_ID;

注意:上面的问题根源是数据库版本的问题,可以查看其支持的版本 Cloudera Manager支持的数据库的版本 由于我用的是mariadb,10.2.19版本,虽然上面的问题解决了但是可能还有别的问题发生,所以最好的解决方法就是讲数据库改成其支持的版本 5.5或者10.0。

如果发生错误,去scm数据库中删除所有表从新执行启动命令 systemctl start cloudera-scm-server

最后日志出现下面的一句说明启动成功

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

登录web界面 http://<server_host>:7180

比如 : http://master:7180

(1)打开连接之后会进入登录页面 用户名 admin 密码 admin 就可以登录了。登录之后进入欢迎页面

(2)“欢迎”页面提供了Cloudera Manager的简要概述,以及指向要安装的版本的发行说明的链接。单击“ 继续”继续安装。

(3)然后进入“接受许可” 页面提供最终用户许可条款和条件 同意后点击继续

(4)在Select Edition页面上,您可以选择要安装的Cloudera Manager版本 选择免费版 点击继续

(5)添加群集 - 安装的欢迎页面 点击继续

(6)指定主机 添加运行CDH的主机名字 比如输入master.text.com ,点击搜索就能找到对应的主机,可以通过用逗号,分号,制表符或空格分隔多个地址,验证显示的主机数是否与要安装服务的主机数相匹配 如果匹配点击继续

(7)选择要安装的CDH版本 注意: Cloudera Manager仅显示它可以支持的CDH版本。如果可用的CDH版本对于Cloudera Manager版本而言太新,则不会显示。

如果出现:对于此 Cloudera Manager 版本 (6.0.1) 太新的 CDH 版本不会显示。请单击“ 更多选项”按钮以添加版本的存储库URL。 CDH 6下载信息 ,添加存储库后,单击“ 保存更改”并等待几秒钟以显示版本,如果要安装CDH 6,请不要选择KAFKA,KUDU或SPARK包裹,因为它们包含在CDH 6中。

(8)接受JDK许可 ,要允许Cloudera Manager在群集主机上自动安装Oracle JDK,请阅读JDK许可证,如果接受这些条款,请选中标记为安装Oracle Java SE Development Kit(JDK)的复选框。如果您在 步骤2:安装Java Development Kit 中安装了自己的Oracle JDK版本,请不要选中此框。

(9)输入登录凭据 选择root作为根帐户

如果选择密码验证,请输入并确认密码 如果选择公钥验证,请提供所需密钥文件的密码和路径

(10)安装代理 “ 安装代理”页面显示安装进度。可以单击任何主机的“详细信息”链接以查看安装日志。如果安装停止,可以单击“ 中止安装”按钮取消安装,然后查看安装日志以解决问题。

如果在任何主机上安装失败,可以单击“ 重试失败的主机”以重试所有失败的主机,也可以单击特定主机上的“ 重试”链接。在所有主机上安装Cloudera Manager Agent后,单击“ 继续”。

遇到的错误:

第一个错:

Exhausted available authentication methods

Installation failed. Failed to authenticate.

解决:

执行命令 passwd root 会出现设置新密码 然后设置 解锁root用户 passwd -u root

然后在编辑器中打开修改/etc/ssh/sshd_config

vim /etc/ssh/sshd_config 查找并更新以下行: PermitRootLogin yes 重启ssh服务。 service restart sshd或 service sshd restart

第二个错:

安装失败。 无法接收 Agent 发出的检测信号。 请确保主机的名称已正确配置。 请确保端口 7182 可在 Cloudera Manager Server 上访问(检查防火墙规则)。 请确保正在添加的主机上的端口 9000 和 9001 空闲。 检查正在添加的主机上 /var/log/cloudera-scm-agent/ 中的代理日志(某些日志可在安装详细信息中找到)。 如果在 Cloudera Manager 中启用为代理使用 TLS 加密(管理 -> 设置 -> 安全),请确保 /etc/cloudera-scm-agent/config.ini 在正在添加的主机上有 use_tls=1。重启相应的代理,并单击此处的重试链接。

找了很多办法都不成功,最后定位到是因为一开始开始了Auto-TLS造成的。最后的解决办法是从新安装Cloudera Manager先不开启Auto-TLS 步骤如下:

service cloudera-scm-agent stop service supervisord stop systemctl stop cloudera-scm-server yum remove cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server rm /opt/cloudera/* 数据库部分:删掉scm数据库在从新创建 drop database scm.

(11)安装选中的CDH的包,时间可能有点长,安装完成后,单击“ 继续”。

(12)检查主机

使用向导设置群集

选择服务 分配角色 根据自己的实际情况分配机器的角色

建议的群集主机和角色分配

设置数据库 在这个界面设置我们前面设置的数据库的用户和密码,并测试通过,比如hive的数据库是 metastore 密码是 metastore@123 ,测试成功后点击继续

查看更改 这个界面我们可以设置一些组件的工作目录,日志目录等,可以使用默认的,也可以根据自己的喜好放到目录下面

注意:关于/solr的目录不要修改,不然后面会报错 警告 :不要将DataNode数据目录放在NAS设备上。调整NAS大小时,可以删除块副本,从而导致丢失块。

之后就可以等待集群中组件一次启动之后到达首页。

这个时候进入到HDFS页面查看其web界面,结果打不开,执行下面的命令

netstat -apn | grep 9870

可以看到域名被解析成内网ip

所以我这里的问题是,因为服务器有两块网卡,一个内网,一个外网,通过ifconfig查看可以看到内网的名字eth0,外网的名字是eth1。我们配置hostname的时候配置的是eth0

解决办法:

点击配置搜索“通配符”可以看到 NameNode Default Group,DataNode Default Group然后把它勾上

点击保存更改,然后重启HDFS,在去访问就OK啦

其他组件可以使用同样的操作。

OK到这里终于可以愉快的使用CDH6了。

本文数据库(综合)相关术语:系统安全软件

代码区博客精选文章
分页:12
转载请注明
本文标题:[原]CDH6安装
本站链接:https://www.codesec.net/view/621279.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(综合) | 评论(0) | 阅读(93)