前言
一些自己的系统有的配置,可能你的系统不存在,就会出错,有什么问题多去百度一哈。
一些前提
1.防火墙默认关闭
查看防火墙状态
firewall-cmd --state
not running 就没啥问题
否则停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
2.可能需要关闭selinux,一般默认关闭
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能⽣生效
3.设置时区
4.多个节点之间需要ssh认证的要配置公钥私钥
一.准备YUM源
1.进入官网下载yum源 cm5.14.4
–> RPMS --> x86_64/ 将里面的rpm文件全部下载,上传到自己的服务器中,我的目录为 /data/cm/RPMS/x86_64
2.创建yum源
cd /data/cm/rpms/
createrepo x86_64
进入x86_64目录,文件中多出 repodata文件夹,就是创建成功,createrepo没有的可以去安装一下
3.关联到yum.repos.d/中
cd cd /etc/yum.repos.d/
vim cloudera-manager.repo
编辑 cloudera-manager.repo 内容
[cloudera-manager]
# Packages for Cloudera Manager, Version 5, on RedHat or CentOS 7 x86_64
name=Cloudera Manager
baseurl=file:///data/cm/rpms/x86_64
enabled=1
gpgcheck=0
priority=1
保存退出,完成创建。
二.安装JDK
根据yum源里面的jdk.rpm进行安装
yum install oracle-j2sdk1.8
安装完以后进入 /usr/java/ 可以看到 jdk1.7.0_67-cloudera
然后配置/etc/profile,
vim /etc/profile
末尾加上
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=${JAVA_HOME}/bin:$PATH
保存退出,jdk配置结束
source /etc/profile
三.安装CM
安装CM的server和agent //agent端不需要安装cloudera-manager-server
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
结束既安装成功
配置主机节点
vi /etc/cloudera-scm-agent/config.ini
或许应该整个user
useradd --system --home=/opt/cloudera-manager/cm-5.14.4/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
配置/etc/hosts文件,将主机名的映射都配齐全
例如使用三个主机,就需要在三台主机都配上
1.1.1.1 server1
1.1.1.2 agent1
1.1.1.3 agent2
四.安装mysql(配置agent节点可以忽略四-六)
这种是有网络的情况,没有网络就只能去自己下载mysql安装包去安装,下载rpm,默认在有网的地方wget下载,上传到服务器
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
systemctl start mysqld
默认安装成功,
cat /etc/my.cnf
可以修改my.cnf里面的配置,根据需求修改
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
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
#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1
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_TABLES
对mysql进行配置
sudo /usr/bin/mysql_secure_installation
配置命令如下
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
All done!
完成密码设置,mysql安装配置结束
五.连接mysql
下载mysql连接的包,上传到服务器
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
解压配置命令如下
tar zxvf mysql-connector-java-5.1.46.tar.gz
sudo mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
默认配置成功,执行如下命令与cm连接
scm_prepare_database.sh mysql –h 远程机数据库 –u用户名 –p密码 --scm-host localhost localhost 数据库名称 用户 密码
sudo /usr/share/cmf/schema/scm_prepare_database.sh mysql -h 1.1.1.1 -uroot -proot --scm-host localhost scm root root
关于数据库连接可能会有很多坑(例如读写,缓存,一致性等配置),自己去百度,然后对/etc/my.cnf进行配置即可
六.导入parcel
下载parcelparcel 5.14.4
mkdir -p /opt/cloudera/parcel-repo
cp CDH-**.parcel /opt/cloudera/parcel-repo/
cp CDH-**.parcel.sha1 /opt/cloudera/parcel-repo/CDH-**.parcel.sha
cp manifest.json /opt/cloudera/parcel-repo/
chown -R cloudera-scm:cloudera-scm /opt/cloudera/
注意把sha1改成sha
七.启动server与agent
service cloudera-scm-server start
service cloudera-scm-agent start
日志文件
/var/log/cloudera-scm-server/cloudera-scm-server.log
/var/log/cloudera-scm-agent/cloudera-scm-agent.log
默认启动OK
等待1-3分钟,因为可能会很慢
访问http://host:7180
八.问题与解决方法
- 关于出现id地址的所有问题,修改/etc/hosts即可,域名映射不能映射到127.0.0.1,否则会出现无法连接,和无法找到包的问题,每个agent节点都必须要配置主机名到地址的映射,只要出现无法连接到服务端地址的问题就应该是地址映射没有配齐全
127.0.0.1 localhost
#127.0.0.1 server1
1.1.1.1 localhost
- 修改parcel包的地址后需要配置权限
chown -R cloudera-scm:cloudera-scm /parcel路径
-
无法获取主机节点的guid问题
查询到guid位置 find / -name cm_guid
我的位置是/var/lib/cloudera-scm-agent/cm_guid
rm –f /var/lib/cloudera-scm-agent/cm_guid
注意所有节点的都删,然后重启agent
service cloudera-scm-agent restart -
Unable to retrieve remote parcel repository manifest 这个问题不需要管,不影响