Zookeeper集群搭建
Linux远程kill进程及$处理
在远程执行的命令中如果包含特殊字符($)时需要转义,如下:
1 | ssh root@remote_host "ps -ef|grep process_name | grep -v 'grep ' | awk '{print $2}'" |
以上语句的本意是得到进程的ID,但实际输出会是进程的信息。应该使用如下形式:
REDUCE capability required is more than the supported max container capability in the cluster
今天在运行MR程序时遇到以下信息:
1 | 17/03/03 10:09:45 INFO mapreduce.Job: Job job_1488363995041_0002 failed with state KILLED due to: REDUCE capability required is more than the supported max container capability in the cluster. Killing the Job. reduceResourceRequest: <memory:4096, vCores:1> maxContainerCapability:<memory:3096, vCores:8> |
原因是Reduce Task在申请资源时超过了设置的最大可申请内容量。检查yarn-site.xml
中的配置项yarn.scheduler.maximum-allocation-mb
,如下:
Windows7搭建Hadoop-2.7.3源码阅读环境问题解决列表
环境说明
- Windows 7
- java version “1.7.0_80”
- Apache Maven 3.2.3
- ProtocolBuffer 2.5.0
- cmake version 3.7.2 win64 x64
- Windows SDK 7.1
构建过程参照源代码目录下BUILDING.txt
说明文件中的“Building on Windows”中的内容;以及我的另外一篇文章:搭建Hadoop源代码阅读环境。
Linux命令后双减号符(--)的含义
Unix/Linux下各种命令的参数,都是以减号符(-
)后面跟单字符参数,比如-r
)或者双减号符(--
)(后面紧跟多字符参数,比如--recursive
)来表示。 在所有参数后面是文件名或者目录。大多情况下(文件名第一个字符不是减号符(-
))这样是没有任何问题的,但是如果文件名第一个字符是-时(比如-myfile
),命令就无法区分此时-myfile
到底是文件名还是参数名。此时解决方法就是用双减号符(--
)来表示命令参数结束了,后面哪怕是以减号符(-
)开头的字符串,也被当成文件名处理。
比如rm -r -- -mydir
就会递归的(-r
)删除-mydir
这个目录。