内容简介:官方文档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。Cl
官方文档 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了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Golang入门:从安装、部署以及GoLand的安装开始
- Win2016上安装SFB2015先决条件安装失败:RewriteModule
- mac:Go安装和配置+GoLand安装和使用之完整教程
- Pulsar本地单机(伪)集群 (裸机安装与docker方式安装) 2.2.0
- 如何将Rancher 2.1.x 从单节点安装迁移到高可用安装
- (教科书式教程!)在VMware Workstation 14 上安装CentOS 7 【送安装包】
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
现代操作系统(原书第4版)
[荷] Andrew S. Tanenbaum、[荷] Herbert Bos / 陈向群、马洪兵 等 / 机械工业出版社 / 2017-7 / 89.00
Andrew S. Tanenbaum教授编写的教材《现代操作系统》现在已经是第4版了。第4版在保持原有特色的基础上,又增添了许多新的内容,反映了当代操作系统的发展与动向,并不断地与时俱进。 对比第3版,第4版有很多变化。一些是教材中多处可见的细微变化,一些是就某一功能或机制增加了对最新技术的介绍,如增加了futex同步原语、读–复制–更新(Read-Copy-Update)机制以及6级RA......一起来看看 《现代操作系统(原书第4版)》 这本书的介绍吧!