1.准备
此处使用了4台虚拟机,每台2核4G。
2.设置免密登录等。
3.检查python数据库版本,官方推荐使用的版本为2.6.6。
python -V
4.卸载原装数据库,重新安装数据库。
yum list installed | grep mysql 检查原装数据库
yum -y remove mysql-libs.x86_64 卸载
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm 下载数据库的rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm 安装rpm
yum repolist all | grep mysql 检查
yum install mysql-community-server -y yum安装
chkconfig --list | grep mysqld 查看mysqld服务状态
chkconfig mysqld on 开启开机启动
service mysqld start 启动mysql
mysql_secure_installation 设置root密码
mysql -u root -p 登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 设置远程登录
GRANT ALL PRIVILEGES ON *.* TO 'cmf'@'%' IDENTIFIED BY 'cmf' WITH GRANT OPTION;
create database cmf default character set utf8 创建cmf数据库
create database amon default character set utf8 创建amon数据库
flush privileges; 刷新权限
修改/etc/my.cnf
在[mysqld]下添加max_allowed_packet=20M
重启mysql服务:service mysqld restart
这里不调整的话安装的时候可能出现错误,错误在下面写出。
5.下载mysql的jar包,并移动到需要的位置。
mkdir -p /usr/share/java 创建/usr/share/java
cd /usr/share/java
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.zip
unzip mysql-connector-java-5.1.47.zip 解压
cd至解压后的文件夹内,将mysql-connector-java-5.1.47-bin.jar移动至/usr/share/java
mv mysql-connector-java-5.1.47-bin.jar /usr/share/java
mv mysql-connector-java-5.1.47-bin.jar mysql-connector-java.jar 重命名
将mysql的连接包发送到集群内的所有节点。
scp mysql-connector-java.jar server02:/usr/share/java
scp mysql-connector-java.jar server03:/usr/share/java
scp mysql-connector-java.jar server04:/usr/share/java
6.安装jdk(集群上的所有机器)。
注:这里官方推荐使用orcale的jdk而不是openjdk
CDH5.7
解压
tar -zxvf xxx.tar.gz
将加压后的文件夹移动至/usr/java中,没有则创建。(注:移动的是整个文件夹,而不是将jdk解压后的文件夹命名为java)
修改/etc/profile
添加
export JAVA_HOME=/usr/java/jdk1.8.0_181/
export PATH=$JAVA_HOME/bin:$PATH
重新加载profile文件
source /etc/profile
CDH4.7
解压
tar -zxvf xxx.tar.gz
将加压后的文件夹移动至/usr/java中,没有则创建。(注:移动的是整个文件夹,而不是将jdk解压后的文件夹命名为java)
cdh4在如上操作之后还必须建立软连接,并修改/etc/profile:
ln -s jdk1.7.0_80/ latest
ln -s latest default
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
7.下载CDH的包。
CDH5.7
wget http://archive.cloudera.com/cdh5/parcels/5.7.0/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel http://archive.cloudera.com/cdh5/parcels/5.7.0/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 http://archive.cloudera.com/cdh5/parcels/5.7.0/manifest.json http://archive.cloudera.com/cm5/repo-as-tarball/5.7.0/cm5.7.0-centos6.tar.gz
CDH4.7
8.检查各台机器之间的时间是否一致。
>date
Mon Sep 17 08:57:57 CST 2018
9.检查httpd是否安装。
rpm -qa| grep httpd
未安装安装;
yum install -y httpd
启动httpd:
service httpd start
设置开机启动:
chkconfig httpd on
10.设置httpd的访问资源,将其调整至于官方一致。
创建/var/www/html/parcels文件夹
将前面下好的CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel,CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1,manifest.json移动至parcels文件夹内,去掉CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1后的1,将其修改为CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha
检测CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel是否下载完整:
sha1sum CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel
将结果与CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha内容进行对比,一致则下载完成。
在/var/www/html下创建cm5/redhat/6/x86_64:
mkdir -p cm5/redhat/6/x86_64
将下载的cm5.7.0-centos6.tar.gz解压后
tar -zxvf cm5.7.0-centos6.tar.gz
将解压好的文件夹移动至cm5/redhat/6/x86
mv cm /var/www/html/cm5/redhat/6/x86_64
完成之后可以去通过浏览器查看
http://ip/parcels
http://ip/cm5/
11.调整yum。
cd 到cm文件夹,修改cloudera-manager.repo
baseurl=http://172.21.0.4/cm5/redhat/6/x86_64/cm/5/
gpgcheck = 0
将cloudera-manager.repo移动至/etc/yum.repos.d
集群内的每台机器都必须有cloudera-manager.repo这个文件。
scp /etc/yum.repos.d/cloudera-manager.repo server01:/etc/yum.repos.d
scp /etc/yum.repos.d/cloudera-manager.repo server02:/etc/yum.repos.d
scp /etc/yum.repos.d/cloudera-manager.repo server03:/etc/yum.repos.d
12.安装基本服务。
cd 到/var/www/html/cm5/redhat/6/x86_64/cm/5/RPMS/x86_64/
将cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm发送至集群内的所有机器内。
scp cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm server01:~
scp cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm server02:~
scp cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm server03:~
在所有机器上执行安装命令
rpm -ivh cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
在cm机器上安装cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
13.修改cm中关于mysql连接的设置。
修改/etc/cloudera-scm-server/db.properties
打开注释:
com.cloudera.cmf.db.host=ip(也可以是localhost,注意是为了避免出现service检测节点与数据库不在一个节点上)
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=cmf_password
高版本的将db=init改为db=external(大小写与原来的一致)
14.启动服务。
启动cm服务
service cloudera-scm-server start 启动服务
日志保存在/var/log/cloudera-scm-server/
可以重新打开一个窗口,通过
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
监控启动状况。
在日志停止滚动的时候,登录ip:7180,可以进入则说明服务启动成功。
15.出现的错误。
出现错误:
Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1464 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3683)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2512)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2495)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1903)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2124)
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1801)
... 66 more
解决:
修改/etc/my.conf
在[mysqld]下添加max_allowed_packet=20M
重启mysql服务:sevice mysqld restart
重新启动 cloudera-scm-server服务。
16.在浏览器中输入http://ip/7180,继续安装过程(注:在安装的过程中不要离开页面,否则可能会导致安装失败,安装过程中,若某步设置错误,可以回退至那一步,如果退出安装页面的话,可以尝试再次进入,还是不行的话可以卸载并再次安装服务,卸载命令在文章最后)。
默认的账号为:admin 默认的密码为:admin
继续。
选择free版本,继续。
继续。
输入ip范围,点击搜索。
选择主机,继续。
选择更多选项。
填入上面设置的httpd所产生的网络文件系统的地址,点击保存修改,等待自动刷新。
选择版本,选中自定义存储库。
继续。
由于已经安装jdk,所有此处不做任何处理,继续。
不设置单用户模式,继续。
设置用户名和密码,继续。
等待安装agent完成,继续(忘了截图= =!!)。
等待安装Parcel完成,继续。
等待主机检查完成。
主机检查完成,但出现警告,按照提示修改警告内容,将可以修改的修改掉,并重新检查主机,尤其是透明化页面,不进行修改的话可能导致占用内存过高,安装失败。
选择自定义服务,并选择自己要安装的内容,这里安装的东西应尽可能的少,避免安装内容过多导致安装过程缓慢。
分配节点,关于Cloudera Management Service 的节点,尽量将他们分散到不同主机安装,所有节点都安装在一起可能会导致占用内存过高,cm server服务死掉,安装失败。
设置数据库连接,测试连接通过,继续。
审核修改完成,继续。
集训设置完成,继续。
完成安装,回到主页面。
安装出错,可以通过卸载全部服务,再次进行安装,但是再次安装之前必须排错。
卸载命令:
1.停止service
service cloudera-scm-agent stop
service cloudera-scm-server stop
2.检查service是否停止,没有停止的话直接kill掉。
ps -ef | grep cloudera-scm
ps -ef | grep supervisord
kill -9 pid
之后重新检查
3.卸载 /var/run/cloudera-scm-agent/process
umount /var/run/cloudera-scm-agent/process
4.卸载安装包
rpm -qa | grep cloudera 查找安装的服务
rpm -e --nodeps 服务名称 卸载安装的服务
5.删除配置文件,直接复制命令,于各个节点上执行。
rm -rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/cloudera* /var/log/cloudera* /var/run/cloudera*
rm -rf /var/lib/cloudera-scm-server-db
rm -rf /tmp/.scm_prepare_node.lock /tmp/hdperfdata_hadoop /tmp/hsperfdata_hdfs /tmp/hsperfdata_mapred /tmp/hsperfdata_zookeeper /tmp/hsperfdata_cloudera-scm /tmp/hadoop-root
rm -rf /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/lib/solr /var/lib/sqoop* /var/lib/zookeeper
rm -rf /dfs /mapred /yarn
rm -rf /etc/cloudera*
rm -rf /var/cache/yum/x86-64/6/cloudera*
rm -rf /var/lib/hadoop-* /var/lib/impala /var/lib/solr /var/lib/zookeeper /var/lib/bue /var/lib/oozie /var/lib/pgsql
rm -rf /var/lib/sqoop2/ /data/hdfs/ /data/impala/ /data/yarn/ /dfs/ /impala/ /yarn/
rm -rf /var/run/hadoop-*/ /var/run/hdfs-*/ /usr/bin/hadoop* /usr/bin/zookeeper* /usr/bin/hbase*
rm -rf /usr/bin/hive* /usr/bin/hdfs /usr/bin/hadoop* /usr/bin/zookeeper* /usr/bin/hbase*
rm -rf /etc/hadoop* /etc/zookeeper* /etc/hue /etc/sqoop* /etc/oozie /etc/hbase* /etc/hcatalog
rm -rf /var/run/zookeeper
rm -rf /tmp/scm_prepare_node* /tmp/.scm_prepare_node.lock
6.删除parcel包分发文件和解压文件
rm -rf /tmp/A* /tmp/cmf* /tmp/J* /tmp/jffi* /tmp/q* /tmp/scm*
rm -rf /data/01/zookeeper /data/01/dfs /data/01/mapred
rm -rf /opt/cloudera
7.删除软连接
ls -l /etc/alternatives | grep -E 'CDH|cloudera' | awk '{print $9}' | while read line; do rm -rf /etc/alternatives/$line ; done
8.删除数据库
drop database cmf
drop database amon