• centos6.8安装cdh6.0.0


    https://blog.csdn.net/qq_22946601/article/details/82382931

    1.虚拟机准备,网络配置,host配置,无秘配置,防护墙关闭,ntp服务

    cdh-node1 192.168.128.221

    cdh-node2 192.168.128.222

    cdh-node3 192.168.128.223

    1. 安装配置httpd(主节点)

    yum install httpd

    或者你可以直接输入命令

    yum install -y httpd

    设置Apache开机启动

    chkconfig httpd on

    启动httpd服务

    service httpd start

    3.Linux swappiness参数(所有节点)

    为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0cloudera建议10以下)

    echo 0 > /proc/sys/vm/swappiness

    这样操作重启机器还是还原

    修改配置文件,开机自动设置参数

    编辑vi /etc/sysctl.conf

    在最后添加vm.swappiness=0

     

    4.禁用透明页(所有节点)

    设置方法

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

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

    永久生效

    vi /etc/rc.local 添加上面命令

    给与可执行权限:

    chmod +x /etc/rc.d/rc.local

     

    1. 安装配置jdk

    JDK安装(所有节点)

    卸载原有java

    rpm -qa | grep java # 查询已安装的java

    yum remove java* # 卸载

    安装JDK以及配置环境变量

    rpm -ivh /opt/JDK/jdk-8u144-linux-x64.rpm

    vi /etc/profile

    # 末尾添加

     

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

    export CLASSPATH=.:$CLASSPTAH:$JAVA_HOME/lib

    export PATH=$PATH:$JAVA_HOME/bin

     

    source /etc/profile

     

    1. MYSQL安装(主节点)

    1卸载mariadb

    [root@cdh001 opt]# rpm -qa|grep mariadb

    mariadb-libs-5.5.44-2.el7.x86_64

    [root@cdh001 opt]# rpm -e mariadb-libs-5.5.44-2.el7.x86_64

    error: Failed dependencies:

    libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

    [root@cdh001 opt]# rpm -e postfix-2:2.10.1-6.el7.x86_64

    [root@cdh001 opt]# rpm -e mariadb-libs-5.5.44-2.el7.x86_64

     

    2 MYSQL安装

     

    cd /opt/mysql/

    tar -xvf ./mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar

     

    rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm

    rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm

    报错

    error: Failed dependencies:

        libc.so.6(GLIBC_2.14)(64bit) is needed by MySQL-client-advanced-5.6.22-1.el7.x86_64

        libc.so.6(GLIBC_2.17)(64bit) is needed by MySQL-client-advanced-5.6.22-1.el7.x86_6

    解决方法

    下载响应安装包:http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

    解压: tar xvf glibc-2.14.tar.gz

    进入glibc-2.14目录:cd glibc-2.14

    创建build文件夹:mkdir build

    进入build目录:cd build

    执行:../configure --prefix=/opt/glibc-2.14

    执行:make

    执行:make instal

     

    rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm

    rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm

    rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm

     

    3 MYSQL配置

    mysqld --initialize --user=mysql # 初始化mysql使mysql目录的拥有者为mysql用户

    cat /var/log/mysqld.log # 最后一行将会有随机生成的密码

    systemctl start mysqld.service # 设置mysql服务自启

    mysql -uroot p

    # 输入临时密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; # 修改密码

    4 创建库(后续安装服务等使用)

    CREATE DATABASE cmserver DEFAULT CHARACTER SET utf8;

    GRANT ALL on cmserver.* TO 'cmserver'@'%' IDENTIFIED BY 'cmserver';

     

    CREATE DATABASE hive DEFAULT CHARACTER SET utf8;

    GRANT ALL on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

     

    CREATE DATABASE amon DEFAULT CHARACTER SET utf8;

    GRANT ALL on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';

     

    CREATE DATABASE rman DEFAULT CHARACTER SET utf8;

    GRANT ALL on rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';

     

    CREATE DATABASE oozie DEFAULT CHARACTER SET utf8;

    GRANT ALL on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';

     

    CREATE DATABASE hue DEFAULT CHARACTER SET utf8;

    GRANT ALL on hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';

     

    1. 安装mysql

    inux下安装mysql5.7步骤

    1.解压下载好的.tar.gz文件,并将解压后的文件拷贝到/usr/local/目录下,注意:-C,而不是小写的-c

    tar -xzvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

    2.进入/usr/local/目录下,修改已经解压的文件夹的名字,改为mysql

    mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql

    3.检查数据库文件是否有,若有便删除(linux系统自带的)

      检查:命令rpm -qa | grep mysql

      如果有则删除:命令rpm -e --nodeps mysql-libs-5.1.52.x86_64

    4.检查mysql组和用户是否存在,如无则创建

    检查:cat /etc/group | grep mysql;

         cat /etc/passwd |grep mysql;

    创建:groupadd mysql;

         useradd -r -g mysql mysql

    5.mysql目录下新建data目录

    mkdir data

    6.更改mysql目录下所有的目录及文件夹所属组和用户

    [root@dbserver mysql]# cd /usr/local/

    [root@dbserver local]# chown -R mysql mysql/

    [root@dbserver local]# chgrp -R mysql mysql/

    [root@dbserver local]# cd mysql/

    [root@dbserver mysql]# ls -l

    total 40

    drwxr-xr-x.  2 mysql mysql  4096 Aug 31 16:45 bin

    -rw-r--r--.  1 mysql mysql 17987 Jun 22 22:13 COPYING

    drwxr-xr-x.  2 mysql mysql     6 Aug 31 16:48 data

    drwxr-xr-x.  2 mysql mysql    52 Aug 31 16:45 docs

    drwxr-xr-x.  3 mysql mysql  4096 Aug 31 16:44 include

    drwxr-xr-x.  5 mysql mysql  4096 Aug 31 16:45 lib

    drwxr-xr-x.  4 mysql mysql    28 Aug 31 16:45 man

    -rw-r--r--.  1 mysql mysql  2478 Jun 22 22:13 README

    drwxr-xr-x. 28 mysql mysql  4096 Aug 31 16:45 share

    drwxr-xr-x.  2 mysql mysql    86 Aug 31 16:45 support-files

    7.安装和初始化数据库

    进入/usr/local/mysql/bin目录下,执行命令

    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysq/--datadir=/usr/local/mysql/data/

    如果提示错误:

    [ERROR] Can't find error-message file '/usr/local/mysql/--datadir=/usr/local/mysql/data/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.2017-08-31T08:50:24.709286Z 0 [Warning] InnoDB: New log files created, LSN=45790

    解决:

    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

    如果提示错误内容包含./mysqld: error while loading shared libraries: libnuma.so.1这样的描述错误,这是因为缺少numactl依赖共享库文件:

    解决方案:

    你的当前系统是Centos就执行命令:yum -y install numactl

    你的当前系统是ubuntu就执行命令:sudo apt-get install numactl

    如果提示:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    缺少libaio

    执行yum install -y libaio

    注意:安装成功后,最后一行有提示

    例如我的A temporary password is generated for root@localhost: bke6OmP#<y(w

    请务必记住冒号后面的字符串,这个是数据库root用户初始登录密码,请务必保存下来

    8.配置my.cnf

    进入/usr/local/mysql/support-files/目录下

    查看是否存在my-default.cnf文件,如果存在直接copy/etc/my.cnf文件中:cp -a ./support-files/my-default.cnf /etc/my.cnf

    如果不存在my-default.cnf文件,则在/etc/目录下创建my.cnf,并写入以下内容

    [mysqld]  

    basedir=/usr/local/mysql-5.7.12/

    datadir=/usr/local/mysql-5.7.12/data/

    [mysqld]

    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,

    NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,

    NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    9.启动服务

    进入已安装的mysql目录中的bin目录下执行命令: ./mysqld_safe --user=mysql &

    注意:如果此步骤报错,可以忽略,不用管,继续往下执行下一步。

    配置环境变量

    vi /etc/profile

    export MYSQL_HOME="/software/mysql-5.6.21"

    export PATH="$PATH:$MYSQL_HOME/bin"

    保存退出

    . /etc/profile

     

    6.添加自启动服务

    chkconfig --add mysql

    chkconfig mysql on

     

    7.启动mysql

    service mysql start

    10.mysqld服务加入开机自启动项

    将安装的mysql安装目录中的support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务,

    否则就只能使用{mysql}/bin/mysqld_safe &命令来启动服务

    还需要把mysql.serverbasedir的相关路径,改为自定义的路径,默认路径是/usr/local/mysql

    执行命令:

    拷贝:cp mysql.server /etc/init.d/mysql

    给权限:chmod +x /etc/init.d/mysql

     

    mysql注册为开机启动的服务,命令:chkconfig --add mysql

    查看是否添加成功:chkconfig --list mysql

    如果提示:mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off,则表示已设置开机启动服务项

     

    11.启动服务

    service mysql start

    12.登录mysql

    进入mysql安装的bin目录

    cd /usr/local/mysql/bin

    登录mysql命令:./mysql -u root -p

    回车后输入密码:你第7步记录下来的密码

     

    12.修改root初始密码

    alter user 'root'@'localhost' identified by 'dawning';

    回车后提示下面的内容,表示修改成功

    Query OK, 0 rows affected, 1 warning (0.00 sec)

    修改密码也可以使用sql执行:

    update mysql.user set authentication_string=password("你的新密码") where User="用户名" and Host="%";

    13.设置远程登录权限

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'dawning' WITH GRANT OPTION;

    刷新

    flush privileges;

    mysql> quit

    Bye

     

     

    7.创建库(后续安装服务等使用)

    CREATE DATABASE cmserver DEFAULT CHARACTER SET utf8;

    GRANT ALL on cmserver.* TO 'cmserveruser'@'%' IDENTIFIED BY 'password';

     

    CREATE DATABASE metastore DEFAULT CHARACTER SET utf8;

    GRANT ALL on metastore.* TO 'hiveuser'@'%' IDENTIFIED BY 'password';

     

    CREATE DATABASE amon DEFAULT CHARACTER SET utf8;

    GRANT ALL on amon.* TO 'amonuser'@'%' IDENTIFIED BY 'password';

     

    CREATE DATABASE rman DEFAULT CHARACTER SET utf8;

    GRANT ALL on rman.* TO 'rmanuser'@'%' IDENTIFIED BY 'password';

     

    CREATE DATABASE oozie DEFAULT CHARACTER SET utf8;

    GRANT ALL on oozie.* TO 'oozieuser'@'%' IDENTIFIED BY 'password';

     

    CREATE DATABASE hue DEFAULT CHARACTER SET utf8;

    GRANT ALL on hue.* TO 'hueuser'@'%' IDENTIFIED BY 'password';

     

    service cloudera-scm-server start

     

     

    配置Cloudera Manageryum源(主节点)

     

    mkdir -p /var/www/html/cloudera-repos

     

    将下载的cm包文件移到此目录下

     

    创建repodata

     

    [root@cdh001 cm6]# createrepo .

     

    创建.repo

     

    [root@cdh001 cm6]# vim /etc/yum.repos.d/cloudera-manager.repo

     

    [cloudera-manager]

     

    name = Cloudera Manager, Version

     

    baseurl = http://cdh001/cloudera-repos/cm6/

     

    gpgcheck = 1

     

    ~

     

    yum clean all

     

    yum makecache

     

     

     

    安装 Cloudera Manager(主节点)

     

    sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server --nogpgcheck

     

    #安装完CM/opt/ 下会出现cloudera目录

     

    mv /opt/parcels/* /opt/cloudera/parcel-repo # parcel包移动到指定位置

     

    /opt/cloudera/parcel-repo执行以下命令:

     

    sha1sum CDH-6.0.0-1.cdh6.0.0.p0.537114-el6.parcel | awk '{ print $1 }' > CDH-6.0.0-1.cdh6.0.0.p0.537114-el6.parcel.sha

     

     

     

    # 执行初始化脚本

     

    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver cmserveruser password

     

     

     

     

     

    # 打开server服务

     

    service cloudera-scm-server start

     

    top命令查看cpu占用大幅升高,cpu使用率下降后说明服务已起

     

     

    查看CM页面是否已可以打开

     

    http://192.168.128.221:7180

     

    集群安装配置

     

     

     

     

    Option1说明配置auto-tls

     

    JAVA_HOME=/usr/java/jdk1.8.0_144 /opt/cloudera/cm-agent/bin/certmanager --location /opt/cloudera/CMCA setup --configure-services

     

    service cloudera-scm-server restart

     

    重启后打开7180自动跳转至7183

     

    这里选择的cdh不然是在线安装

     

    所有节点JDK已安装,这里不勾选

     

     

    Agents安装

     

    parcels分发

     

     检测

     

     

    集群安装配置(可后续依需求单个服务安装,此处选择Essentials安装)

     

    选择服务安装节点(namenodesecondaryNameNode尽量不要放在一个节点,我这里当时比较随意没注意,后续可以迁移)

     

    填入之前创建的库名用户密码,测试连接successcontinue

     

    各项配置

     

    初次运行

     

    完成

     

    安装过程中可能遇到的问题:

     

    需要使用sha1sum校验parcel包生成校验文件,不然parcel包不识别

     

    allkeys.asc 文件忘记下载,安装Agents会报错

     

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    官方安装手册

     

    http://www.cloudera.com/documentation/enterprise/6/latest/topics/installation.html

     

     

    Hdfs参数调优

     

    1. 提高DataNode的堆栈大小。DataNode应该至少有4 GB的堆栈大小,以允许迭代的增加和最大的流

     

     

    修改后

     

     

    2、设置DataNode平衡带宽

        a、展开DataNode默认组(DataNode Default Group) > 性能(Performance)类别;

        b、根据你的磁盘和网络性能配置DataNode平衡带宽(DataNode Balancing Bandwidth

    c、点击保存更改(Save Changes提交更改。

     

    3、提高依据迭代设置复制工作乘数器的数值(默认值是2,然而推荐值是10)

        a、展开NameNode默认组(NameNode Default Group) >高级(Advanced)类别;

        b、将配置依据迭代设置复制工作乘数器(Replication Work Multiplier Per Iteration)设置为10

    c、点击保存更改(Save Changes提交更改。

     

    4、增加复制的最大线程数和最大复制线程的限制数

        a、展开NameNode默认组(NameNode Default Group) >高级(Advanced)类别;

        b、配置Datanode复制线程的最大数量(Maximumnumber of replication threads on a Datanode)和Datanod复制线程的数量的限制数(Hardlimit on the number of replication threads on a Datanod)分别为50和100;

        c、点击保存更改(Save Changes提交更改。

    Yarn参数调整

    • mapreduce.map.memory.mbmap任务内存,cdh默认1G
    • mapreduce.map.cpu.vcoresmap任务虚拟CPU核数,cdh默认1
    • mapreduce.reduce.memory.mbreduce任务内存,cdh默认1G
    • mapreduce.reduce.cpu.vcoresreduce任务虚拟CPU核数,cdh默认1
    • yarn.nodemanager.resource.memory-mb,容器内存,cdh默认8G
    • yarn.nodemanager.resource.cpu-vcores,容器虚拟CPU核数,cdh默认8

    cdh内存分配参考文档

    2018年01月29日 16:54:05 adshiye 阅读数:1767

    基于以下环境提供参考值: 5台内存32G、cpu8核的服务器,操作系统为centos6.8 
    总内存: 160G 
    总核数: 40核 
    不同的环境可以根据自己环境的总内存以及总内核和这个参考值得出系数,那么:值= 推荐值 X 系数

    参数

    解释

    NameNode 的 Java 堆栈大小

    Java 进程堆栈内存的最大大小,改Java进程主要是:维护整个系统的的文件目录树,维护文件/目录的信息和每个文件对应的数据块列表,接受并处理用户的操作请求

    至少1GB

    dfs.datanode.max.locked.memory

    一个DataNode将要用来被做HDFS缓存的内存的最大值

    至少256MB

    DataNode 的 Java 堆栈大小

    Java 进程堆栈内存的最大大小,改Java进程主要是:周期性检测并向NameNode上报其管理的块信息,同时处理namenode给该Datanode的命令

    512MB

    Failover Controller 的 Java 堆栈大小

    Java 进程堆栈内存的最大大小,改Java进程主要是:监控NameNode的健康状态,监控NameNode在zookeeper中的健康状态,监控之后管理NameNode的状态

    至少256MB

    JournalNode 的 Java 堆栈大小

    Java 进程堆栈内存的最大大小,改Java进程主要是:实现两个NameNode的数据同步,active的NameNode做变更的时候,会通知JournalNode 进程,standby的NameNode心跳获取

    至少256MB

    • hdfs
    • hive

    参数

    解释

    Hive Metastore Server 的 Java 堆栈大小(字节)

    Java 进程堆栈内存的最大大小,改Java进程主要是:为hive、impala、kudu提供元数据管理

    1.5GB

    HiveServer2 的 Java 堆栈大小

    由于我们的系统没有使用到hiveserver2,所以设置小的值,同时可以将它停止

    1GB

    • impala

    参数

    解释

    Catalog Server 的 Java 堆栈大小

    Java 进程堆栈内存的最大大小,改Java进程主要是:作为meta访问网关,从Hive Metastore等外部catalog中获取元数据信息,放到impala自己的catalog结构中,impalad执行ddl命令时通过catalogd由其代为执行,该更新则由statestored广播

    最少256MB

    Impala Daemon 内存限制

    Java 进程堆栈内存的最大大小,改Java进程主要是:作为客户端,接受客户的查询请求,生成查询计划树,把查询计划分发给其他的Impala Daemon(包括自己),被分配的Impala Daemon读写数据进行查询,并返回改客户端

    1GB

    • kafka

    参数

    解释

    Java Heap Size of Broker

    kafka broker java 进程堆栈内存的最大大小

    至少1GB

    • kudu

    参数

    解释

    Kudu Tablet Server Hard Memory Limit

    kudu tablet server最大能使用的内存,kudu写入数据的时候,是将数据先缓存到内存,然后保存到磁盘,如何设置过低,会影响写入的性能

    3GB

    Kudu Tablet Server Block Cache Capacity

    kudu tablet 块缓存的最大内存量

    2GB

    maintenance_manager_num_threads

    kudu对数据管理的时候最大显成熟

    4

    • spark

    参数

    解释

    Java Heap Size of History Server in Bytes

    spark history server java 进程堆栈内存的最大大小

    至少512MB

    • yarn

    参数

    解释

    JobHistory Server 的 Java 堆栈大小

    java 进程堆栈内存的最大大小

    512MB

    NodeManager 的 Java 堆栈

    java 进程堆栈内存的最大大小

    512MB

    容器内存

    每个nodemanager为最大可分配的内存

    9GB

    ResourceManager 的 Java 堆栈大小

    java 进程堆栈内存的最大大小

    512MB

    最小容器内存

    单个任务可申请的最少内存量

    1GB

    容器内存增量

    单个任务可申请的内存的增量

    512MB

    最大容器内存

    单个任务可申请的最大内存量

    6GB

    容器虚拟 CPU 内核

    每个nodemanager为最大可分配的内核数量

    6

    最小容器虚拟 CPU 内核数量

    单个任务可申请的最小内核数量

    1

    容器虚拟 CPU 内核增量

    单个任务申请的内核增量

    1

    最大容器虚拟 CPU 内核数量

    单个任务可申请的最大内核数量

    1

    • zookeeper

    参数

    解释

    ZooKeeper Server 的 Java 堆栈大小

    java 进程堆栈内存的最大大小

    至少512MB

    • Cloudera Management Service

    参数

    解释

    Activity Monitor 的 Java 堆栈大小

     

    至少1GB

    Alert Publisher 的 Java 堆栈

     

    至少256MB

    EventServer 的 Java 堆栈大小

     

    至少1GB

    Host Monitor 的 Java 堆栈大小

     

    至少1GB

    Host Monitor 的最大非 Java 内存

     

    至少1.5GB

    Service Monitor 的 Java 堆栈大小

     

    至少1GB

    Service Monitor 的最大非 Java 内存

     

    至少1.5GB

     

    改后

     

     

    改后

     

     

    改后

     

  • 相关阅读:
    linux IO调度算法
    Programming Languages: Application and Interpretation
    zz 跟风小结一下孕期~
    UML和模式应用学习笔记-1(面向对象分析和设计)
    ASP.NET交互Rest服务接口(Jquery的Get与Post方式)
    Linq To Xml操作XML增删改查
    MSSQL数据库迁移到Oracle(二)
    MSSQL数据库迁移到Oracle
    学习EF之CodeFirst二(数据库对应映射)
    学习EF之CodeFirst一
  • 原文地址:https://www.cnblogs.com/liquan-anran/p/10073019.html
Copyright © 2020-2023  润新知