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了