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

标签: hadoop

系列目录:

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的三大调度策略


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

版权声明:本文为padluo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/padluo/article/details/78357977

智能推荐

PoolThreadCache

缓存构成   PoolThreadCache的缓存由三部分构成:tiny、small 和 normal。 tiny   缓存数据大小区间为[16B, 496B]数据,数组长度为32,根据数据大小计算索引的办法:数据大小除以16,如下代码所示: small   缓存数据大小区间为[512B, 4KB]数据,数组长度为4,根据数据大小计算索引的办法:数据大小除以512,然后log2得到指数,如下代码所...

Intellij IDEA 搭建Spring Boot项目(一)

Intellij IDEA 搭建Spring Boot项目 标签(空格分隔): SpringBoot JAVA后台 第一步 选择File –> New –> Project –>Spring Initialer –> 点击Next  第二步 自己修改 Group 和 Artif...

CentOS学习之路1-wget下载安装配置

参考1: https://blog.csdn.net/zhaoyanjun6/article/details/79108129 参考2: http://www.souvc.com/?p=1569 CentOS学习之路1-wget下载安装配置 1.wget的安装与基本使用 安装wget yum 安装软件 默认安装保存在/var/cache/yum ,用于所有用户使用。 帮助命令 基本用法 例子:下载...

深入浅出Spring的IOC容器,对Spring的IOC容器源码进行深入理解

文章目录 DispatcherServlet整体继承图 入口:DispatcherServlet.init() HttpServletBean.init() FrameworkServlet.initServletBean() 首先大家,去看Spring的源码入口,第一个就是DispatcherServlet DispatcherServlet整体继承图 入口:DispatcherServlet....

laravel框架的课堂知识点概总

1. MVC 1.1 概念理解 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑 MVC 是一种使用 MVC(Model View Controller ...

猜你喜欢

Unity人物角色动画系统学习总结

使用动画系统控制人物行走、转向、翻墙、滑行、拾取木头 混合树用来混合多个动画 MatchTarget用来匹配翻墙贴合墙上的某一点,人物以此为支点翻墙跳跃 IK动画类似于MatchTarget,控制两只手上的两个点来指定手的旋转和位置,使得拾取木头时更逼真 创建AnimatorController: 首先创建一个混合树,然后双击 可以看到该混合树有五种状态机,分别是Idle、WalkForward、...

Composer 安装 ThinkPHP6 问题

Composer 安装 ThinkPHP6 问题 先说说问题 一.运行环境要求 二.配置 参考: ThinkPHP6.0完全开发手册 先说说问题 执行ThinkPHP6的安装命令 遇到问题汇总如下: 看提示是要更新版本,执行命令更新。 更新之后,再次安装ThinkPHP,之后遇到如下问题。 尝试了很多方法,依然不能解决。其中包括使用https://packagist.phpcomposer.com...

Spring Boot 整合JDBC

今天主要讲解一下SpringBoot如何整合JDBC,没啥理论好说的,直接上代码,看项目整体结构 看一下对应的pom.xml 定义User.java 定义数据源配置,这里使用druid,所以需要写一个配置类 上面指定druid的属性配置,和用户登录的账号信息以及对应的过滤规则: 下面定义数据访问接口和对应的实现: 数据访问层很简单,直接注入JdbcTemplate模板即可,下面再看对应的servi...

html鼠标悬停显示样式

1.显示小手:     在style中添加cursor:pointer 实现鼠标悬停变成小手样式     实例:         其他参数: cursor语法: cursor : auto | crosshair | default | hand | move | help | wait | tex...

Yupoo(又拍网)的系统架构

Yupoo!(又拍网) 是目前国内最大的图片服务提供商,整个网站构建于大量的开源软件之上。以下为其使用到的开源软件信息: 操作系统:CentOS、MacOSX、Ubuntu 服务器:Apache、Nginx、Squid 数据库:MySQLmochiweb、MySQLdb 服务器监控:Cacti、Nagios、 开发语言:PHP、Python、Erlang、Java、Lua 分布式计算:Hadoop...