测试岗位却不甘止步于业务测试,遂尝试智能化测试,当前的思路是通过日志大数据分析,协助自动化用例的诊断和建议。其中传输协议打算使用avro,原因是使用hadoop集群。本文记录官网入门步骤中未尽之处与项目实际应用经验
Kafka 简单使用
在智能测试日志分析方案中,使用kafka作为消息集成的关键组件,简单记录一下使用的命令和docker搭建笔记。
Aansible 启动 Tomcat,解决环境变量、执行后退出问题
作为团队QA角色,在环境搭建上使用ansible作为部署运维的自动化工具,在启动tomcat、presto、kylin时,遇到环境变量不对,无法启动;启动没报错但发现没有启动,发现进程启动了又退出了。本文简要记述相关原因与解决方案。
Hadoop2.x 工作台构建(Hadoop圈应用独立部署)
之前hadoop圈的应用(如hive、sqoop、azkaban等)都在master节点部署,一次性多个应用同时启动,耗尽内存后Linux随机删掉进程,影响集群和应用的稳定性。
Hadoop2.x 运维调优笔记
Hadoop运维调优笔记
yarn调配
datanode/nodemanager系统配置
| item | value |
|---|---|
| sys | Centos7 |
| cpu | 16C(无超线程) |
| mem | 16G |
| hdd | 1000G |
yarn和mapreduce
系统和datanode、nodemanager进程预留4C4G,yarn使用12C12G。目前测试集群30台,2台HA模式的master,28个工作节点,共计336核和336G内存
| item | value |
|---|---|
| yarn.nodemanager.resource.cpu-vcores | 12 |
| yarn.nodemanager.resource.memory-mb | 12288 |
| yarn.scheduler.minimum-allocation-vcores | 1 |
| yarn-scheduler.maximum-allocation-vcores | 8 |
| yarn.scheduler.increment-allocation-vcores | 1 |
| yarn.scheduler.minimum-allocation-mb | 1024 |
| yarn.scheduler.maximum-allocation-mb | 8192 |
| yarn.scheduler.increment-allocation-mb | 512 |
| yarn.app.mapreduce.am.resource.cpu-vcores | 1 |
| yarn.app.mapreduce.am.resource.mb | 1024 |
| mapreduce.map.cpu.vcores | 1 |
| mapreduce.map.memory.mb | 1024 |
| mapreduce.map.java.opts | -Xmx1024m |
| mapreduce.reduce.cpu.vcores | 1 |
| mapreduce.reduce.memory.mb | 1024 |
| mapreduce.reduce.java.opts | -Xmx1024m |
| mapreduce.task.io.sort.mb | 256 |
新旧参数
更多可以参考:https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/DeprecatedProperties.html
| hadoop 0.x 1.x | Hadoop 2.x |
|---|---|
| mapred.child.java.opts | |
| mapred.map.child.java.opts | mapreduce.map.java.opts |
| mapred.reduce.child.java.opts | mapreduce.reduce.java.opts |
| mapred.job.map.memory.mb | mapreduce.map.memory.mb |
| mapred.job.reduce.memory.mb | mapreduce.reduce.memory.mb |
| yarn.app.mapreduce.am.command-opts | |
| yarn.app.mapreduce.am.resource.mb | |
*.java.opts(java堆内存)的值应该为-Xmx1024m的格式,memory.mb的值应该为1024的格式。 |
|
| 推荐堆内存设置为容器内存的20%~25%。 |
Hive
HiveServer高可用
Ref: http://hainiubl.com/topics/19#HiveServer%E9%AB%98%E5%8F%AF%E7%94%A8
hive开启本地模式
Ref: https://cwiki.apache.org/confluence/display/Hive/GettingStarted
SET mapreduce.framework.name=local;
datanode并行处理任务数
dfs.datanode.handler.count
一般原则是将其设置为集群大小的自然对数乘以20,即20logN,N为集群大小
FAQ
- 修改配置文件后要分发所有主机吗?要
- 分发新的配置文件后,要重启集群吗?
A:如果是作业参数(mapreduce等),无需重启;如果是系统参数,如端口号等,需要重启。
草稿
- mapred.child.java.opts
如果您看到正在使用swap,请减少分配给每个任务的RAM数量mapred.child.java.opts - 使用LZO压缩
mapred.compress.map.output
TODO
- 启用yarn日志聚集功能,tracking UI
参考链接
Linux 常用命令组合
身为半个运维人员,日常使用Linux命令组合很多,每次都记不住,特此笔记。
Hadoop2.x 配置文件研读
团队下来一个任务,要求我研究hadoop的三个基本配置文件core-site.xml,hdfs-site.xml,mapred-site.xml。以下为研读笔记
RobotFramework执行镜像
团队使用RobotFramework作为主要自动化工具,将执行环境容器化,方便部署和扩展,以下为构建的Dockerfile
Jenkins 使用笔记
记录Jenkins上使用的经验,另外在公司内部使用Jenkins会遇到一些代理问题,记录一些解决方法。
Docker 笔记
docker的配置要点、常见问题、命令、姿势。