• 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中。这些都比较简单,因为有很清楚的日志

  • 相关阅读:
    LeetCode:43. Multiply Strings (Medium)
    LeetCode: 50. Pow(x, n)
    Web服务器、Web容器、Application服务器、反向代理服务器的区别与联系
    LeetCode:49. Group Anagrams(Medium)
    Java:String、StringBuffer、StringBuilder
    Java:泛型
    spring项目中web-inf下不能引用页面资源
    css Hack
    a标签的嵌套
    css中的绝对定位与相对定位
  • 原文地址:https://www.cnblogs.com/wxshi/p/7598219.html
Copyright © 2020-2023  润新知