CDH搭建Hadoop集群(Centos7)

1、说明 

节点(CentOS7.5) Server  || Agent CPU
node11 Server  || Agent 4G
node12 Agent 2G
node13 Agent 2G

2、系统环境搭建

一、网络配置(全部节点)

1.设置主机名和IPjava

2.配置/etc/hosts  IP和主机名的映射  node

二、SSH免密码登陆

1.产生公钥和私钥:ssh-keygen -t rsa (一直回车直便可)mysql

2.将公钥分发给全部节点(包括本机):  ssh-copy-id -i 主机名linux

3.测试ssh访问:    ssh root@主机名sql

三、关闭防火墙

1.关闭防火墙:systemctl stop firewalldshell

2.防止开机自启:systemctl disable firewalld数据库

3.查看状态:firewall-cmd --statevim

四、关闭SELINUX

1.编辑  vi /etc/selinux/configcentos

2.将SELINUX设置为:SELINUX=disabled浏览器

[root@node11~]# sestatus -v

SELinux status: disabled 表示已经关闭了

五、安装JDK

1.查看安装的Java信息:

rpm -qa | grep java

2.卸载自带open jdk

rpm -e --nodeps 包名

3.建立/usr/java目录,并上传包到此目录下,而后将rpm包解压到此目录下

rpm -ivh  jdk-8u191-linux-x64.rpm

4.配置环境变量

vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_191

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5.使配置后的环境变量生效

source /etc/profile

6.查看是否安装成功

java -version

六、设置NTP

[root@node11~]#yum -y install ntp 更改master的节点

[root@node11~]## vi /etc/ntp.conf 注释掉全部server *.*.*的指向,新添加一条可链接的ntp服务器(我选的本公司的ntp测试服务器)

server 172.30.0.19 iburst 在其余节点上把ntp指向master服务器地址便可(/etc/ntp.conf下) server node11 iburst

[root@node11~]## systemctl start ntpd //启动ntp服务

[root@node11~]## systemctl status ntpd //查看ntp服务状态

七、安装配置MySql

(主节点安装便可--这里将node11做为主节点)

1.卸载mariadb

rpm -qa|grep mariadb

rpm -e --nodeps mariadb的包名

 

2.上传MySQL包到自建目录:/opt/software

3.安装MySQL

# groupadd mysql # useradd -r -g mysql -s /sbin/nologin mysql # cd /usr/local/ # tar zxvf /root/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz # ln -s mysql-5.7.21-linux-glibc2.12-x86_64/ mysql # cd mysql # mkdir mysql-files # chown -R mysql.mysql . # bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # cp -rf /etc/my.cnf /etc/my.cnf.old # vim /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data skip-grant-tables 

启动mysql

# bin/mysqld_safe --user=mysql &
# cp support-files/mysql.server /etc/init.d/mysql # chmod a+x /etc/init.d/mysql # chkconfig --add mysql # chkconfig mysql on # service mysql start

设置root的密码

mysql> use mysql; mysql> update user set authentication_string=PASSWORD('123456') where User='root'; mysql> alter user root@'localhost' identified by '123456'; //修改密码

从新初始化

# killall mysqld # rm -rf /usr/local/mysql/data/ # chown -R mysql.mysql /usr/local/mysql # bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # bin/mysql_ssl_rsa_setup # service mysqld restart

受权root用户使用密码从任意主机链接到mysql服务器

GRANT ALL PRIVILEGES ON *.* TO 'ROOT'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;

flush privileges; 

3、Cloudera Manager Server&Agent安装 

CM安装包下载地址:   https://archive.cloudera.com/cm5/cm/5/

CDH安装包下载地址:  http://archive.cloudera.com/cdh5/parcels/5.15.0/

一、安装Cloudera Manager Server&Agent

上传到/home/tools下 (三台机器都要安装)    tar xvzf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz  -C /opt

二、配置CM Agent

1.cm的安装包的serveragent都是同一个包,启动的时候启动命令指定为server仍是agent

2.cm有一个工做目录,须要咱们来建立;建立一个用户;修改agent的配置,给它指定server的位置;那个端口7182serveragent通讯的端口;

3.server_host配置为server的名字;

