网站建设战略,网站建设易尔通,太原市建站外包公司,一个网站不兼容ie怎么做目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger Part.14 安装YARNMR Part.15 安装HIVE Part.16 安装HBase Part.17 安装Spark2 Part.18 安装Flink Part.19 安装Kafka Part.20 安装Flume
十四、安装YARNMR
1.MR中间结果存储权限
使用Yarn提交MapReduce任务的时候中间结果会保存在HDFS/user/username/如果/user目录下用户目录下不存在则被创建当MR执行结束之后中间结果会被删除目录保留。因此需要在Ranger中对/user的权限做策略。
2.安装服务 YARN的部分存储路径调整 Node Manager YARN NodeManager Local directories/data01/hadoop/yarn/local YARN NodeManager Log directories/data01/hadoop/yarn/log Application Timeline Server yarn.timeline-service.leveldb-state-store.path/data01/hadoop/yarn/timeline yarn.timeline-service.leveldb-timeline-store.path/data01/hadoop/yarn/timeline Advanced yarn-hbase-env is_hbase_system_service_launchtrue use_external_hbasefalse YARN可使用内置的HBase数据库也可以使用外部使用内置时需要is_hbase_system_service_launch设置为true Advanced ranger-yarn-security Add YARN Authorization取消勾选 该选项是禁用YARN本身的ACL权限控制YARN队列的权限控制由RANGER统一管理 注需要先对NameNode页面的认证取消了否则ResourceManager修改后也不生效 MAPREDUCE2的部分存储路径调整 Advanced mapred-site mapreduce.jobhistory.recovery.store.leveldb.path/data01/hadoop/mapreduce/jhs Custom mapred-site mapred.local.dir/data01/hadoop/mapred
3.ResourceManager HA
(1)启用HA
在ACTIONS-Enable ResourceManager HA中配置
(2)确认配置文件
启用HA后会在/etc/hadoop/conf/yarn-site.xml中出现如下关于HA的配置项 指定zk下对应的文件目录为/yarn-leader-election对应的rm节点为hdp01.hdp.com和hdp02.hdp.com 在zookeeper中查看也同样生成了对应的文件目录
(3)确认YARN、MR2配置
①CPU资源调度 目前的CPU被划分为虚拟CPU这里的虚拟CPU是yarn自己引入的概念因为每个服务器的CPU计算能力不一样有的机器可能是其他机器计算能力的两倍然后可以通过多配置几个虚拟CPU弥补差异。在yarn中CPU的相关配置如下 yarn.nodemanager.resource.cpu-vcores 表示该节点上YARN可使用的虚拟CPU个数默认是8注意目前推荐将该值设置为与物理CPU核数数目相同。如果节点CPU核数不够8个则需要调减小这个值而YARN不会智能的探测节点的物理CPU总数。 yarn.scheduler.minimum-allocation-vcores 单个任务可申请的最小虚拟CPU个数默认是1如果一个任务申请的CPU个数少于该数则该对应的值改为这个数。 yarn.scheduler.maximum-allocation-vcores 单个任务可申请的最多虚拟CPU个数默认是4。这里说的cpu个数都是说的虚拟cpu默认的是1个物理cpu2个虚拟cpu。 ②Memory资源调度 yarn一般允许用户配置每个节点上可用的物理资源注意这里是可用的不是物理内存多少就设置多少因为一个服务器节点上会有若干的内存一部分给yarn一部分给hdfs一部分给hbase。在yarn中Memory相关的配置如下 yarn.nodemanager.resource.memory-mb 设置该节点上yarn可使用的内存默认为8G如果节点内存资源不足8G要减少这个值yarn不会智能的去检测内存资源一般这个设置yarn的可用内存资源 yarn.scheduler.minimum-allocation-mb 单个任务可申请的最小的内存大小默认是1G当内存不够时会自动按照一定大小累加内存。 yarn.scheduler.maximum-allocation-mb 单个任务最大申请物理内存量默认为8291MB ③示例 以hdp03-058C、8G为例 yarn.nodemanager.resource.cpu-vcores 虚拟core 这个参数根据自己生产服务器决定比如服务器很富裕那就直接1:1设置成8如果服务器不是很富裕那就直接成1:2,设置成8本次设置为16 yarn.nodemanager.resource.memory-mb 总内存 生产上一般要预留15-20%的内存那么可用内存就是8*0.86.4G本次设置为6G yarn.scheduler.minimum-allocation-mb 单任务最小内存 如果设置成500M那6/0.5 12就是最多可以跑12个container 如果设置成1G那6/1 6就是最多可以跑6个container 本次设置为1G yarn.scheduler.minimum-allocation-vcores 单任务最少vcore 如果设置vcore 1那么16/1 16就是最多可以跑16个container如果设置成这个根据上面内存分配的情况最多只能跑6个containervcore有点浪费 如果设置vcore 2那么16/2 8就是最多可以跑8个container yarn.scheduler.maximum-allocation-vcores 单任务最多vcore 一般就设置成4个cloudera公司做过性能测试如果cpu大于等于5之后cpu利用率反而不是很好固定经验值 yarn.scheduler.maximum-allocation-mb 单任务最大内存 这个要根据实际业务设定如果有大任务
4.测试
(1)创建租户并分配对应的资源队列 跳转至YARN Queue Manager页面针对之前的租户tenant1和tenant2新建资源队列注意所有队列总和要为100%否则会报错 租户与队列资源关系绑定 [u | g] [username : groupname] [yarn队列的名字] 本次绑定为 u:tenant1:tenant1,u:tenant2:tenant2 保存本次操作内容 查看resourcemanager页面可以看到已经更新出新的资源队列
(2)队列使用权限
可使用官方提供的测试jar包 https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-examples 在OpenLDAP中创建账号ranger_yarn重启UserSync服务后将账号同步至Ranger中然后在kerberos中创建同样的账号注该测试jar包只能用账号ranger_yarn队列offline
kadmin.local
addprinc -randkey ranger_yarn
ktadd -kt /root/keytab/ranger_yarn.keytab ranger_yarn在Yarn中创建队列及账号与队列的映射关系 队列offline、账号ranger_yarn都准备好后在Ranger上创建授权关系 ① 计算圆周率 使用ranger_yarn登录运行计算圆周率任务
kinit -kt /root/keytab/ranger_yarn.keytab ranger_yarn
hadoop jar /root/hadoop-mapreduce-examples-3.1.1.3.0.1.4-1.jar pi -Dmapred.job.queue.nameoffline 10 50hadoop jar是hadoop运行jar包命令 第一个参数pi表示MapReduce程序执行圆周率计算 第二个参数用于指定map阶段运行的任务次数并发度这是是10 第三个参数用于指定每个map任务取样的个数这里是50 在Yarn中可查看Application的信息 此时在运行jar包时指定队列为tenant1执行报错说明权限
② 单词词频统计 首先创建要统计词频的文件并上传到hdfs上提前做好对ranger_yarn的hdfs授权
kinit -kt /etc/security/keytabs/nn.service.keytab nn/hdp01.hdp.comHDP315.COM
hdfs dfs -mkdir /testhdfs/ranger_yarn
kinit -kt /root/keytab/ranger_yarn.keytab ranger_yarn
hdfs dfs -put /root/wordcount_input /testhdfs/ranger_yarn
hdfs dfs -ls /testhdfs/ranger_yarn运行词频统计jar包
kinit -kt /root/keytab/ranger_yarn.keytab ranger_yarn
hadoop jar /root/hadoop-mapreduce-examples-3.1.1.3.0.1.4-1.jar wordcount -Dmapred.job.queue.nameoffline /testhdfs/ranger_yarn/wordcount_input /testhdfs/ranger_yarn/wordcount_output第一个参数wordcount表示执行单词统计 第二个参数指定输入文件的路径 第三个参数指定输出结果的路径该路径不能已存在 统计完成会在输出目录生成结果
hdfs dfs -cat /testhdfs/ranger_yarn/wordcount_output/part-r-000005.常用指令
1查看命令
yarn application -list
yarn application -list -appStates ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED2Kill命令 根据id杀死任务
yarn application -kill application_id3查看日志 查询Application日志
yarn logs -applicationId ApplicationId查询Container日志
yarn logs -applicationId -containerId ApplicationId -containerId ContainerId4查看尝试运行的任务 查看尝试运行的任务
yarn applicationattempt -listApplicationId查看尝试运行任务的状态
yarn applicationattempt -status ApplicationAttemptId5查看容器 列出所有Container
yarn container -list ApplicationAttemptId打印Container状态
yarn container -status ContainerId6.常见报错
(1)Timeline Service启动报错
启动时报错
java.util.concurrent.ExecutionException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode NoNode for /atsv2-hbase-secure/hbaseid在Yarn中的CONFIGS-ADVANCED-Advanced yarn-hbase-env中将is_hbase_system_service_launch启用
(2)History Server启动一会后报错
启动时无报错等几分钟后报错并停止在hdp02上查看日志/var/log/hadoop-mapreduce/mapred/hadoop-mapred-historyserver-hdp02.log 报错信息为
Error creating intermediate done directory: [hdfs://hdp315:8020/mr-history/tmp]
Permission denied: usermapred, accessWRITE, inode/mr-history查看hdfs上的目录权限确认权限归属无问题 原因是Ranger上取消了联合授权功能在Ranger上没有对应的策略开放该目录导致mapred用户无法访问对应的目录开启联合授权功能后恢复。
(3)告警ATS embedded HBase is NOT running on hdp01.hdp.com
告警信息ATS embedded HBase is NOT running on hdp01.hdp.com resourceMananger的JVM内存是1G内存太小导致的将ResourceManager中的Java heap size的JVM内存增加到了2048MB 重启Yarn服务后告警消失
(4)提交任务后状态一直为ACCEPTED
主要可能的原因是分配给容器的内存过小导致正常情况下需要适当调整分配内存本次是因为总体内存量不大而在分配queue:offline的时候设置的资源大小为5%导致无法正常运行而是一直停留在分配资源阶段重新分配队列资源大小后恢复。