美文网首页数据科学家的自我修养Hadoop大数据
Hadoop实战(4)_Hadoop的集群管理和资源分配

Hadoop实战(4)_Hadoop的集群管理和资源分配

作者: padluo | 来源:发表于2017-11-17 09:08 被阅读25次

    系列目录:

    Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境

    Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式

    Hadoop实战(3)_虚拟机搭建CDH的全分布模式

    DataNode数据目录

    如果有多个挂载点,可以有多个DataNode数据目录。

    目前服务器硬件,标准小型机配置:32核、64G(128G)、64T(4T*16盘SAS盘)。通常为了提升磁盘吞吐量,每个盘单独挂载。/data1、/data2、……、/data16。优点是大大提升磁盘的吞吐量(IO性能),缺点是出现坏盘时会造成一定影响。

    HDFS配置

    DataNode数据目录是本地参数

    部署客户端配置,是把cm里的配置更新同步到每个节点的xml配置文件里。

    hadoop配置文件,/etc/hadoop/conf,配置文件有服务端参数和客户端参数,服务端参数需要重启服务才生效,客户端的参数修改之后立即起效。

    如dfs.replication=2,配置完后,HDFS服务提示过期配置:需要重新部署客户端配置。

    上节遗留问题

    HDFS在cdhslave1启动失败原因,是cdhslave1上没有安装jdk,解决办法:yum install -y oracle-j2sdk1.7.x86_64

    http://cdhmaster:7180,访问不了,检查服务启动情况。

    chkconfig --list | grep cloudera
    service cloudera-scm-server status
    netstat -nltp | grep 7180
    

    NTP同步问题,在slave机器上,手工执行一次同步server即可。

    ntpdate 192.168.200.100
    

    ssh无密码访问,CDH版本不需要设置,因为CDH版本集群间通过相同账号密码访问。

    JDK环境变量,CDH版本可以不设置JAVA_HOME,因为自身使用jdk1.7时会带上绝对路径。

    问题:/var/www/html/cm5.9.0/repodata下的文件是怎么产生的?

    1、yum install -y createrepo.noarch

    which createrepo
    yum list | grep createrepo
    yum install -y createrepo.noarch
    

    2、手工下载http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.9.0/RPMS/x86_64/下的rpm文件至cm5.9.0目录下。

    3、执行createrepo cm5.9.0即可repodata目录下的文件。然后浏览器录入http://cdhmaster/cm5.9.0/即可以访问。注意启动httpd服务。

    cm5.9.0.tar包的生成

    1、cm5的rpm包获取,http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.9.0/RPMS/x86_64/

    cloudera-manager-agent-5.9.0-1.cm590.p0.249.el6.x86_64.rpm
    
    cloudera-manager-daemons-5.9.0-1.cm590.p0.249.el6.x86_64.rpm
    
    cloudera-manager-server-5.9.0-1.cm590.p0.249.el6.x86_64.rpm
    
    cloudera-manager-server-db-2-5.9.0-1.cm590.p0.249.el6.x86_64.rpm
    
    enterprise-debuginfo-5.9.0-1.cm590.p0.249.el6.x86_64.rpm
    
    jdk-6u31-linux-amd64.rpm
    
    oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
    

    2、cloudera-manager-installer.bin获取,http://archive.cloudera.com/cm5/installer/5.9.0/

    cloudera-manager-installer.bin
    

    3、cdh5的parcel获取,http://archive.cloudera.com/cdh5/parcels/5.9.0/

    CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel
    CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha
    manifest.json
    

    4、生成repodata目录下的文件,

    问题:/var/www/html/cm5.9.0/repodata下的文件是怎么产生的?

    1、yum install -y createrepo.noarch

    which createrepo
    yum list | grep createrepo
    yum install -y createrepo.noarch
    

    2、手工下载http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.9.0/RPMS/x86_64/下的rpm文件至cm5.9.0目录下。

    3、执行createrepo cm5.9.0即可repodata目录下的文件。然后浏览器录入http://cdhmaster/cm5.9.0/即可以访问。注意启动httpd服务。

    界面化Cloudera Manager集群管理

    节点角色分配

    1、HDFS中NN和SNN不在一个节点上。

    2、商用集群,NN单独一台,不会和DN耦合一起。

    3、每个节点上尽量均衡负载。

    把节点1上的角色转移到节点2上,在服务-实例下进行调整,

    1、在节点1停止该角色(HDFS的DataNode除外),

    2、在节点1上删除该角色,

    3、服务-实例-添加角色实例,选择节点2即可。

    DN:存储数据。如果要把DN迁移到其他节点,需要:

    1、先解除授权,正常退役方式,自动把该DN的数据迁移至其他可用节点DN上。如果数据多,过程慢。

    2、删除该节点,同时删除该节点/dfs/dn。

    集群环境测试

    Hadoop shell命令操作分布式文件系统(HDFS)。

    Linux shell操作文件系统。

    hadoop fs -ls /
    
    ls: Call From cdhmaster/192.168.200.100 to cdhmaster:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
    
    # 部署客户端配置执行一下即可
    

    对Linux来讲,管理员是root。对于HDFS来讲,root是普通账户,hdfs才是管理员帐户,具有最大权限。

    [root@cdhmaster ~]# hadoop fs -put anaconda-ks.cfg /user
    put: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
    
    [root@cdhmaster ~]# su - hdfs
    [hdfs@cdhmaster ~]$ hadoop fs -chmod 777 /user
    [hdfs@cdhmaster ~]$ hadoop fs -ls /
    Found 2 items
    drwxrwxrwx   - hdfs supergroup          0 2017-10-23 10:36 /tmp
    drwxrwxrwx   - hdfs supergroup          0 2017-10-23 10:36 /user
    

    Yarn产生背景和架构原理

    HDFS、Yarn资源分配

    比如服务器的资源是:64G、32核、64T,应该如何利用?

    在服务-配置-资源管理调整,

    HDFS资源分配

    Balancer的Java堆栈大小,10G,Balancer Default Group,注意看该选项是针对哪个角色。

    DataNode的Java堆栈大小,DataNode Default Group,15G。

    用于缓存的最大内存,DataNode Default Group,10G。

    NameNode的Java堆栈大小,15G。上限,一般情况下不会耗尽。

    Secondary NameNode的Java堆栈大小,5G。

    Yarn资源分配

    JobHistory Server Server的Java堆栈大小,2G。

    NodeManager的Java堆栈大小,20G。

    容器内存,20G。与NodeManager保持一致。

    容器虚拟CPU内核yarn.nodemanager.resource.cpuvcores,26。

    ResourceManager的Java堆栈大小,5G。

    最大容器内存,20G。与NodeManager保持一致。

    最大容器虚拟CPU内核数量:26。

    free,集群资源所用百分比没上去,两个原因:一是作业没跑,二是资源划分少了。

    top,查看资源使用情况。top下再shift+mM,查看每个作业内存使用情况的排序。top下再1,查看每核CPU的使用情况,监测集群负载的压力。


    问题:./cloudera-manager-installer.bin失败会改yum源,多了两个/etc/yum.repos.d/cloudermanager.repo.rpmsave和repo.rpmnew?执行./cloudera-manager-installer.bin要带上--skip_repo_package=1,就不会产生这两个文件。如果产生了,把repo.rpmnew删掉,cloudermanager.repo.rpmsave修改为cloudermanager.repo,才起作用,再次执行时带上参数执行即可。

    提示过期配置,修改过服务端的配置时,会提示服务过期,解决办法:1、执行部署客户端配置,作用是把界面里修改的地方同步到节点的/etc/hadoop/conf目录下。2、重启服务。

    安装失败,无法接收Agent发出的检测信号,首先查看agent的日志/var/log/cloudera-scm-agent/,cm server的日志/var/log/cloudera-scm-server,看到报错里提示说有个supervisor之类的占用了端口,解决办法:ps -ef|grep supervisorkill -9 pid,7180界面里重试即可。


    Yarn的三大调度策略


    您可能还想看

    数据分析/数据挖掘/机器学习

    Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据

    Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理

    Python数据挖掘与机器学习_通信信用风险评估实战(3)——特征工程

    Python数据挖掘与机器学习_通信信用风险评估实战(4)——模型训练与调优

    爬虫

    Python爬虫实战之爬取链家广州房价_01简单的单页爬虫

    Python爬虫实战之爬取链家广州房价_02把小爬虫变大

    Python爬虫实战之爬取链家广州房价_03存储

    Python爬虫实战之爬取链家广州房价_04链家的模拟登录(记录)

    搜狗词库爬虫(1):基础爬虫架构和爬取词库分类

    搜狗词库爬虫(2):基础爬虫框架的运行流程


    微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。

    数据分析

    转载请注明:转载自微信公众号「数据分析」


    相关文章

      网友评论

        本文标题:Hadoop实战(4)_Hadoop的集群管理和资源分配

        本文链接:https://www.haomeiwen.com/subject/ybydvxtx.html