vi   /opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini   中 server_host(三台机器)

三、建立用户cloudera-scm(全部节点)

  useradd --system --home=/opt/cm-5.15.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

四、建立Parcel目录

建立parcel目录,这个目录是serveragent用来接收和发送数据的目录,server端的parcel-repo这个目录会把全部的安装文件所有下载到此目录,而agent也须要安装包,parcels就是用来存储指定的安装包的,固然须要有权限能操做这些目录;

Server节点

  mkdir -p /opt/cloudera/parcel-repo

  chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

Agent节点

 mkdir -p /opt/cloudera/parcels

 chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

把CDH安装包移到cloudera/parcel-repo下面,并修改其中后缀为sha1的文件为sha,以下

五、配置CM Server的数据库

cp mysql-connector-java.jar /opt/cm-5.15.0/share/cmf/lib/                 注意jar包名称要修改成mysql-connector-java.jar

mysql -u root -p123456
use mysql;
grant all on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;­
初始化cm数据库:   cd /opt/cm-5.15.0/share/cmf/schema/
 ./scm_prepare_database.sh mysql cm -h node11 -uroot -p123456 --scm-host node11 scm scm scm  
格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器 

建立其余组件须要的数据库

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

六、启动CM Manager&Agent服务

先确保启动了mysql  service mysqld start

node11:执行    /opt/cm-5.15.0/etc/init.d/cloudera-scm-server start

node11,12,13:   执行  /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start 

service服务启动须要几分钟,取决于服务器的性能,此时咱们可使用

netstat -apn|grep 7180

 查询端口被占用后,就能够用浏览器打开http://node11:7180/进行访问了,登陆用户名与密码分别为admin。

七、Server&Agent开机自启动服务

将/opt/cm-5.15.0/etc/init.d/目录下的cloudera-scm-server服务器启动脚本和cloudera-scm-agent代理服务启动脚本复制到/etc/init.d/目录下面。(/etc/init.d/目录用于存放开机启动脚本的目录)

//配置server主节点node11
[root@node11 ~]# cp /opt/cm-5.15.0/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
[root@node11 ~]# chkconfig --add cloudera-scm-server
[root@node11 ~]# chkconfig cloudera-scm-server on 
[root@node11 ~]# vi /etc/init.d/cloudera-scm-server 
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default} 修改成 CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cm-5.15.0/etc/default}  #你的cloudera manager安装目录,而后保存退出便可。
添加:export JAVA_HOME=/usr/local/java/jdk1.8           #你的java安装目录
[root@node11 ~]# chkconfig --list cloudera-scm-server  //而后查看状态,若是2-5显示开启表示配置成功。
[root@node11 ~]# service cloudera-scm-server start & systemctl start cloudera-scm-server.service
//配置agent全部节点,node11,node12,node13 [root@node11 ~]# cp /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent [root@node11 ~]# chkconfig --add cloudera-scm-agent [root@node11 ~]# chkconfig cloudera-scm-agent on [root@node11 ~]# vi /etc/init.d/cloudera-scm-agent CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default} 修改成 CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cm-5.15.0/etc/default} 添加:export JAVA_HOME=/usr/local/java/jdk1.8 #你的java安装目录 [root@node11 ~]# service cloudera-scm-agent start & systemctl start cloudera-scm-agent.service

4、CDH5安装 

 下一步,选择免费版本

继续,下一步,直到以下界面,能够在当前管理的主机列表中看到对应的节点。选择要安装的节点,这里我选择所有节点,继续。

选择本身下载的CDH版本,点击继续

接下来是安装Parcel,服务器检查,

更改交换空间:  

echo 10 > /proc/sys/vm/swappiness

以下禁用此设置,而后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。如下主机将受到影响: 

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

从新运行检测,

所有完成,点击完成,这里选择自定义安装

服务配置,通常状况下保持默认就能够了,也能够本身手动根据节点状况进行分配,点击继续

测试以下数据库链接

这里启动hive报错找不到mysql链接驱动包,靠备一份  mysql-connector-java.jar   到    /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hive/lib/下面

点击继续,默认集群设置,直到安装成功. 

5、安装过程当中报错