1 Cloudera安装综述


由于我比较懒,做完的东西很懒得整理,又懒得看,导致很多东西都是用过了就忘。最近公司又要把apache hadoop加hue,想直接用Cloudera算了,正好里面集成了hue。这篇博客是我用最新的CM5.11做的,希望能给大家带来帮助。


2 安装分类


官方给出的Cloudera的安装有大致三种分类,Installation Path A、Path B、Path C。


A是使用Cloudera自带的PostgresSQL数据库进行安装(生产环境不推荐使用),安装过程由CM联网下载各种包并分发给各个节点。CM由官方提供的脚本进行联网安装。


B是使用yum(apt)来进行安装,并在从节点安装cloudera-agent,并将agent指向主节点。(安装外部数据库来对储存各个服务的元数据)


C是使用tarball进行完全的手动安装(CDH5.12将取消这种安装方法),既包括server、agent、各个组件都完全由人工tar zxvf来安装。


由于给出的方法太多,很容易将人给绕晕了,那么我们就总结一下:我们怎样才能算完整的安装了CDH?这个问题可以从CDH的组件来回答,既我们安装了Cloudera-server、agent、外部数据库这三点,即可算作安装成功。剩下的包下载,分配等工作我们交由CM来管理。我的方法是由官方提供的bin脚本来安装,这个好处是脚本永远都是提供最新版的CDH。数据库使用mysql、agent也是又CM来安装的。


3 安装步骤

1 环境配置

我使用的是centos7 mini安装,除了ssh系统上什么程序都没有。所以,各位看官按着我的步骤走就可以安装了(CDH需要python2.7的支持,而centos7已经自带了)。

以下操作都是在root账户下进行操作:

首先是将各个节点都打通ssh免密登陆

[root@docker ~]#ssh-keygen -t rsa

然后将生成的密钥分发给各个节点

[root@docker ~]#ssh-copy-id -i ./.ssh/id_rsa.pub [ip]

关闭防火墙和selinux

2 安装外部数据库

由于centos不再包含mysql的源,我们需要手动获取


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



停止mysql,确定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_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

# For MySQL version 5.1.8 or later. For older versions, reference MySQL documentation for configuration help.
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_TABLESempty


http://www.mysql.com/downloads/connector/j/5.1.html下载MySQL JDBC驱动程序。

从下载的文件中提取JDBC驱动程序JAR文件。例如:


tar zxvf mysql-connector-java-5.1.31.tar.gz

将JDBC驱动程序复制到相关的主机。例如:

$ sudo cp mysql-connector-java-5.1.31 / mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-connector-java.jar


此时,使用root登陆mysql,并为下面的程序建立数据库


Role

Database User Password


Activity Monitor

amon amon amon_password


Reports Manager

rman rman rman_password


Hive Metastore Server

metastore hive hive_password


Sentry Server

sentry sentry sentry_password


Cloudera Navigator Audit Server

nav nav nav_password


Cloudera Navigator Metadata Server

navms navms navms_password


此时,就可以启动CM了