一、系统centOS7以上,至少三台主机

  添加ip 主机名映射关系:(每台主机都要做)

  vim /etc/hosts  

    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.8.107 master
    10.0.8.108 node1
    10.0.8.114 node2

二、配置免密登陆

  Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,所以我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。 

  生成公钥私钥:
  ssh-keygen -t rsa   #三次确认

  

  将公钥copy到需要免密登陆的服务器上  

    ssh-copy-id master
    ssh-copy-id node1
    ssh-copy-id node2

三、ntp时钟同步

    CDH集群高度依赖时钟同步,所以需要所有节点的服务器时间都一样,这时候可以自己搭一套ntp同步server;也可以用公共的时钟同步服务器;

    ntpdate ntp1.aliyun.com   #阿里云时钟同步服务器

    创建时钟同步计划任务:

      crontab -e  #创建计划任务

      */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1   #表示每5min同步一次时间     

      [root@master ~]# crontab -l  #查看计划任务  (每台设备都要做)
      */5 * * * * /usr/sbin/ntpdate ntp.sinocache.net > /dev/null 2>&1   

四、系统调优

  1、关闭防火墙和selinux;

  2、关闭dns反向查寻,优化登陆时间,如果不关登陆会很慢,会有一个dns反向查寻的时间;

    sed -i 's@#UseDNS yes@UseDNS no@g' /etc/ssh/sshd_config

  3、关闭GSSAPI身份验证

    sed -i 's@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config

  GSSAPIAuthentication  当这个参数开启( GSSAPIAuthentication  yes )的时候,通过SSH登陆服务器时候会有些会很慢!这是由于服务器端启用了GSSAPI。登陆的时候客户端需要对服务器端的IP地                址进行反解析,如果服务器的IP地址没有配置PTR记录,那么就容易在这里卡住了。

  4、关闭透明大页

    (vir-3.5.2) [root@master ~]# uname -r   #查看内核版本
    3.10.0-862.el7.x86_64
    (vir-3.5.2) [root@master ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
    [always] madvise never   #查看透明大页状态,打开状态
    (vir-3.5.2) [root@master ~]# cat /etc/default/grub | grep GRUB_CMDLINE_LINUX
    GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0 console=tty0 panic=5 net.ifnames=0 biosdevname=0"
    (vir-3.5.2) [root@master ~]# vim /etc/default/grub

    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL="serial console"
    GRUB_TERMINAL_OUTPUT="serial console"
    GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0 console=tty0 panic=5 net.ifnames=0 biosdevname=0 transparent_hugepage=never"    #加上标红的配置
    GRUB_DISABLE_RECOVERY="true"
    GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

    (vir-3.5.2) [root@master ~]# grub2-mkconfig -o /boot/grub2/grub.cfg  #加载配置文件

    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-c28d40cbc8e3adcb4e32d9779a77b39e
    Found initrd image: /boot/initramfs-0-rescue-c28d40cbc8e3adcb4e32d9779a77b39e.img
    done

    (vir-3.5.2) [root@master ~]# reboot  #重启配置才能生效;

    (vir-3.5.2) [root@master ~]# cat /sys/kernel/mm/transparent_hugepage/enabled

    always madvise [never]  #重启后查看状态为关闭状态

  5、关闭碎片整理

    THP压缩会降低Hadoop的性能。所以,禁用碎片整理是一个很好的做法。

    (vir-3.5.2) [root@master ~]# vim /etc/rc.d/rc.local

    #!/bin/bash

    touch /var/lock/subsys/local
    /usr/local/qcloud/irq/net_smp_affinity.sh >/tmp/net_affinity.log 2>&1
    /usr/local/qcloud/rps/set_rps.sh >/tmp/setRps.log 2>&1
    /usr/local/qcloud/gpu/nv_gpu_conf.sh >/tmp/nv_gpu_conf.log 2>&1

    #在该文件加上该配置即可
    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi

    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi

    (vir-3.5.2) [root@master ~]# ll /etc/rc.d/rc.local   #查看该文件是否有执行权限,如果没有需要加执行权限;

    chmod +x /etc/rc.d/rc.local
    -rwxr-xr-x 1 root root 943 Jun 30 00:59 /etc/rc.d/rc.local

  6、修改Linux内核参数

    (vir-3.5.2) [root@master ~]# vim /etc/sysctl.conf   ##编辑该文件,并加入一下配置;

    fs.aio-max-nr=1048576

    net.core.rmem_default=262144

    net.core.wmem_default=262144
    net.core.rmem_max=16777216
    net.core.wmem_max=16777216
    net.ipv4.tcp_rmem=4096 262144 16777216
    net.ipv4.tcp_wmem=4096 262144 16777216

    (vir-3.5.2) [root@master ~]# sysctl -p   #加载配置文件使其生效

fs.aio-max-nr = 1048576       ##最大并发I/O请求数
net.core.rmem_default = 262144   ##操作系统接收缓冲区的默认大小
net.core.wmem_default = 262144  ##操作系统发送缓冲区的默认大小
net.core.rmem_max = 16777216   ##操作系统接收缓冲区最大值
net.core.wmem_max = 16777216  ##操作系统发送缓冲区最大值
net.ipv4.tcp_rmem = 4096 262144 16777216  ##接收窗口尺寸的最小,默认,最大值
net.ipv4.tcp_wmem = 4096 262144 16777216  ##发送窗口尺寸的最小,默认,最大值

7、增加文件限制

  (vir-3.5.2) [root@master ~]# ulimit -Sn   #软限制(由于我这是云主机,应该是腾讯云已经做了优化的,标准原生镜像应该是1024)

    100001
    (vir-3.5.2) [root@master ~]# ulimit -Hn   #硬限制 (原生镜像应该是4096)
    100002

    如果其他人不是我这样的配置就得手动自己改了,方法如下:

    vim /etc/security/limits.conf

    (vir-3.5.2) [root@master ~]# tail -8 /etc/security/limits.conf

    * soft nofile 1048576  ##表示用户和组,如果是"*",则表示所有用户或组进行限制。
    * hard nofile 1048576  ##表示软限制还是硬限制,当进程使用的资源超过软限制时系统日志会有警告产生,当进程使用的资源达到硬限制时,则无法继续使用更多的限制,甚至有的程序会直接抛出异常,比如MySQL程序。
    * soft nproc 1048576  ##表示限制的资源类型
    * hard nproc 1048576 ##如nofile表示打开文件描述符的最大数目,memlock表示最大锁定内存地址空间(KB),nporc表示最大数量的进程,as表示地址空间的限制(KB),cpu表示最大CPU时间(分钟)等等。
    * soft memlock unlimited  ##表示限制的最大值,也就是我们针对某个参数配置的具体数值。比如"* soft nofile 1048576",表示任何用户对于文件句柄数的软限制最大打开文件描述符是1048576。
    * hard memlock unlimited

    (vir-3.5.2) [root@master ~]# tail -2 /etc/security/limits.d/20-nproc.conf

    * soft nproc 1048576
    root soft nproc unlimited

    ##"/etc/security/limits.conf" 配置文件可限制文件打开数,系统进程等资源,在该文件配置中写的最大用户进程数是受"/etc/security/limits.d/90-nproc.conf"配置上限影响的。

  一般系统普通用户进程数满了都是修改/etc/security/limits.d/90-nproc.conf文件。

  8、禁用swap

    swapon -s  #查看swap状态

    swapoff -a  #关闭swap
    swapon -s  #打开swap
    free -h        #确认swap是否为0

部署CDH集群环境准备的更多相关文章

  1. 批量部署Hadoop集群环境(1)

    批量部署Hadoop集群环境(1) 1. 项目简介: 前言:云火的一塌糊涂,加上自大二就跟随一位教授做大数据项目,所以很早就产生了兴趣,随着知识的积累,虚拟机已经不能满足了,这次在服务器上以生产环境来 ...

  2. troubleshooting-windows 在 CDH集群环境读取 Hive 表 KrbException: Cannot locate default realm

    KrbException: Cannot locate default realm 解决办法 1)拷贝需要组件的配置文件到项目中的 /resources/目录.如hadoop,目录/etc/hadoo ...

  3. CDH集群搭建部署

    1. 硬件准备     使用了五台机器,其中两台8c16g,三台4c8g.一台4c8g用于搭建cmServer和NFS服务端,另外4台作为cloudera-manager agent部署CDH集群. ...

  4. Linux环境快速部署Zookeeper集群

    一.部署前准备: 1.下载ZooKeeper的安装包: http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper-3.4.9. 2.将下载的 ...

  5. Centos7下ELK+Redis日志分析平台的集群环境部署记录

    之前的文档介绍了ELK架构的基础知识,日志集中分析系统的实施方案:- ELK+Redis- ELK+Filebeat - ELK+Filebeat+Redis- ELK+Filebeat+Kafka+ ...

  6. CDH集群部署hive建表中文乱码

    背景:部署CDH集群的 hive 服务,选用 mysql 作为 hive 元数据的存储数据库,通过 hive cli 建表时发现中文注释均乱码. 现象:hive端建表中文注释乱码. 定位: 已经确认过 ...

  7. 深入探讨在集群环境中使用 EhCache 缓存系统

    EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 下图是 EhCache 在应用 ...

  8. 朝花夕拾之--大数据平台CDH集群离线搭建

    body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...

  9. (转)深入探讨在集群环境中使用 EhCache 缓存系统

    简介: EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider.本文充分的介绍了 EhCache 缓存系统对集群环境的 ...

