一、前期准备
1、关闭防火墙
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
$ sudo systemctl status firewalld
2、hostname及hosts配置,添加主机IP和机器名映射
$ sudo hostnamectl set-hostname hadoop01
$ sudo vim /etc/hosts
10.12.2.193 hadoop01
。。。
3、配置ssh免秘钥登录
$ ssh-keygen -t rsa -P ‘’
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ ssh-copy-id -i ~/.ssh/id_rsa.pub 10.12.2.193
$ ssh-copy-id -i ~/.ssh/id_rsa.pub 10.12.2.xxx
4、禁用SELinux
$ sudo setenforce 0
$ vim /etc/selinux/config
5、集群时钟同步
5.1 在hadoop01节点上部署ntp服务并进行配置
保存退出,然后启动ntp服务并设为开机启动:
service ntpd start && chkconfig ntpd on
5.2在集群其他节点安装ntp服务,并将ntp服务server指向hadoop01
重启所有节点的ntp服务
5.3验证同步
6、配置操作系统repo
$ sudo mkdir /media/DVD1
$ sudo mount -o loop CentOS-7-x86_64-DVD-1511.iso /media/DVD1/
配置操作系统repo
$ sudo vim /etc/yum.repos.d/local_os.repo
[local_iso]
name=CentOS-$releasever - Media
baseurl=file:///media/DVD1
gpgcheck=0
enabled=1
刷新查看repo文件
$ sudo yum repolist
7、安装http服务
$ sudo yum -y install httpd
启动或停止httpd服务
$ sudo systemctl start httpd
安装完httpd后,重新制作操作系统repo,换成http的方式方便其它服务器也可以访问
$ sudo mkdir /var/www/html/iso
$ sudo mount -o loop CentOS-7-x86_64-DVD-1511.iso /var/www/html/iso
$ sudo vim /etc/yum.repos.d/os.repo
检查新的repo
$ sudo yum repolist
8、检查安装createrepo
$ sudo yum -y install createrepo
9、安装MariaDB
将包下载到本地,放在同一目录,移动数据包到/var/www/html/mariadb,执行createrepo命令生成rpm元数据
$ createrepo /var/www/html/mariadb
安装MariaDB依赖
$ sudo yum install libaio perl perl-DBI perl-Module-Pluggable perl-Pod-Escapes perl-Pod-Simple perl-libs perl-version
制作本地repo
检查新的repo
$ sudo yum repolist
安装MariaDB
$ sudo yum -y install MariaDB-server MariaDB-client
注意:在安装的过程中可以看到MariaDB-server并没有安装,这个时候需手动去安装server
$ cd /var/www/html/mariadb
$ sudo rpm -ivh MariaDB-10.0.33-centos7-x86_64-server.rpm
即可完成MariaDB的server的安装
启动并配置MariaDB
$ sudo systemctl start mysql
$ sudo /usr/bin/mysql_secure_installation
10、配置MariaDB主备
主服务器:
$ mysql -uroot -padmin123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.2.1-MariaDB MariaDB Server
Copyright © 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> grant replication slave,replication client on . to ‘uec’@‘10.12.2.%’ identified by ‘admin123’;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show master status\G
*************************** 1. row ***************************
File: master-log.000001
Position: 931
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
MariaDB [(none)]>
从服务器:
$ mysql -uroot -padmin123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.2.1-MariaDB MariaDB Server
Copyright © 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> change master to master_host=‘10.12.2.105’,master_user=‘uec’,master_password=‘admin123’,master_log_file=‘master-log.000001’,master_log_pos=931;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.12.2.105
Master_User: uec
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-log.000001
Read_Master_Log_Pos: 931
Relay_Log_File: slave-log.000002
Relay_Log_Pos: 542
Relay_Master_Log_File: master-log.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 931
Relay_Log_Space: 838
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: No
Gtid_IO_Pos:
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: conservative
1 row in set (0.00 sec)
MariaDB [(none)]>
11、新建cloudera所需数据库
添加jdbc驱动
$ sudo mkdir -p /usr/share/java/
$ sudo mv mysql-connector-5.1.44-bin.jar /usr/share/java/
$ cd /usr/share/java
$ sudo ln -s mysql-connector-java-5.1.44-bin.jar mysql-connector-java.jar
12、卸载openjdk,使用rpm安装jdk1.8
$ rpm -ivh jdk-8u121-linux-x64.rpm
二、安装cloudera manager
1、配置CM本地repo源,将Cloudera Manager安装需要的7个rpm包下载到本地,放在目录/var/www/html/cm,执行createrepo命令生成rpm元数据。
[goldwind@hadoop01 my.cnf.d]$ sudo createrepo /var/www/html/cm
2、配置CDH数据包源,将CDH安装需要的3个rpm包下载到本地,放在目录
/var/www/html/cdh
3、使用yum安装Cloudera Manager Server
$ sudo yum -y install cloudera-manager-server
4、初始化数据库
$ sudo /usr/share/cmf/schema/scm_prepare_database.sh -h 10.12.2.107 mysql cm cm admin123
5、启动Cloudera Manager Server
$ sudo systemctl start cloudera-scm-server
6、监听端口是否监听
$ sudo netstat -lnpt | grep 7180
7、查看cloudera server日志
$ tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
8、查看CM,chrom通过http://10.12.2.193:7180访问CM
三、CDH安装
1、cdh集群安装向导,admin/admin登录到CM,同意license协议,点击继续
2、选择安装的版本,选择试用60,点击继续
3、点击继续
4、输入主机IP或者机器名,点击搜索找到主机后点击继续
5、点击继续,使用parcel数据包安装,点击“更多选项”,删除其他的地址,然后输入http://10.12.2.193/cdh/,点击“保存更改”。
6、选择自定义存储库,输入CM的地址
7、点击“继续”,由于之前已经安装JDK,故此处不需要勾选安装jdk。
8、选择用户模式,直接进入下一步,默认是多用户模式
9、点击“继续”,进入下一步配置ssh账号密码。
注意:此处使用的是CDH用户并且添加用户密码。
10、点击“继续”,进入下一步,安装Cloudera Manager相关到各个节点。
11、点击“继续”,进入下一步,安装cdh到各个节点。
12、点击“继续”,进入下一步主机检查,确保所有检查项均通过
13、点击“完成”进入服务组件安装向导,选择“自定义服务”,安装HDFS,。
14、点击“继续”,进入集群组件角色分配。
15、点击“继续”,进入下一步,配置CM的外部数据库
16、点击“继续”,进入下一步,配置HDFS的数据目录
17、HDFS初始化启动
18、点击“继续”,完成安装。
四、添加其他组件
1、添加yarn组件
1.1、添加服务组件yarn。
1.2、点击“继续”,进入集群组件角色分配
1.3、点击“继续”,进入下一步,配置YARN的数据目录
1.4、yarn组件初始化
1.5、点击“继续”,完成安装
2、添加服务组件zookeeper
2.1、添加服务组件zookeeper。
2.2、点击“继续”,进入集群组件角色分配
2.3、点击“继续”,进入下一步,配置zookeeper的数据目录
2.4、Zookeeper组件初始化
2.5、点击“继续”,完成安装
3、添加服务组件Hive
3.1、添加服务组件Hive。
3.2、点击“继续”,添加hive的依赖组关系
3.3、点击“继续”,进入集群组件角色分配
3.4、点击“继续”,进入下一步,配置hive的元数据存储库。
3.5、点击“继续”,进入下一步,配置hive的数据仓库目录
3.6、Hive组件初始化
3.7、点击“继续”,完成安装
4、添加服务组件Oozie
4.1、添加服务组件Oozie,在安装Oozie之前需添加一个外部的EXT的编译包到lib目录下,解压缩即可.
$ sudo unzip ext-2.2.zip
$sudo cp -r ext-2.2 /opt/cloudera/parcels/CDH/lib/oozie/lib/
$sudo cp -r ext-2.2 /opt/cloudera/parcels/CDH/lib/oozie/libext/
$sudo cp -r ext-2.2 /var/lib/oozie
添加服务组件Oozie。
4.2、点击“继续”,进入集群组件角色分配
4.3、点击“继续”,进入下一步,配置Oozie的元数据存储库。
4.4、点击“继续”,进入下一步,进行Oozie组件初始化
4.5、点击“继续”,完成安装
5、添加服务组件HUE
5.1、添加服务组件Hue
5.2、点击“继续”,进入集群组件角色分配
5.3、点击“继续”,进入下一步,配置Hue的元数据存储库。
5.4、点击“继续”,进入下一步,进行Hue组件初始化
5.5、点击“继续”,完成安装
6、添加服务组件kafka
6.1、添加服务组件kafka,由于cloudera集成的kafka服务版本较低,故使用外部parcel包安装,将下载的kafka数据包做成http服务添加即可。
6.2、添加服务组件kafka
6.3、点击“继续”,进入集群组件角色分配
6.4、点击“继续”,进入下一步,配置kafka的相关数据目录。
6.5、点击“继续”,进入下一步,进行kafka组件初始化
6.6、点击“继续”,完成安装
7、配置集群LZO压缩
7.1、添加lzo压缩,使用外部parcel包安装,将下载的lzo数据包做成http服务添加即可。
7.2、修改HDFS配置
在io.compression.codecs属性值中追加如下值:
com.hadoop.compression.lzo.LzoCodec
com.hadoop.compression.lzo.LzopCodec
7.3、修改YARN配置
mapreduce.application.classpath的属性值增加一项:
/opt /cloudera/parcels/GRLEXTRAS/lib/hadoop/lib/*
修改mapreduce.admin.user.env的属性值,增加一项:
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/native,如下图所示:
7.4、重启集群生效。
8、添加服务组件kudu
8.1、添加服务组件kudu,使用外部parcel包安装,将下载的kudu数据包做成http服务添加即可。
8.2、点击“继续”,进入集群组件角色分配
8.3、点击“继续”,进入下一步,配置kudu的相关数据目录。
8.4、点击“继续”,完成初始化启动
8.5、完成安装
9、添加服务组件impala
9.1、添加服务组件impala
9.2、点击“继续”,进入impala集群组件依赖关系选择
9.3、点击“继续”,进入集群组件角色分配
9.4、点击“继续”,进入下一步,配置impala的相关数据目录。
9.5、点击“继续”,完成初始化启动
9.6、完成安装
10、添加服务组件spark2
10.1、添加服务组件spark2,使用外部parcel包安装,将下载的spark数据包做成http服务,拷贝spark的csd文件jar包到/opt/cloudera/csd下边,然后重启cloudera-scm-server服务添加即可。
10.2、点击“继续”,进入集群,选择spark2的依赖关系
10.3、点击“继续”,进入集群组件角色分配
10.4、点击“继续”,进入下一步,完成安装
11、添加服务组件sqoop1
11.1、添加服务组件sqoop1,sqoop1集成到cloudera中只是一个client,并没有做成服务。
11.2、点击“继续”,进入集群组件角色分配
11.3、点击“继续”,进入下一步,完成sqoop1的初始化
11.4、点击“继续”,完成安装
五、配置服务组件HDFS HA
1、进入组件HDFS的操作页面,点击“操作”,可看到“启动High Avaliability”
2、指定HA服务名,使用默认即可
3、添加需要做standby的主机,此处选择hadoop3 为备用namenode,hadoop2为主namenode。选择hadoop1,hadoop2,hadoop3为三台journalnode。
4、配置三台journalnode的数据目录。
5、HDFS HA配置完成
6、根据上一步指示完成后续操作:配置Hue代替NameNode提供HDFS的Web接口,需要在HDFS中增加HttpFS实例服务。
7、配置Hue
8、HIVE中更新Hive Metastore NameNodes,首先停止hive服务
9、进入Hive组件,点击“操作”,点击更新元数据按钮,并确认更新hive元数据。
10、Hive元数据更新结束
11、重启hive服务即可,完成集群的HDFS HA的配置