共计 22029 个字符,预计需要花费 56 分钟才能阅读完成。
目录
- 目录
- 1CDH 介绍
- 1 什么是 CDH 和 CM
- 2CDH 的主要功能
- 3CDH 版本衍化
- 4CDH512 支持的主要组件简要介绍
- 2CDH 的官网在哪里
- 3CDH 在哪里下载
- 4 如何安装
- 1 设置 Host
- 2 设置静态 IP
- 3 设置 Host
- 4 关闭防火墙
- 5 安装 JDK7CDH5 要求至少是 Oracle JDK7
- 6 安装 MySql 最新版 CM 的数据库我们用 My Sql 管理
- 61 在主机上使用 apt-get 安装 My Sql
- 62 修改 MySql 配置方便 CM 使用
- 621 配置 MySql 的监听地址
- 622 配置 MySql 的其他配置为了 CM 使用
- 7 创建后面在 CM 中会使用的数据库
- 8 重启 MySql 查看 3306 端口并安装 MySql 对 Java 的支持
- 9 安装 Cloudera Manager 组件
- 91 将 Ubuntu 1404 暂时伪造成 Ubuntu1204
- 92 升级 Ubuntu 的 utils 包 CM 所必需要
- 93 将 CDH5 的软件源添加到 Apt 中
- 94 安装 Cloudera Manager
- 95 修改 Cloudera-Manager-Server 的配置文件 dbproperties 设置 MySql 连接
- 96 安装 ntp CM agents 需要用到 ntpdc
- 97 重启 Cloudera Manager Server
- 10 通过 Web 方式继续安装
- 101 创建 update-alternatives 工具在 usrsbin 下创建软链
- 102 打开浏览器输入 httpm1linuxidcorg7180 开始安装
- 103 选择安装的 CDH 版本
- 104 为 CDH 集群添加主机
- 105 选择 CDH 的安装方式
- 106 离线方式安装 CDH 的 Parcel
- 107 在 m1linuxidcorg 上安装 ZooKeeper 服务
- 108 初始化完成进入 CM 主页
- 109 恢复 Ubuntu 1404 版本信息
- 11 通过 CM 管理多个集群
- 111 添加 1 个新的集群机器名称为 m2linuxidcorg
- 112 完成安装验证 m2linuxidcorg 是否成功地添加到集群 Cluster 2
- 12 向 1 个集群添加 1 台新主机
- 121 开始添加输入要添加的机器名称 s1linuxidcorg
- 122 选择主机模
- 123 完成将 s1linuxidcorg 添加到集群
- 124 验证 s1linuxidcorg 是否成功地添加到集群 Cluster 1
- 5FAQ
- 1 过程中如果出现 Incorrect string value x 的提示
1、CDH 介绍
1.1、什么是 CDH 和 CM?
CDH 一个对 Apache Hadoop 的集成环境的封装,可以使用 Cloudera Manager 进行自动化安装。
Cloudera-Managerceql(本文中简称 CM)是一个工具,CM 能够管理一个大的 Hadoop cluster 并不是一只要下载 tar files 什么压缩并启动 services 这么简单。后续有非常多设定、监控等麻烦的事要处理,CM 都能够做到,有些类似 Casti。Cloudera Manager 整合了一列的功能让系统管理者能更方便的维护 Hadoop。
1.2、CDH 的主要功能?
- 管理
- 监控
- 诊断
- 集成
1.3、CDH 版本衍化
Hadoop 是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera 对 hadoop 做了相应的改变。
Cloudera 公司的发行版,我们将该版本称为 CDH(Cloudera Distribution Hadoop)。截至目前为止,CDH 共有 5 个版本,其中,前两个已经不再更新,最近的两个,分别是 CDH4 在 Apache Hadoop 2.0.0 版本基础上演化而来的),CDH5,它们每隔一段时间便会更新一次。
Cloudera 以 Patch Level 划分小版本,比如 Patch Level 为 923.142 表示在原生态 Apache Hadoop 0.20.2 基础上添加了 1065 个 Patch(这些 Patch 是各个公司或者个人贡献的,在 Hadoop jira 上均有记录),其中 923 个是最后一个 Beta 版本添加的 Patch,而 142 个是稳定版发行后新添加的 Patch。由此可见,Patch Level 越高,功能越完备且解决的 Bug 越多。
Cloudera 版本层次更加清晰,且它提供了适用于各种操作系统的 Hadoop 安装包,可直接使用 apt-get 或者 yum 命令进行安装,更加省事。
1.4、CDH5.1.2 支持的主要组件简要介绍
-
HTTPFS
1:Httpfs 是 Cloudera 公司提供的一个 Hadoop Hdfs 的一个 Http 接口,通过 WebHDFS REST API 可以对 hdfs 进行读写等访问
2:与 WebHDFS 的区别是不需要客户端可以访问 Hadoop 集群的每一个节点,通过 Httpfs 可以访问放置在防火墙后面的 Hadoop 集群
3:Httpfs 是一个 Web 应用, 部署在内嵌的 Tomcat 中 -
HBASE
Hbase 是 Bigtable 的开源山寨版本。是建立的 Hdfs 之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。
它介于 Bosql 和 RDBMS 之间,仅能通过主键 (row key) 和主键的 Range 来检索数据,仅支持单行事务(可通过 Hive 支持来实现多表 Join 等复杂操作)。主要用来存储非结构化和半结构化的松散数据。
与 Hadoop 一样,Hbase 目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。 -
HDFS
Hadoop 分布式文件系统 (HDFS) 被设计成适合运行在通用硬件 (commodity hardware) 上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS 是一个高度容错性的系统,适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 放宽了一部分 POSIX 约束,来实现流式读取文件系统数据的目的。HDFS 在最开始是作为 Apache Nutch 搜索引擎项目的基础架构而开发的。HDFS 是 Apache Hadoop Core 项目的一部分。 -
HIVE
Hive 是一个基于 Hadoop 的开源数据仓库工具,用于存储和处理海量结构化数据。它把海量数据存储于 Hadoop 文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并采用 HQL(类 SQL)语言对这些数据进行自动化管理和处理。我们可以把 Hive 中海量结构化数据看成一个个的表,而实际上这些数据是分布式存储在 HDFS 中的。Hive 经过对语句进行解析和转换,最终生成一系列基于 hadoop 的 Map/Reduce 任务,通过执行这些任务完成数据处理。 -
HUE
Hue 是 CDH 专门的一套 WEB 管理器,它包括 3 个部分 Hue Ui,Hue Server,Hue db。Hue 提供所有的 CDH 组件的 Shell 界面的接口。你可以在 Hue 编写 MR,查看修改 HDFS 的文件,管理 Hive 的元数据,运行 Sqoop,编写 Oozie 工作流等大量工作。 -
Impala
Impala 对你存储在 Apache Hadoop 在 HDFS,HBase 的数据提供直接查询互动的 SQL。除了像 Hive 使用相同的统一存储平台,Impala 也使用相同的元数据,SQL 语法(Hive SQL),ODBC 驱动程序和用户界面(Hue Beeswax)。Impala 还提供了一个熟悉的面向批量或实时查询和统一平台。 -
MapReduce
MapReduce 是一种编程模型,用于大规模数据集(大于 1TB)的并行运算。概念”Map(映射)”和”Reduce(归约)”,和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个 Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的 Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。MapReduce 更多运行于离线系统,而实时计算,可以使用 Storm。关于 Sotrm 的使用和介绍,可以参考这篇文章《ubuntu12.04+storm0.9.2 分布式集群的搭建》。 -
Oozie
Oozie 是 Yahoo 针对 Apache Hadoop 开发的一个开源工作流引擎。用于管理和协调运行在 Hadoop 平台上(包括:HDFS、Pig 和 MapReduce)的 Jobs。Oozie 是专为雅虎的全球大规模复杂工作流程和数据管道而设计。 -
Solr
Solr 是一个基于 Lucene 的 Java 搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr 已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以 Solr 的基本上沿用了 Lucene 的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对 Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如 Nutch、Luke)也可以使用 Solr 创建的索引。 -
Spark
Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用的并行计算框架,Spark 基于 map reduce 算法实现的分布式计算,拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 map reduce 的算法。
Spark 和 Storm 类似,都是基于内存的运行,不确定哪种方式在数据吞吐量上要具优势,不过 Storm 计算时间延迟要小。关于 Sotrm 的使用和介绍,可以参考这篇文章《ubuntu12.04+storm0.9.2 分布式集群的搭建》。 -
Sqoop
Sqoop 中一大亮点就是可以通过 hadoop 的 mapreduce 把数据从关系型数据库中导入数据到 HDFS。sqoop 架构非常简单,其整合了 Hive、Hbase 和 Oozie,通过 map-reduce 任务来传输数据,从而提供并发特性和容错。sqoop 主要通过 JDBC 和关系数据库进行交互。理论上支持 JDBC 的 database 都可以使用 sqoop 和 hdfs 进行数据交互。
-
YARN
YARN 可以理解为是 Hadoop MapReduceV2 版本,YARN 重构根本的思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG(有向无环图) 任务。ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。
事实上,每一个应用的 ApplicationMaster 是一个详细的框架库,它结合从 ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控任务。 -
Zookeeper
�� Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。
2、CDH 的官网在哪里?
http://www.cloudera.com/
3、CDH 在哪里下载?
由于 CDH 有多个版本,作者不建议单独下载安装,可以通过 cloudera-manager-daemons、cloudera-manager-server、cloudera-manager-agent 来安装,本文后面会有介绍。
4、如何安装
4.1、设置 Host
修改 Host
root@m1:~# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 m1.linuxidc.com m1
192.168.1.11 m2.linuxidc.com m2
192.168.1.12 s1.linuxidc.com s1
192.168.1.13 s2.linuxidc.com s2
# The following lines are desirable for IPv6 capable hosts
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
4.2、设置静态 IP
修改成静态 IP 地址
root@m1:~# vi /etc/network/interfaces
iface wlan0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
dns-nameservers 8.8.8.8
4.3、设置 Host
修改主机名称
root@m1:~# cat /etc/hostname
m1.linuxidc.com
4.4、关闭防火墙
root@m1:~# ufw disable
4.5、安装 JDK7,CDH5 要求至少是 Oracle JDK7
添加 PPA repository 到系统
root@m1:~# add-apt-repository ppa:webupd8team/java
root@m1:~# apt-get update
root@m1:~# sudo apt-get upgrade
- 1
- 2
- 3
过程中会弹出个框,选择 YES,因为要下载二进制包,所以可能会慢一些
root@m1:~# apt-get install oracle-java7-installer
将 Oracle 7 设置成默认版本
root@m1:~# apt-get install oracle-java7-set-default
查看当前 Java 版本
root@m1:~# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
4.6、安装 MySql 最新版,CM 的数据库我们用 My Sql 管理
安装 Mysql Server,后面在安装 Cloudera Manager 的时候会用到,如果你要使用 PostGreSQL,可以跳过这一步 (4.6-4.8)。
4.6.1、在主机上使用 apt-get 安装 My Sql
在主机上使用 apt-get 安装 My Sql,安装过程中会有提示,一直接回车就可以(4 台机器都要执行)
root@m1:~# apt-get install mysql-server
4.6.2、修改 MySql 配置,方便 CM 使用
4.6.2.1、配置 MySql 的监听地址
对 MySQL 的配置项进行修改,先备份,找到“bind-address = 127.0.0.1”这一行,然后注释掉,改成“bind-address = 0.0.0.0”
root@m1:~# cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
root@m1:~# vi /etc/mysql/my.cnf
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
4.6.2.2、配置 MySql 的其他配置,为了 CM 使用
MySql 配置中,其中对于 Cloudera 的支持,可以参考官方描述
[client]
default-character-set=utf8
[mysqld]
transaction-isolation=READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
character-set-server=utf8
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
# log-bin should be on a disk with enough free space
# NOTE: replace '/x/home/mysql/logs/binary' below with
# an appropriate path for your system.
log-bin=/x/home/mysql/logs/binary/mysql_binary_log
# For MySQL version 5.1.8 or later. Comment out binlog_format for older versions.
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
4.7、创建后面在 CM 中会使用的数据库
root@m1:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
## Cloudera manager db user, database and grant
mysql> create user 'cmf'@'%' identified by 'xyz';
Query OK, 0 rows affected (0.00 sec)
mysql> create database cmf DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on cmf.* to 'cmf'@'%' identified by 'xyz';
Query OK, 0 rows affected (0.00 sec)
## For activity monitor
mysql> create user 'amon'@'%' identified by 'xyz';
Query OK, 0 rows affected (0.00 sec)
mysql> create database amon DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on amon.* to 'amon'@'%' identified by 'xyz';
Query OK, 0 rows affected (0.00 sec)
## Hive Meta store
mysql> create user 'hive'@'%' identified by 'xyz';
Query OK, 0 rows affected (0.00 sec)
mysql> create database metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on metastore.* to 'hive'@'%' identified by 'xyz';
Query OK, 0 rows affected (0.00 sec)
## Flush all changes
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
4.8、重启 MySql,查看 3306 端口,并安装 MySql���Java 的支持
root@m1:~# service mysql restart
root@m1:~# netstat -tulpn | grep :3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2207/mysqld
root@m1:~# apt-get install libmysql-java
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
liblog4j1.2-java libcommons-logging-java
The following NEW packages will be installed:
libmysql-java
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
Need to get 894 kB of archives.
After this operation, 1,060 kB of additional disk space will be used.
Get:1 http://mirrors.sohu.com/ubuntu/ trusty/universe libmysql-java all 5.1.28-1 [894 kB]
Fetched 894 kB in 1s (718 kB/s)
Selecting previously unselected package libmysql-java.
(Reading database ... 96338 files and directories currently installed.)
Preparing to unpack .../libmysql-java_5.1.28-1_all.deb ...
Unpacking libmysql-java (5.1.28-1) ...
Setting up libmysql-java (5.1.28-1) ...
root@m1:~#
4.9、安装 Cloudera Manager 组件
4.9.1、将 Ubuntu 14.04 暂时伪造成 Ubuntu12.04
Ubuntu 14.04 暂时伪造成 Ubuntu12.04, 因为在写本文时 CM 现在还不支持 14.04 这个版本,CDH 以后的版本应该会支持吧(4 台机器都要执行)
备份文件:
root@m1:~# cp /etc/lsb-release /etc/lsb-release.bak
使用 VI 编译文件,暂时修改成 Ubuntu12.04 LTS 的信息:
root@m1:~# vi /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.3 LTS"
4.9.2、升级 Ubuntu 的 utils 包,CM 所必需要
在所有机器上安装 debian 的包,升级 utils,执行以下命令:(4 台机器都要执行)
root@m1:~# wget http://ftp.cn.debian.com/debian/pool/main/f/fuse/fuse-utils_2.9.0-2+deb7u1_all.deb
root@m1:~# dpkg -i fuse-utils_2.9.0-2+deb7u1_all.deb
4.9.3、将 CDH5 的软件源添加到 Apt 中
root@m1:~# curl "http://archive.cloudera.com/cm5/ubuntu/precise/amd64/cm/cloudera.list" -o /etc/apt/sources.list.d/cloudera_precise.list
root@m1:~# curl -s http://archive.cloudera.com/cdh5/ubuntu/precise/amd64/cdh/archive.key | sudo apt-key add -
root@m1:~# apt-get update
4.9.4、安装 Cloudera Manager
安装 Cloudera Manager(4 台机器都要执行)
root@m1:~# apt-get install cloudera-manager-daemons cloudera-manager-server
4.9.5、修改 Cloudera-Manager-Server 的配置文件 db.properties,设置 MySql 连接
修改 Cloudera-Manager-Server 的配置文件 db.properties, 设置刚才我们在(4.7)Mysql 中创建的 cmf 数据库、用户名、密码(4 台机器都要执行)
root@m1:~# vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=m1.linuxidc.com
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=xyz
4.9.6、安装 ntp,CM agents 需要用到”ntpdc”
安装 ntp,CM agents 需要用到”ntpdc”(4 台机器都要执行)
root@m1:~# apt-get install ntp
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libopts25
Suggested packages:
ntp-doc
The following NEW packages will be installed:
libopts25 ntp
0 upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
Need to get 666 kB of archives.
After this operation, 1,668 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.sohu.com/ubuntu/ trusty/main libopts25 amd64 1:5.18-2ubuntu2 [55.3 kB]
Get:2 http://mirrors.sohu.com/ubuntu/ trusty/main ntp amd64 1:4.2.6.p5+dfsg-3ubuntu2 [611 kB]
Fetched 666 kB in 1s (537 kB/s)
Selecting previously unselected package libopts25:amd64.
(Reading database ... 95843 files and directories currently installed.)
Preparing to unpack .../libopts25_1%3a5.18-2ubuntu2_amd64.deb ...
Unpacking libopts25:amd64 (1:5.18-2ubuntu2) ...
Selecting previously unselected package ntp.
Preparing to unpack .../ntp_1%3a4.2.6.p5+dfsg-3ubuntu2_amd64.deb ...
Unpacking ntp (1:4.2.6.p5+dfsg-3ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up libopts25:amd64 (1:5.18-2ubuntu2) ...
Setting up ntp (1:4.2.6.p5+dfsg-3ubuntu2) ...
* Starting NTP server ntpd [OK]
Processing triggers for libc-bin (2.19-0ubuntu6.1) ...
Processing triggers for ureadahead (0.100.0-16) ...
root@m1:~#
4.9.7、重启 Cloudera Manager Server
启动 Cloudera manager(4 台机器都要执行)
root@m1:~# service cloudera-scm-server start
Starting cloudera-scm-server: * cloudera-scm-server started
root@m1:~#
- 1
- 2
- 3
查看 Cloudera manager 的启动日志,如果能够看到下面的类似信息, 说明启动正确,tailf -100 /var/log/cloudera-scm-server/cloudera-scm-server.log 或者 /var/log/cloudera-scm-server/cloudera-scm-server.out,如果看不到类似下面的信息,那么也可以看到哪里出了问题,大多数都是和数据库的配置有关系。
2014-08-26 23:07:52,643 INFO [JvmPauseMonitor:debug.JvmPauseMonitor@236] Detected pause in JVM or host machine (e.g. a stop the world GC, or JVM not scheduled): paused approximately 1182ms: GC pool 'Copy' had collection(s): count=1 time=1641ms
2014-08-26 23:07:52,644 INFO [JvmPauseMonitor:debug.JvmPauseMonitor@236] Detected pause in JVM or host machine (e.g. a stop the world GC, or JVM not scheduled): paused approximately 1634ms: GC pool 'Copy' had collection(s): count=1 time=1641ms
2014-08-26 23:07:52,696 INFO [WebServerImpl:servlet.DispatcherServlet@339] FrameworkServlet 'Spring MVC Dispatcher Servlet': initialization completed in 18068 ms
2014-08-26 23:07:52,793 INFO [WebServerImpl:cmon.JobDetailGatekeeper@127] ActivityMonitor configured to allow job details for all jobs.
2014-08-26 23:07:53,407 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@399] Initializing SearchTemplateManager:2014-08-27T06:07:53.407Z
2014-08-26 23:07:53,730 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@403] Generating entities:2014-08-27T06:07:53.730Z
2014-08-26 23:07:53,821 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@407] Num entities:112
2014-08-26 23:07:53,822 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@409] Generating documents:2014-08-27T06:07:53.822Z
2014-08-26 23:07:53,891 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@411] Num docs:124
2014-08-26 23:07:53,892 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@352] Constructing repo:2014-08-27T06:07:53.892Z
2014-08-26 23:07:53,979 INFO [WebServerImpl:mortbay.log@67] jetty-6.1.26.cloudera.2
2014-08-26 23:07:54,008 INFO [WebServerImpl:mortbay.log@67] Started SelectChannelConnector@0.0.0.0:7180
2014-08-26 23:07:54,009 INFO [WebServerImpl:cmf.WebServerImpl@292] Started Jetty server.
2014-08-26 23:07:55,276 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@354] Finished constructing repo:2014-08-27T06:07:55.276Z
4.10、通过 Web 方式继续安装
4.10.1、创建 update-alternatives 工具在 /usr/sbin/ 下创建软链
创建 update-alternatives 工具在 /usr/sbin/ 下创建软链(在 4 台机器上一起执行)(4 台机器都要执行)
root@m1:~# sudo ln -s /usr/bin/update-alternatives /usr/sbin/update-alternatives
- 1
4.10.2、打开浏览器,输入 http://m1.linuxidc.com:7180/ 开始安装
使用浏览器打开能够看到登录页面,那么恭喜你成功了。http://m1.linuxidc.com:7180/(帐号和密码都是 admin)
4.10.3、选择安装的 CDH 版本
我们来安装 Cloudera Express,之前官方有说这个版本有 50 个节点的限制,在 CDH5.1.0 版本也有看到,在写本文记录时的 5.1.2 版本不知道为什么我在安装的时候并未看到。
4.10.4、为 CDH 集群添加主机
选择指定的 CDH 集群,可以添加多台机器,也可以使用 IP 匹配, 输入完机器名称后,点 search 按钮,我输入的内容为”m1.linuxidc.com”
CDH 会根据你给出的内容,搜索到机器
4.10.5、选择 CDH 的安装方式
选择存储方式,我们使用 Parcel 方式安装。系统会自动下载 Parcel
是否需要加密,如果你不考虑这些,可以不用选择这个复选框
提供 SSH 登录凭据,这里建议使用 root 帐号,避免一些新同学,对其他帐号的权限设置不完整,导致后面安装出现错误。如何设置 4 台机器之前 SSH 免密码登录,就不在这里介绍了,如果不会,可以去搜索下。在这之前 4 台机器请配置好 SSH 免密码登录。
安装过程中的状态,会下载 CDH 使用的包,可能会慢一些,要有耐心~~~~
如果在安装过程中出现了以下错误“ImportError: No module named _io”,或者如下图中的提示,不用担心,这是一个已知问题。这是因为 CDH5 使用的 Python 版本问题。执行完下面的脚本后,点击重试就可以顺利的完成安装了。如果出现打不开 CM Agent 的 log 日志提示,那很可能是你的 Host 配置有问题,请参考本文最初写的 Host 配置。
root@m1:~# mv /usr/lib/cmf/agent/build/env/bin/python /usr/lib/cmf/agent/build/env/bin/python.bak
root@m1:~# cp /usr/bin/python2.7 /usr/lib/cmf/agent/build/env/bin/python
安装完成了
4.10.6、离线方式安装 CDH 的 Parcel
继续安装选定 Parcel
如果你想要提高速度,可以按以下方法离线安装
(1)、使用迅雷到 http://archive.cloudera.com/cdh5/parcels/5.1.2/ 目录,下载 CDH-5.1.2-1.cdh5.1.2.p0.3-precise.parcel 和 mainfest.json 文件
(2)、上传到 /opt/cloudera/parcel-repo 目录中, 同时创建一个 CDH-5.1.2-1.cdh5.1.2.p0.3-precise.parcel.sha 文件,内容为”a492e4b6dece2850f0a37f2bf613ecb2980dfd37”,这个值可以在下载目录中的 manifest.json 文件中找到。然后看相对应的 json->parcelName 同一级的 hash 值。
(3)、下载 http://archive.cloudera.com/accumulo-c5/parcels/1.6.0.51/ACCUMULO-1.6.0-1.cdh5.1.0.p0.51-precise.parcel、http://archive.cloudera.com/sqoop-connectors/parcels/1.2/SQOOP_NETEZZA_CONNECTOR-1.2c5-precise.parcel、http://archive.cloudera.com/sqoop-connectors/parcels/1.2/SQOOP_TERADATA_CONNECTOR-1.2c5-precise.parcel
(4)、参考步骤 2, 创建相应的.sha 文件,.sha 文件中的内容如下:
root@m1:/opt/cloudera/parcel-repo# echo "a719f373833a63108c616afb034d97c4e11405d5" >> ACCUMULO-1.6.0-1.cdh5.1.0.p0.51-precise.parcel.sha
root@m1:/opt/cloudera/parcel-repo# echo "a492e4b6dece2850f0a37f2bf613ecb2980dfd37" >> CDH-5.1.2-1.cdh5.1.2.p0.3-precise.parcel.sha
root@m1:/opt/cloudera/parcel-repo# echo "48bedfff38f742d32541854e24b3310992616027" >> SQOOP_NETEZZA_CONNECTOR-1.2c5-precise.parcel.sha
root@m1:/opt/cloudera/parcel-repo# echo "76566b4797bd061d01cf25b36b21b26927ada9a4" >> SQOOP_TERADATA_CONNECTOR-1.2c5-precise.parcel.sha
(5)、设置文件的使用权限
root@m1:/opt/cloudera/parcel-repo# chmod 777 -R .
root@m1:/opt/cloudera/parcel-repo# chown cloudera-scm:cloudera-scm ./*
(6)、查看下载后的文件列表
root@m1:/opt/cloudera/parcel-repo# ll
total 1709280
drwxrwxrwx 2 cloudera-scm cloudera-scm 4096 Sep 1 01:16 ./
drwxr-xr-x 6 root root 4096 Sep 1 01:51 ../
-rwxrwxrwx 1 cloudera-scm cloudera-scm 13204338 Aug 31 21:37 ACCUMULO-1.6.0-1.cdh5.1.0.p0.51-precise.parcel*
-rwxrwxrwx 1 cloudera-scm cloudera-scm 41 Sep 1 01:15 ACCUMULO-1.6.0-1.cdh5.1.0.p0.51-precise.parcel.sha*
-rwxrwxrwx 1 cloudera-scm cloudera-scm 1727519860 Sep 1 00:27 CDH-5.1.2-1.cdh5.1.2.p0.3-precise.parcel*
-rwxrwxrwx 1 cloudera-scm cloudera-scm 41 Sep 1 01:15 CDH-5.1.2-1.cdh5.1.2.p0.3-precise.parcel.sha*
-rwxrwxrwx 1 cloudera-scm cloudera-scm 41602 Sep 1 01:13 SQOOP_NETEZZA_CONNECTOR-1.2c5-precise.parcel*
-rwxrwxrwx 1 cloudera-scm cloudera-scm 41 Sep 1 01:16 SQOOP_NETEZZA_CONNECTOR-1.2c5-precise.parcel.sha*
-rwxrwxrwx 1 cloudera-scm cloudera-scm 9499051 Sep 1 01:13 SQOOP_TERADATA_CONNECTOR-1.2c5-precise.parcel*
-rwxrwxrwx 1 cloudera-scm cloudera-scm 41 Sep 1 01:16 SQOOP_TERADATA_CONNECTOR-1.2c5-precise.parcel.sha*
主机正确性检查,和当前 m1.linuxidc.com 的 CDH5.12 组件版本汇总。
4.10.7、在 m1.linuxidc.com 上安装 ZooKeeper 服务
选择要安装的集群服务,我们来安装 ZooKeeper。如下图选择
自定义角色分配
数据库设置,我们输入之前在 MySql 中 (4.7) 创建的 Activity Monitor 使用的数据库 amon 以及用户名、密码,点击测试链接,可以看到成功信息。
审核更改,如果你没有邮件要配置,可以什么都不用输入
升级完成,并且成功启动 ZooKeeper、CM Service 服务。
4.10.8、初始化完成,进入 CM 主页
升级完成,就可以进入主页
查看 m1.linuxidc.com 的运行状态
4.10.9、恢复 Ubuntu 14.04 版本信息
最后我们恢复 ubuntu 14.04 版本信息
root@cm1:~# rm /etc/lsb-release /etc/lsb-release.bak
root@cm1:~# mv /etc/lsb-release.bak /etc/lsb-release
- 1
- 2
4.11、通过 CM 管理多个集群
4.11.1、添加 1 个新的集群,机器名称为 m2.linuxidc.com
有的时候,因为业务原因,不同的服务我们要使用不同的集群,便于管理和维护,下面我们再使用 CM 来测试创建一个新集群 Cluster 2
添加其他主机,我们测试将 m2.linuxidc.com 也做为一个新集群添加到 CM 中。点击 CM 主页右上角的添加集群,会重复看到 (参考 4.10.4 章节) 的页面
再继续安装,可以参考 (4.10.5 章节 -4.10.7 章节) 的页面重复操作,下面只给出将 m2.linuxidc.com 加入到集群的安装过程中部分截图。
m2.linuxidc.com 机器上要有 cloudera-manager-server、cloudera-manager-daemons、cloudera-manager-agent(这个可以不用安装,但机器上要有包)。cloudera-manager-server、cloudera-manager-daemons 的安装,可以参考 4.9.4 章节,配置可以参考 4.9.5 章节,服务是启动状态。
4.11.2、完成安装,验证 m2.linuxidc.com 是否成功地添加到集群 Cluster 2
4.12、向 1 个集群添加 1 台新主机
4.12.1、开始添加,输入要添加的机器名称 s1.linuxidc.com
选择存储库,为了保持统一,建议使用与当前 CM 一样的版本,然后会继续走 4.10.5 的步骤
再继续安装,可以参考 (4.10.5 章节 -4.10.7 章节) 的页面重复操作,下面只给出将 s1.linuxidc.com 加入到集群的安装过程中部分截图。
m2.linuxidc.com 机器上要有 cloudera-manager-server、cloudera-manager-daemons、cloudera-manager-agent(这个可以不用安装,但机器上要有包)。
cloudera-manager-server、cloudera-manager-daemons 的安装,可以参考 4.9.4 章节,配置参考 4.9.5 章节。cloudera-manager-server 的服务要在启动状态。
4.12.2、选择主机模
4.12.3、完成将 s1.linuxidc.com 添加到集群
4.12.4、验证 s1.linuxidc.com 是否成功地添加到集群 Cluster 1
到此为主,在 Ubuntu 14.04 下使用 apt-get 方式,安装 CDH5.12 已经成功。并且支持中文,后面有什么服务或者机器要添加的,可以自己来做了。
5、FAQ
5.1、过程中如果出现”Incorrect string value:‘\x“的提示
是和数据库的编码有关,在 mysql 中执行以下语句:
alter table CLIENT_CONFIGS convert to character set utf8;
alter table CLUSTERS convert to character set utf8;
alter table CLUSTERS_AUD convert to character set utf8;
alter table CLUSTER_ACTIVATED_RELEASES convert to character set utf8;
alter table CLUSTER_ACTIVATED_RELEASES_AUD convert to character set utf8;
alter table CLUSTER_MANAGED_RELEASES convert to character set utf8;
alter table CLUSTER_UNDISTRIBUTED_RELEASES convert to character set utf8;
alter table CM_PEERS convert to character set utf8;
alter table CM_VERSION convert to character set utf8;
alter table COMMANDS convert to character set utf8;
alter table COMMAND_SCHEDULES convert to character set utf8;
alter table CONFIGS convert to character set utf8;
alter table CONFIGS_AUD convert to character set utf8;
alter table CONFIG_CONTAINERS convert to character set utf8;
alter table CREDENTIALS convert to character set utf8;
alter table GLOBAL_SETTINGS convert to character set utf8;
alter table HOSTS convert to character set utf8;
alter table HOSTS_AUD convert to character set utf8;
alter table HOST_TEMPLATES convert to character set utf8;
alter table HOST_TEMPLATE_TO_ROLE_CONF_GRP convert to character set utf8;
alter table METRICS convert to character set utf8;
alter table PARCELS convert to character set utf8;
alter table PARCEL_COMPONENTS convert to character set utf8;
alter table PROCESSES convert to character set utf8;
alter table PROCESS_ACTIVE_RELEASES convert to character set utf8;
alter table RELEASES convert to character set utf8;
alter table RELEASES_AUD convert to character set utf8;
alter table REVISIONS convert to character set utf8;
alter table ROLES convert to character set utf8;
alter table ROLES_AUD convert to character set utf8;
alter table ROLE_CONFIG_GROUPS convert to character set utf8;
alter table ROLE_CONFIG_GROUPS_AUD convert to character set utf8;
alter table ROLE_STALENESS_STATUS convert to character set utf8;
alter table SCHEMA_VERSION convert to character set utf8;
alter table SERVICES convert to character set utf8;
alter table SERVICES_AUD convert to character set utf8;
alter table SNAPSHOT_POLICIES convert to character set utf8;
alter table USERS convert to character set utf8;
alter table USER_ROLES convert to character set utf8;
alter table USER_SETTINGS convert to character set utf8;
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148348.htm