问题导读:
1.如何不使用cloudera-manager-installer.bin来安装Cloudera Manager?
2.如何添加源?
3.添加源的作用是什么?
为了节省大家时间,这里做一些说明:如果使用的是虚拟机,那么这些虚拟机共同有的内容例如都可以安装在一台虚拟机,然后通过克隆,节省大量的时间。
在主节点也就是cloudera server中,内存一定要够大(4G),否则mysql安装中就会遇到问题,后面的hadoop运行也会遇到问题。所以cloudera的安装比hadoop的安装内存要求更高。
对于新手,初次安装最好使用root用户,后面可能会遇到权限问题。
1.准备 系统版本
uname -a
Linux CDH 3.2.0-68-generic #102-Ubuntu SMP Tue Aug 12 22:02:15 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
复制代码
配置hostname、hosts
172.16.77.60 CDH.aboutyun.com CDH
172.16.77.61 CDH1.aboutyun.com CDH1
172.16.77.62 CDH2.aboutyun.com CDH2
172.16.77.63 CDH3.aboutyun.com CDH3 复制代码
确保所有机器root密码一致或者sudo免输入密码用户的用户名、密码一致!
sudo免密码登录参考创建sudo无密码登陆
2.添加Cloudera源
1.添加源 sudo nano /etc/apt/sources.list.d/cloudera.list
复制代码
写入
# Packages for Cloudera's Distribution for Hadoop, Version 4, on Ubuntu 12.04 x86_64
deb [arch=amd64] http://archive.cloudera.com/cm5/ubuntu/precise/amd64/cm precise-cm5 contrib
deb-src http://archive.cloudera.com/cm5/ubuntu/precise/amd64/cm precise-cm5 contrib
# Packages for Cloudera's Distribution for Hadoop, Version 5, on Ubuntu 12.04 amd64
deb [arch=amd64] http://archive.cloudera.com/cdh5/ubuntu/precise/amd64/cdh precise-cdh5 contrib
deb-src http://archive.cloudera.com/cdh5/ubuntu/precise/amd64/cdh precise-cdh5 contrib 复制代码
上面两源来自
如下图所示:
CM5:
http://archive.cloudera.com/cm5/ubuntu/precise/amd64/cm/
获取apt key
curl -s http://archive.cloudera.com/cdh5/ubuntu/precise/amd64/cdh/archive.key| sudo apt-key add - 复制代码
如上面不能使用,将上面链接换成下面:
http://archive-primary.cloudera. ... d64/cdh/archive.key
刷新源列表
复制代码
3.安装java环境
sudo apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -y install oracle-j2sdk1.7 复制代码
java的安装路径参考: /usr/lib/jvm
环境变量的配置,参考linux(ubuntu)安装Java jdk环境变量设置及小程序测试
4.安装mysql以及JDBC驱动
sudo apt-get install mysql-server libmysql-java
复制代码
5.配置mysql
sudo nano /etc/mysql/conf.d/mysql_cloudera_manager.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 = 16M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
# Important: see Configuring the Databases and Setting max_connections
max_connections = 550
# log-bin should be on a disk with enough free space
log-bin=/var/log/mysql/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 复制代码
在安装的过程中一定保证内存足够大,否则会遇到下面问题
上面配置需要根据自己的实际情况,在配置过程中重启mysql的时候,发生了下面错误
stop: Unknown instance:
start: Job failed to start
注意:不能够重启是因为这两项的原因
innodb_buffer_pool_size = 4G
log-bin=/var/log/mysql/mysql_binary_log
编辑my.cnf
sudo nano /etc/mysql/my.cnf
把下面这一行注释掉
#bind-address = 127.0.0.1 复制代码
6.配置innodb
sudo su
mv /var/lib/mysql/ib_logfile* /var/tmp/
logout 复制代码
7.初始化数据库
sudo service mysql restart 复制代码
复制代码
create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon_password';
grant all on amon.* TO 'amon'@'CDH' IDENTIFIED BY 'amon_password';
create database smon DEFAULT CHARACTER SET utf8;
grant all on smon.* TO 'smon'@'%' IDENTIFIED BY 'smon_password';
grant all on smon.* TO 'smon'@'CDH' IDENTIFIED BY 'smon_password';
create database rman DEFAULT CHARACTER SET utf8;
grant all on rman.* TO 'rman'@'%' IDENTIFIED BY 'rman_password';
grant all on rman.* TO 'rman'@'CDH' IDENTIFIED BY 'rman_password';
create database hmon DEFAULT CHARACTER SET utf8;
grant all on hmon.* TO 'hmon'@'%' IDENTIFIED BY 'hmon_password';
grant all on hmon.* TO 'hmon'@'CDH' IDENTIFIED BY 'hmon_password';
create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive_password';
grant all on hive.* TO 'hive'@'CDH' IDENTIFIED BY 'hive_password'; 复制代码
8.安装 cloudera-manager以及agent(因为master也是一个节点)
sudo apt-get install cloudera-manager-daemons cloudera-manager-server cloudera-manager-agent 复制代码
9.配置cloudera-manager-server数据库
sudo /usr/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p --scm-host localhost scm scm scm_password 复制代码
这里执行的时候,如果设置了mysql的密码,那么需要输入mysql密码,并且会出现log4j错误,不用担心。
10.配置其余节点(cdh1、cdh2、cdh3)【切记是每台都执行下面操作】
下面操作是在三个节点都需要操作
配置其余节点的源,只要把CDH的cloudera.list 复制到其他节点cdh2、cdh3、cdh4即可
sudo scp root@CDH:/etc/apt/sources.list.d/cloudera.list /etc/apt/sources.list.d/cloudera.list 复制代码
获取apt key
curl -s http://archive.cloudera.com/cdh5/ubuntu/precise/amd64/cdh/archive.key | sudo apt-key add - 复制代码
刷新源列表
复制代码
在其余节点安装jdk
sudo apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -y install oracle-j2sdk1.7 复制代码
在其余节点安装cloudera-manager-agent 和cloudera-manager-daemons
sudo apt-get install cloudera-manager-agent cloudera-manager-daemons 复制代码
修改agent的配置文件
sudo nano /etc/cloudera-scm-agent/config.ini
修改server_host=CDH
重启每个节点的agent
sudo service cloudera-scm-agent restart
复制代码
11.重启控制节点cloudera-manager以及agent
sudo service cloudera-scm-server restart
sudo service cloudera-scm-agent restart 复制代码
12.访问web控制台 http://172.16.77.60:7180/ 用户名admin密码admin
(这里需要注意的是,当你重启的时候,访问需要等一会,大概10多分钟吧,多刷新几次,因为访问的时候它会出现不能访问)
然后我们看到了下面页面
选择使用60天企业版在,试用期之后,该产品将继续作为 Cloudera Express 运行。您的群集和数据将会保持不受影响。
继续
选择当前管理的主机,并勾选所有节点
(这里如果是使用 cloudera-manager-installer.bin,则是选择新主机, 这就是使用添加yum方式的好处)
注意:这里如果只看到了当前主机,那么你需要修改每台agent的配置文件 /etc/cloudera-scm-agent/config.ini 修改
server_host为server ip地址
server_port为7180
详细参考记录cloudera Manager安装Cloudera-Scm-Agent如何指向Cloudera-Scm-Server
我们使用默认:
等待下载完,然后继续
选定的 Parcel 正在下载并安装在群集的所有主机上:
根据网速不同,时间也有所不同,终于进入下一步
检查主机正确性
主机正确性中出现以下问题Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
那么该如何设置:
输入下面命令即可:
echo 0 > /proc/sys/vm/swappiness 复制代码
群集设置
选择了所有服务
继续
自定义角色分配
这里面有默认的,对于需要选择的,我这里都选择了CDH1
注意的问题
Cloudera Management Service都选master(CDH),也就是安装mysql的主机。因为其他主机没有安装mysql
数据库设置
填写数据库用户名和密码如下图:
审核更改
采用默认,单击继续
出现问题
问题1:无法连接到主机
显示无法连接,因为ssh没有安装
问题2:重复使用 Cloudera源
因为使用的是虚拟机,那么 添加Cloudera源能否克隆,尝试克隆,但是后面安装遇到了当前主机找不到
添加Cloudera源
获取apt key
刷新源列表
问题3:内存过小 mysql重启遇到下面错误
stop: Unknown instance:
start: Job failed to start 复制代码
由于内存是1G,mysql的配置是需要4G,所以最后调大到4G问题解决
问题4:DNS反向解析PTR localhost:
描述:
DNS反向解析错误,不能正确解析Cloudera Manager Server主机名
日志:
Detecting Cloudera Manager Server...
Detecting Cloudera Manager Server...
BEGIN host -t PTR 192.168.1.198
198.1.168.192.in-addr.arpa domain name pointer localhost.
END (0)
using localhost as scm server hostname
BEGIN which python
/usr/bin/python
END (0)
BEGIN python -c 'import socket; import sys; s = socket.socket(socket.AF_INET); s.settimeout(5.0); s.connect((sys.argv[1], int(sys.argv[2]))); s.close();' localhost 7182
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused
END (1)
could not contact scm server at localhost:7182, giving up
waiting for rollback request
解决方案:
将连不上的机器 /usr/bin/host 文件删掉,执行下面命令:
sudo mv /usr/bin/host /usr/bin/host.bak 复制代码
说明:
不明白cloudera的初衷,这里已经得到 Cloudera Manager Server的ip了,却还要把ip解析成主机名来连接
由于DNS反向解析没有配置好,根据Cloudera Manager Server 的ip解析主机名却得到了localhost,造成之后的连接错误
这里的解决方案是直接把/usr/bin/host删掉,这样Cloudera Manager就会直接使用 ip进行连接,就没有错了
问题5: Cloudera-Scm-Agent不指向Cloudera-Scm-Server
当我们安装了一台Cloudera-Scm-Server和多台Cloudera-Scm-Agent的时候,发现Cloudera-Scm-Server只有一台,并且是本地的,
这让我们郁闷,有的同学直接添加,很浪费了,这里只需要修改配置文件即可
/etc/cloudera-scm-agent/config.ini 修改
server_host为server ip地址
server_port为7180
修改还不能生效,需要重启:
首先重启Agent
sudo service cloudera-scm-agent restart
然后重启server
sudo service cloudera-scm-server restart
如下图所示为三台: