一、准备工作
1、安装Java JDK(所有节点)
从官网上下载rpm包,可从以下网址下载Java JDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我使用的是 jdk-8u121-linux-x64.rpm,执行命令:
rpm -ivh jdk-8u121-linux-x64.rpm
由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可:
<1> 打开文件:
vi /etc/profile
<2> 在文件下面添加 :
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
<3> 执行生效
source /etc/profile
<4> 验证
java -version
2、卸载系统自带的OpenJDK(所有节点)
此处也可先安装新的JDK,再通过yum remove卸载自带的OpenJDK。
查看当前java版本:
java -version
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
...
由上可知,说明系统中已经安装了OpenJDK,执行一下命令查看系统中有哪些OpenJDK相关包:
rpm -qa | grep java
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
tzdata-java-2016g-2.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
j rpm -ivh ava-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
使用 rpm -e –nodeps 命令卸载OpenJDK,例如:
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
3、修改主机名
<1> 修改 /etc/sysconfig/network 文件:
NETWORKING=yes
HOSTNAME=master.hadoop
<2> 设置hosts
其中HOSTNAME与主机名一致。主机名如果跟系统安装时不一致请执行hostname命令让其立即生效,否则会影响各节点互相访问。
修改 /etc/hosts 文件,添加:
10.0.1.166 master.hadoop (IP自行设置)
其中,前面的IP为主机IP,后面为主机名
<3> 执行命令:
service network restart
另一种方法是(仅限在CentOS7上使用):
hostnamectl set-hostname master.hadoop
su -
上面这个命令可以直接修改hostname并重置hosts中的主机名
4、设置SSH无密码登录(所有节点)
5、关闭防火墙(所有节点)
- 防火墙会引起hadoop相关组件通讯的各种异常
CentOS6关闭防火墙
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)
CentOS7关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
6、关闭SELinux(关闭安全模式)(所有节点)
进入 config 配置文件
vi /etc/selinux/config
修改配置
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled (注意此处的disabled别写错!!!)
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
然后重启查看状态
sestatus
7、安装配置MySQL(master主节点)
安装方法一:
yum install wget
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
#卸载无关数据库软件
rpm -qa |grep mariadb
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
#安装mysql rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
#查看安装那个版本的
yum repolist all | grep mysql
#若想换版本才操作该文件
vi mysql-community.repo
#安装
yum install mysql-community-server
安装方法二:
安装方法二:
CentOS7下快速安装MySQL,CentOS7的yum源中貌似没有正常安装MySQL时的mysql-sever文件,需要去官网上下载
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server
成功安装之后重启mysql服务
service mysqld restart
删除安装下的mysql文件
rm -Rvf /var/lib/mysql/*
重新解压初始化mysql软件文件
mysqld --initialize-insecure
如果报以下错误
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
执行
chown -R mysql:mysql /var/lib/mysql
初次安装mysql是root账户是没有密码的
设置密码的方法
mysql -uroot
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword ');
mysql> exit
远程授权连接mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
二、安装clourdera-manage
1、创建数据库(此步骤不先创建数据库也可以,以后需要用到时创建)
- 若在后面的配置安装时,选择了下面的服务,则需要安装相应的数据库
Hive
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Activity Monitor
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Hue
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Activity Oozie (可选)
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
2、授权root用户在主节点拥有所有数据库的访问权限
mysql> grant all privileges on *.* to 'root'@'主机名hostname,也可以是IP' identified by '数据库密码' with grant option;
mysql> flush privileges;
3、下载安装CDH所需要的文件
<1>下载CDH安装文件
上图标示了安装CDH所需要的文件。
可从官网下载,下面给出官网下载链接:
CM下载地址:
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz
CDH下载地址:
http://archive.cloudera.com/cdh5/parcels/5.9.0.23/CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel
http://archive.cloudera.com/cdh5/parcels/5.9.0.23/CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.9.0.23/manifest.json
解压安装
(1)解压 cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz
(2)将cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz解压至/opt,注意必须解压至/opt目录
tar -xzvf cloudera-manager-centos7-cm5.10.0_x86_64.tar.gz -C /opt/
(3)将mysql-connector-java-5.1.40-bin.jar拷贝至/usr/share/java 并重新命名为mysql-connector-java.jar(有时包jdbc驱动找不到一般是此步骤未做)
(4)初始化CM mysql库
执行下面的语句会创建名称为:cm的数据库,该数据库是Cloudera Manager相关数据保存的数据库
/opt/cm-5.9.0/share/cmf/schema/scm_prepare_database.sh mysql
cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
其中,mysql后面跟的是数据库名,-u后面跟数据库用户名 -p后面跟数据库用户密码,执行成功之后,进入mysql就会发现已经有cm库了。
(5)创建用户(所有节点执行)
useradd --system --home=/opt/cm-5.9.0/run/cloudera-scm-server/
--no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
(6)Agent配置
进入config.ini文件
vi /opt/cm-5.9.0/etc/cloudera-scm-agent/config.ini
server_host=master.hadoop
修改 server_host=master.hadoop,该server_host设置为当前主机名,不知道可通过hostname命令查看。
(7)将parcel文件放至/opt/cloudera/parcel-repo目录
同时将CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1重命名为CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha,执行以下命令:
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha
(8)启动服务
#启动服务端
/opt/cm-5.9.0/etc/init.d/cloudera-scm-server start
#启动Agent服务(在server服务启动完毕之后再启动agent服务)
/opt/cm-5.9.0/etc/init.d/cloudera-scm-agent start
(9)启动完agent服务之后,查看log
# server服务log文件位置
/opt/cm-5.9.0/log/cloudera-scm-server/cloudera-scm-server.log
# agent服务log文件位置
/opt/cm-5.9.0/log/cloudera-scm-agent/cloudera-scm-agent.log
若Agent服务log出现以下报错,则可能是系统自带OpenJDK残留文件的问题,需要卸载jdk重新安装,具体查找问题及解决方法在下面给出。
Traceback (most recent call last):
File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/agent.py", line 710, in start
self._init_after_first_heartbeat_response(resp_data)
File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/agent.py", line 840, in _init_after_first_heartbeat_response
self.client_configs.load()
File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/client_configs.py", line 682, in load
new_deployed.update(self._lookup_alternatives(fname))
File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/client_configs.py", line 432, in _lookup_alternatives
return self._parse_alternatives(alt_name, out)
File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/client_configs.py", line 444, in _parse_alternatives
path, _, _, priority_str = line.rstrip().split(" ")
ValueError: too many values to unpack
解决方法
依次执行以下两条命令:
alternatives --list | awk '{print $1}' | xargs -n1 alternatives --display |grep "^/" > all_alternatives.txt
awk -F ' ' -v NCOLS=4 'NF!=NCOLS{printf "Wrong number of columns at line %d\n", NR}' all_alternatives.txt
若有错误,会打印出类似于下面的错误:
Wrong number of columns at line 7
此时会生成一个 all_alternatives.txt文件,打开该文件到指定行处查看引发错误的原因,一般错误为:
usr/lib64/IcedTeaPlugin.so - family java-1.8.0-openjdk.x86_64 priority 18000
此时需要通过yum remove 卸载已安装的jdk,并重新安装,再进行上面的命令测试,一般错误解除。
#查看已安装和可安装的JDK
yum list |grep jdk
#卸载已安装的JDK
yum remove jdk1.8.0_121.x86_64
#再次安装JDK
rpm -ivh jdk-8u121-linux-x64.rpm
三、进入Cloudera Manager安装图解
1、使用admin登录,账号密码均为admin
2、勾选然后继续
3、按需选择,选择免费
4、选择当前主机
5、选择自己的主机
仅在自己机器上安装了CDH时,只会显示自己的机器信息,则选择该机器就行。
6、选择存储库,并选择CDH版本
由于我们已经预先将CDH5.9.0的包放到了服务器,所以选择5.9.0即可,此处选择时要慎重,若选择了别的版本,会重新下载文件,若该文件选择列表没有我们预先放置到 /opt/cloudera/parcel-repo 该目录下的CDH-5.9.0文件时,则查看log,看下载的文件是否有问题,更改后重启服务。
7、正在安装选定Parcel
8、检验主机正确性
9、集群设置(选择自定义服务)
10、安装的服务(可自行选择)
此处可选择一些基本的服务,安装完成后,可以再根据自己的需求添加需要的服务。
11、自定义角色分配(使用默认配置)
12、数据库设置
13、数据库设置时的问题
1、此处填写的数据库名称即为前面步骤中创建的数据库名,若没有选择安装这些服务,则不会出现相应的服务数据库配置。
2、若数据库设置时,数据库易创建,用户名、密码均无误,但出现下图所示问题,则需要在本机配置host,配置表位置:C:\Windows\System32\drivers\etc\hosts (若在该目录内改不了,复制到桌面修改完之后再复制回去),这样才能够通过hostname从本地访问到远程服务器的数据库。
14、解决hue数据库连接出错问题
查看cloudera-scm_server.log发现如下报错:
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory
从别的机器中拷贝 libmysqlclient.so.18.1.0文件,放置以下目录并创建相关软链接
/usr/lib64/mysql
lrwxrwxrwx 1 root root 20 2月 22 15:09 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx 1 root root 24 2月 22 15:08 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx 1 root root 24 2月 22 15:07 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x 1 root root 9579456 2月 22 15:05 libmysqlclient.so.18.1.0
进入 /usr/lib64目录,创建软链接
ln -s /usr/lib64/mysql/libmysqlclient.so.18 libmysqlclient.so.18
再进行测试连接,成功~
15、审核更改,先使用默认
16、首次运行命令
该地方会运行前面你选择安装的服务,根据安装服务的多少,等待时间不同,耐心等待,全部运行完成后,再点击继续。
最后,安装配置运行全部搞定~~~
Flume、hive、hbase、hue等经常用到的大数据实现软件,都可以在CDH上进行安装,并且可统一在CDH上进行配置、参数调优等操作,极大的方便了大数据业务的开展。