随机推荐

  1. call()、apply()、arguments

    一.call(),apply() 1.作为函数对象(指函数方法名,不带括号)的方法,需要通过函数对象调用:当对函数调用这两个方法时都会调用函数执行. <script> // 这个函数中,f ...

  2. Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarch64

    编译项目报错: Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch ...

  3. Centos 7以上安装Docker (亲测有效)

    一.安装前的准备 我的环境是VMware15虚拟机安装的Centos7,Linux内核是3.10.0-1062.4.1.e17.x86_64 1. 用root账户登录查看操作系统内核版本及相关信息 [ ...

  4. vc2010以及VS2019安装使用教程

    一.vc2010的安装教程. ①下载(由于是一个离线文件,可关注后找我) ②下载好并解压安装文件后,打开解压后的文件进行运行安装. 点击"setup"根据提示安装即可. ③安装后点 ...

  5. hexo + typora 图片插入解决办法

    Typora 是一款知名的 Markdown 编辑器,简单好用,体验良好.使用 hexo 搭建好博客后,主要是用 Markdown 来编写博客,typora 便是我的首选编辑器.但直接使用 typor ...

  6. vs 快速定位文件

    在进行web开发时,我们经常需要在文件之间进行切换,每次在VS的解决方案中找文件然后打开 非常浪费时间,有没有比较快捷点的方法呢? 1.使用  ReSharper 插件 ReSharper 插件可以在 ...

  7. React简单教程-5-使用mock

    前言 一个前后端分离的项目,前端人员需要对接后端的接口.如果在后端的接口没有开发好,或者没有测试版可以对接的情况下,前端人员也不能坐等后端接口写好后再开始开发. 一个项目的,理想情况下接口的规范应该是 ...

  8. 史上最全Spring Cloud Alibaba--Nacos教程(涵盖负载均衡、配置管理、多环境切换、配置共享/刷新、灰度、集群)

    能够实现Nacos安装 基于Nacos能实现应用负载均衡 能基于Nacos实现配置管理 配置管理 负载均衡 多环境切换 配置共享 配置刷新 灰度发布 掌握Nacos集群部署 1 Nacos安装 Nac ...

  9. Crontab在服务端进行设置定时执行任务

    Crontab简crontab是一个可以根据时间.日期.月份.星期的组合调度对重复任务的执行的守护进程.也可以讲Linux crontab是用来定期执行程序的命令. 当安装完成操作系统之后,默认便会启 ...

  10. AtCoder ABC 250 总结

    AtCoder ABC 250 总结 总体 连续若干次一样的结果:30min 切前 4 题,剩下卡在 T5 这几次卡在 T5 都是一次比一次接近, 什么 dp 前缀和打挂,精度被卡,能水过的题连水法都 ...