技术标签: Cloudera Manager
CDH是Cloudera公司对整体hadoop集群环境进行监控与管理的企业级大数据管理平台。
Cloudera Manager分为:
服务器基本参数
IP |
主机名称 |
CPU |
内存 |
磁盘 |
角色 |
操作系统 |
192.168.174.111 |
hdfs01 |
8C |
128G |
3T |
server |
Centos7 x64 |
192.168.174.112 |
hdfs02 |
8C |
128G |
3T |
agent |
Centos7 x64 |
192.168.174.113 |
hdfs03 |
8C |
128G |
3T |
agent |
Centos7 x64 |
192.168.174.114 |
hdfs04 |
8C |
128G |
3T |
agent |
Centos7 x64 |
192.168.174.115 |
hdfs05 |
8C |
128G |
3T |
agent |
Centos7 x64 |
192.168.174.116 |
hdfs06 |
8C |
128G |
3T |
agent |
Centos7 x64 |
192.168.174.117 |
hdfs07 |
8C |
128G |
3T |
agent |
Centos7 x64 |
192.168.174.118 |
hdfs08 |
8C |
128G |
3T |
agent |
Centos7 x64 |
对于CDH的安装我们最好使用ROOT用户进行安装,避免一些目录以及文件夹的权限问题出现各种各样的麻烦,当然,如果想要使用其他非ROOT用户安装也可以,但是该用户一定要有sudo的NOPASSWD权限。还有就是所有相关的文件以及文件夹的所有者都要设置为该用户,单独修改的除外。
CDH软件包官方最新稳定版下载地址:http://archive.cloudera.com/cdh5/parcels/latest/
在该地址需要下载以下三个文件:
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1
manifest.json
Cloudera Manager 官方下载地址:http://archive.cloudera.com/cm5/cm/5/
在该地址只下载一个文件(该文件需要根据自己的系统进行选择):
cloudera-manager-centos7-cm5.14.1_x86_64.tar.gz
官方安装参考文档:https://www.cloudera.com/documentation/enterprise/5-14-x/topics/installation_installation.html
因为我们要搭建集群,集群之间就会有通信,服务器之间要是有通信,就要有相应的防火墙策略开放,因此我们要将防火墙关闭。以下给关闭防火墙操作命令(在root用户下进行操作):
# 检查防火墙状态
Centos6: [root@localhost ~]# service iptables status
Centos7: [root@localhost ~]# systemctl status firewalld.service
如果显示状态不是iptables: Firewall is not running.则需要关闭防火墙
# 关闭防火墙
Centos6:[root@localhost ~]# service iptables stop
Centos7:[root@localhost ~]# systemctl stop firewalld
# 永久关闭防火墙
Centos6:chkconfig iptables off
Centos7:systemctl disable firewalld.service
# 检查防火墙状态
Centos6: [root@localhost ~]# service iptables status
Centos7:[root@localhost ~]# systemctl status firewalld.service
iptables: Firewall is not running.
因为centos的所有访问权限都是有SELinux来管理的,为了避免我们安装中由于权限关系而导致的失败,我们将其关闭,以后跟根据需要进行重新管理。以下给出关闭SELinux的操作命令(在ROOT用户下进行操作):
# 查看SElinux的状态
[root@localhost ~]# /usr/sbin/sestatus –v
SELinux status: enabled
如果SELinux status参数为enabled即为开启状态,需要进行下面的关闭操作。
# 关闭SElinux
[root@localhost ~]# vim /etc/selinux/config
在文档中找到SELINUX,将SELINUX的值设置为disabled,即:
SELINUX=disabled
# 在内存中关闭SElinux
[root@localhost ~]# setenforce 0
# 检查内存中状态
[root@localhost ~]# getenforce
如果日志显示结果为disabled或者permissive,说明操作已经成功。
此步骤主要是将操作系统安装包(ISO)设置为YUM源,用来安装更多组件。在所有主机上执行(将Centos的ISO安装文件上传到/opt文件夹下)
1. 挂载操作系统ISO文件到指定目录
[root@localhost ~]# mkdir /mnt/iso
[root@localhost ~]# mount -o loop /opt/CentOS-7-x86_64-DVD-1511.iso /mnt/iso
其中CentOS-7-x86_64-DVD-1511.iso为CentOS7.2的ISO文件
2. 设置yum源repo文件
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost ~]# mkdir /opt/repo_bak;mv *.repo /opt/repo_bak
[root@localhost ~]# vi base.repo
新建的base.repo文件中添加如下代码:
[base]
name=CentOS 7
baseurl=file:///mnt/iso
gpgcheck=0
3. 刷新yum
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum -y install chkconfig bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb httpd httpd-tools unzip ntp
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl enable httpd.service #设置为开机启动
在所有要安装CDH环境的设备中设置统一时钟同步服务。如果我们有时钟服务器,那么我们需要在每一台设备上进行NTP客户端配置;如果没有,我们就将server主机作为时钟服务器,对server主机进行NTP服务器配置。其他服务器来同步这台服务器的时钟。
本示例中将按照没有时钟服务器的情况进行演示,将server主机配置为NTP服务器,其他主机配置为NTP客户端。如果有时钟服务器更简单,所有的服务器都配置为NTP客户端就好了。
对该文件的内容进行以下的修改:
1、注释掉所有的restrict开头的配置
2、找到restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap,取消注释,并将其中IP和掩码修改为真实环境IP和掩码,此行配置为允许ntp客户端连接的配置
3、找到server 0.centos.pool.ntp.org iburst,并将所有server配置进行注释
4、添加下面两行内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10
执行以下命令启动ntp服务
[root@localhost ~]# systemctl restart ntpd
启动服务后,使用ntpq -p查看服务状态,当reach达到比较大的值后(一般为17),再进行NTP客户端配置。
对该文件进行以下内容的修改:
1、注释所有restrict和server配置
2、添加下面注释,需要修改以下的IP为NTP服务器的IP(在本案例中就是server主机的IP)
server 192.168.187.5
为了避免首次同步时间比较慢,和测试一下我们是否配置正确,我们先使用下面命令手工同步一次。
[root@localhost ~]# ntpdate 192.168.187.51
[root@localhost ~]# systemctl restart ntpd
centos6:[root@localhost ~]# chkconfig ntpd on
centos7:[root@localhost ~]# systenctl enable ntpd.service
修改主机名的原因是为了方便我们记忆与管理,但这并不是主要原因,更主要的是防止hadoop的内部实现机制要通过主机名来路由到该主机的IP上,我们需要保证每一台机器的主机名不相同。
本示例中仅以第一台服务器的操作为示例,其他的服务器都是相同的操作,但需要注意的是一定要保证每一台主机的hostname不相同。(建议使用hdfs1,hdfs2,hdfs3.. . 这样的格式一次为每一台服务器命名)。
以下给出修改主机名的操作命令(在ROOT下进行操作):
Centos6:
[root@localhost ~]# vi /etc/hostname
将内容修改为新的hostname
Centos7:
[root@localhost ~]# hostnamectl set-hostname hdfs1;
[root@localhost ~]# hostname hdfs1
执行完以上的命令退出,重新登录即可。
主机名中不能使用下划线(_)。
主机名不能保护大写字符
修改HOSTS的原因主要有两点:
1、为了防止hadoop内部实现机制通过主机名来进行对主机的访问。
2、为了我们在配置过程中书写起来比较方便,看起来也一目了然。
这里要说明的是,我们配置HOSTS并不是只配置本机IP和主机的对应关系,而是我们规划中的每一台机器都要配置所有机器的IP和主机名称的对应关系。
修改HOSTS方法:
以下是修改HOSTS的操作命令(在ROOT用户下进行操作):
修改/etc/hosts文件,在文件中添加规划中的所有主机的IP和主机名的对应关系。而且每一台机器都配置。
[root@hdfs1 ~]# vi /etc/hosts
在该文件中添加以下格式的内容,该内容是我们规划中的所有主机的IP和主机名称,而且每一台机器的HOSTS中都要添加相同的内容,IP与主机名用一个TAB键隔开。
192.168.186.101 hdfs1
192.168.186.102 hdfs2
192.168.186.103 hdfs3
……
如果想要多个名称路由到同一个IP,我们只需要在后边继续添加即可,同样是使用TAB键隔开。例如:
192.168.186.101 hdfs1 master spark hadoop
MySQL-client-5.6.26-1.el6.x86_64.rpm
MySQL-devel-5.6.26-1.el6.x86_64.rpm
MySQL-server-5.6.26-1.el6.x86_64.rpm
执行以下的两个命令查看系统预安装的MySQL或mariadb
[root@hdfs1 ~]# rpm -qa | grep MySQL
[root@hdfs1 ~]# rpm -qa | grep mariadb
将以上命令查询到的所有已安装的组件通过以下命令将其删除
[root@hdfs1 ~]# rpm -e --nodeps (以上命令查出来的所有包,以空格分开)
使用以下的命令查询所有与MySQL相关的文件
[root@hdfs1 ~]# find / -name mysql
删除以上命令查到的所有文件
进入到我们MySQL的安装包的目录下,执行以下的命令(我将所有的MySQL安装包放到了root用户的主目录下了)
[root@hdfs1 ~]# rpm -ivh MySQL*
centos6:[root@hdfs1 ~]# service mysql start
centos7:[root@hdfs1 ~]# systemctl start mysql.service
在安装MySQL的过程中,我们会看到以下内容被打印出来:
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !You will find that password in ‘/root/.mysql_secret’.
我们需要在这个文件下找到随机生成的root密码,使用以下命令:
[root@hdfs1 ~]# cat /root/.mysql_secret
[root@hdfs1 ~]# mysql –uroot –p密码 # 密码为我们在上一步中查看到的随机密码
在MySQL的命令控制台中执行以下的SQL,将root用户的密码重置为123456
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘123456’)
grant all on *.* to root@"%" identified by "123456"
centos6:[root@hdfs1 ~]# chkconfig mysqld on
centos7:[root@hdfs1 ~]# systemctl enable mysqld.service
编辑/etc/my.cnf文件。编辑请将my.cnf文件备份。按照如下参数设置:
[mysqld] 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 = 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
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 |
symbolic-links一定要注释掉
初始化数据库
[root@lhdfs1 ~]# /usr/bin/mysql_secure_installation
按照如下方式初始化。此步骤会初始化root用户的密码,请记住初始化后的root用户的密码。
初始化相关数据库以及用户。在MYSQL命令行下执行如下SQL:
create database amon DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database rman DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database nav DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database navms DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on *.* to 'root'@'%' identified by '123456' with grant option;
因为CDH的运行依赖JDK1.8的运行环境。所以在安装CDH之前一定要先安装JDK1.8。本示例中以在ROOT用户下安装JDK为例。
1、 下载并上传JDK1.8的安装包
将压缩包上传到任意目录,本文以ROOT用户的主目录(~)下为例
2、 解压到相应的安装目录下
本示例中将JDK安装在了/usr/local目录下。
[root@hdfs1 ~]# tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local/
3、 配置环境变量
将解压后的jdk的目录配置到环境变量中
[root@hdfs1 ~]# vi /etc/profile
在该文件的末尾处添加以下内容
export JAVA_HOME=/usr/local/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
4、刷新环境变量
[root@hdfs1 ~]# source /etc/profile
5、测试是否安装成功
在任意目录下执行一下命令
[root@hdfs1 ~]# java -version
如果出现Java的版本信息证明安装成功,如果未出现,请检查环境变量中配置的路径是否正确。
既然是server的安装,我们就只在server主机上执行以下步骤。
对于server的安装我们只需要以下安装介质
Cloudera Manager 安装包:cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz
MySQL驱动包:mysql-connector-java-5.1.44-bin.jar
大数据离线安装库: CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
manifest.json
以上的介质我们在[安装示例介绍]章节中都已经明确,本示例中上传到ROOT用户的主目录下。
[root@hdfs1 ~]# mkdir /opt/cloudera-manager
[root@hdfs1 ~]# tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
安装数据库驱动
[root@hdfs1 ~]# mkdir -p /usr/share/java
[root@hdfs1 ~]# cp mysql-connector-java-5.1.44-bin.jar /usr/share/java/mysql-connector-java.jar
初始化数据库
[root@hdfs1 ~]# useradd --system --home=/opt/cloudera-manager/cm-5.12.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
[root@hdfs1 ~]# mkdir /var/lib/cloudera-scm-server
[root@hdfs1 ~]# chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
[root@hdfs1 ~]# mkdir -p /opt/cloudera/parcels;
[root@hdfs1 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
修改文件我方式有两种,当然,这不过是shell的功能而已,如果shell厉害,可能还会有更多的方法。
第一种方法:
[root@hdfs1 ~]# vi /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini
将server_host修改为cloudera manager server的主机名,对于本示例而言,也就是server主机。
第二种方法:
[root@dhdfs1 ~]# sed -i "s/server_host=localhost/server_host=hdfs1/" /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini
[root@hdfs1 ~]# mkdir -p /opt/cloudera/parcel-repo;
[root@hdfs1 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo;
[root@hdfs1 ~]# mv CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo/
[root@hdfs1 ~]# /opt/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-server start
[root@hdfs1 ~]# /opt/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-agent start
在除了server服务器外的其他的服务器都要执行以下步骤进行对agent的部署。
对于agent的安装我们只需要以下的两个安装介质
Cloudera Manager 安装包:cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz
MySQL驱动包:mysql-connector-java-5.1.44-bin.jar
[root@hdfs1 ~]# mkdir -p /usr/share/java
[root@hdfs1 ~]# cp mysql-connector-java-5.1.44-bin.jar /usr/share/java/mysql-connector-java.jar
[root@hdfs1 ~]# mkdir /opt/cloudera-manager
[root@hdfs1 ~]# tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
[root@hdfs1 ~]# useradd --system --home=/opt/cloudera-manager/cm-5.12.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
[root@hdfs1 ~]# mkdir -p /opt/cloudera/parcels;
[root@hdfs1 ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
修改文件我方式有两种,当然,这不过是shell的功能而已,如果shell厉害,可能还会有更多的方法。
第一种方法:
[root@hdfs1 ~]# vi /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini
将server_host修改为cloudera manager server的主机名,对于本示例而言,也就是server主机。
第二种方法:
[root@dhdfs1 ~]# sed -i "s/server_host=localhost/server_host=hdfs1/" /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini
[root@hdfs1 ~]# /opt/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-agent start
当我们部署完CDH的server和agent之后,我们的其他一切操作都在网页上进行操作。首先我们就要安装CDH的监控集群,它是用来监控我们整个CDH的所有主机和集群的运行状态的服务。所以安装很有必要。
但是有一点是,他的进程很多,非常占用内存,生产环境中一定不要和集群安装在一台机器上。我的安装部署原则是,server主机上部署所有Cloudera Manager 相关的组件(MySQL,Cloudera Manager Server, Cloudera ManagerMent Service的所有角色),而hadoop集群的所有角色都分配到agent中。
转自:https://my.oschina.net/epoch/blog/1633971
文章浏览阅读96次。Javascript语言详解,第二篇 || 同时也是浏览器架构的第一篇简单的JavascriptJavascript是一门weird language。它在某些地方以某种方式运行着,但你就是无法完全、彻底理解它。对于C/C++/Java这样的静态/编译型语言(强类型语言),我们清楚它是由gcc通过编译将源代码转换为二进制代码,当运行程序的时候,连接器把程序从硬盘复制到内存中并且运行。即使是python这样的动态/解释型语言(弱类型语言),也拥有自己特定的解释器把源代码转换成字节码的中间形式,然后._浏览器中的运行机制evenlop
文章浏览阅读1.3k次。springboot redis druid 负载均衡 mysql集群_springboot连接mysql集群
文章浏览阅读271次。课程宣传先上:https://aistudio.baidu.com/aistudio/course/introduce/1224在参加这期训练营之前,了解过PaddlePaddle,但是没有深度去了解他,后面通过PaddlePaddle官网发现了AIStudio。就开始在AIStudio上学习相关的课程,也看到了很多往期的七天打卡营,自己认为自己不是一个学习比较自觉地人,所以一直想要参加打..._for j in range(len(result))
文章浏览阅读1.8k次。如果没有,请看:https://www.bilibili.com/video/BV1PJ411i7hK。设置方法:https://www.bilibili.com/read/cv7517116。加载成功,你可以看到,除了舞蹈动画,还有物理模拟和表情动画,如果你的vmd包含表情的话!下载:https://github.com/EIRTeam/VMDMotionDemo。要问什么,那当然是作者插件发布日期推算出的版本号就是3.3.3或以下。这个插件运行效率不高,毕竟是GDScript,耐心等待就好了。_vrm模型下载
文章浏览阅读995次。参考了统计学习方法,西瓜书,Machine Learnig with python做的总结,还包含自己用sklearn做的一些对比实验,原文是写在jupyter上的,这里是直接转为.md导过来的,所以格式有些问题,有些东西还待完善…参考的博客https://www.cnblogs.com/pinard/p/6140514.html,https://blog.csdn.net/qq_222385..._随机森林是如何提升其学习能力的
文章浏览阅读690次。ORA-12519: TNS:no appropriate service handler found 解决有时候连得上数据库,有时候又连不上.可能是数据库上当前的连接数目已经超过了它能够处理的最大值.select count(*) from v$process --当前的连接数select value from v$parameter where name = '_oracle ensure all statements can be reached
文章浏览阅读1.6k次。org.apache.zookeeper.ZookeeperZookeeper 是在Java中客户端主类,负责建立与zookeeper集群的会话,并提供方法进行操作。org.apache.zookeeper.WatcherWatcher接口表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定...
文章浏览阅读524次。展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户口档案、养老保险
文章浏览阅读230次。调默认UTF-8_sts 环境 太痛苦
文章浏览阅读219次。什么是高精度计算?实际上高精度就是说参与运算的数据和运算结果的范围,超出标准数据类型能表示的数据大小范围的运算。这个时候,如果要得到正确的计算结果,显然不能依靠普通方法实现了。而要在普通运算原理的基础上,加以辅助算法来实现超大数据的计算。例如:求两个100位的数据的和,或者计算两个100位的数字乘积。这时就要用到高精度算法了。参考博文:高精度计算详解高精度计算..._高精度格式的计算结果是否一定比低精度格式更精确?
文章浏览阅读5.3k次。两者区别telnet可以实现的功能:连接服务器端口,并进行通信 登录远程telnet服务器,使用命令行对其进行控制nc可以实现的功能:监听服务器端口,并与客户端通信(最多只能接收一个客户端) 对指定服务器进行端口扫描 作为客户端连接到远程服务器进行通信windows10启用telnet选择控制面板中的程序Ubuntu中使用telnetnetstat -a | grep t..._netcat和telnet
文章浏览阅读1.6k次,点赞7次,收藏2次。NameNode元数据解析(1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载edits和fsimage文件到内存。(2)客户端对元数据进行增删改的请求。(3)namenode记录操作日志,更新滚动日志。(4)namenode在内存中对数据进行增删改查。fsimage保存了最新的元数据检查点,在HDFS启动时加载fsim..._hdfs 生成fsimage