CDH的安装

环境5台装有centos 6.9系统的服务器

1.网络配置

sudo vi /etc/sysconfig/network修改hostname:

NETWORKING=yes
HOSTNAME=ZXXS-52

通过service network restart重启网络服务生效
sudo vi /etc/hosts,将集群中主机ip 与主机名添加进去

10.30.100.52    ZXXS-52    master1
10.30.100.53    ZXXS-53   master2
10.30.100.54    ZXXS-54    slave1
10.30.100.55    ZXXS-55    slave2
10.30.100.56    ZXXS-56    slave3

集群中的每台机器都需要配置,且需要一致。

2.SSH无密码登陆

现在主节点执行命令rm -rf ~/.ssh/*删除已有的密钥,然后执行ssh-keygen -t rsa一路回车,生成三个文件
authorized_keys:授权文件,存放远程登陆的公钥
id_rsa:生成的私钥文件
id_rsa.pub:生成的公钥文件
在配置过程中对权限也有要求

  • 1..ssh目录的权限必须是700
  • 2..ssh/authorized_key文件的权限必须是600

将公钥添加到授权文件中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
并设置权限chmod 600 ~/.ssh/authorized_keys
并将文件复制到所有的节点中:scp ~/.ssh/authorized_keys hadoop@ZXXS-52:~/.ssh/,这样就可以实现单方向的无密码登陆了。那如果向实现双向无密码登陆怎么办?有两种方法

  • 1.将.ssh下面的文件全部拷贝到其他节点
  • 2.在其他节点进行无密码设置,并将id_rsa.pub追加到主节点的授权文件authorized_keys中,并将该文件分发到 各个节点。

注意在scp命令中username@hostname,username是登陆的用户,hostname是主机名,也可以是ip地址。如果远程登陆的用户和被登陆主机的用户相同可以省略username,如下
scp -P 3600 jdk-8u144-linux-x64.rpm 10.30.100.53:/home/hadoop/

3.安装Java环境

centos默认安装的是openjdk,不知是否满足cdh的需求,索性就直接卸载掉了。先使用命令rpm -qa | grep java找出所有与Java相关的安装包,卸载自己安装的Java可能需要命令是rpm -qa | grep jdk使用强制卸载命令一一卸载rpm -e --nodeps 包名,在官网下载jdk8的rpm格式。
安装rpm -ivh jdk-8u144-linux-x64.rpmrpm这种安装方式不需要配置环境变量,不过我们还是配置一下sudo vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH  
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4.启用NTP(Network Time Protocol)

参考官网,CHD要求集群中的主机时间保持同步,所以就需要在集群中的每台机器配置NTP服务,并且要求开机自动启动。配置开机启动chkconfig ntpd on,并检查是否设置成功chkconfig --list ntpd,其中2-5为on代表成功。进入/etc/ntp.conf查看配置文件,手动校准sudo ntpdate -u 0.centos.pool.ntp.org

5.MySQL

Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等;元数据需要不断的更新、需要将元数据存储在数据库中,录入mysql。
使用命令yum install mysql-server安装mysql服务器,使用命令chkconfig mysqld on设置开机启动,并service mysqld start启动mysql服务,设置root的初始密码mysqladmin -u root password 'admin'。密码设置好了,使用命令mysql -uroot -padmin进入mysql的命令控制台。

sql
#Activity Monitor
create database amon DEFAULT CHARACTER SET utf8;

#Reports Manager
create database rman DEFAULT CHARACTER SET utf8;

#Hive Metastore Server
create database hive DEFAULT CHARACTER SET utf8;

#Sentry Server
create database sentry DEFAULT CHARACTER SET utf8;

#Cloudera Navigator Audit Server
create database nav DEFAULT CHARACTER SET utf8;

#Cloudera Navigator Metadata Server
create database navms DEFAULT CHARACTER SET utf8;

为root用户授权访问以上所有的数据库的权限:

grant all privileges on *.* to 'root'@'ZXXS-52' identified by 'admin' with grant option;
flush privileges;  --立即生效

也可以是单独创建一个用户并授权:

CREATE USER 'uname'@'%' IDENTIFIED BY 'password';
GRANT all privileges ON database.* TO 'uname'@'%' identified by 'password';
flush privileges;

查看mysql的编码:
mysql> show variables like '%char%';

修改编码:set character_set_connection utf8

5.安装

下面的安装比较的简单,因为是可视化。就不细说了可以参考这一篇,下面只说我安装时候出现的问题


我把这两个设置成一样,然后就会卡在激活状态,另外一个就是将mysql的驱动复制到hive的lib中。这些都比较简单,因为有很清楚的日志

原文地址:https://www.cnblogs.com/wxshi/p/7598219.html