基于原版Hadoop的YDB部署(转)
YDB依赖环境准备
一、硬件环境
硬件如何搭配,能做到比较高的性价比,不存在短板。合理的硬件搭配,对系统的稳定性也很关键。
1.CPU不是核数越高越好,性价比才是关键。
经常遇到很多的企业级客户,他们机器配置非常高,CPU有128 VCore,256G内存,但是只挂载了1块8T的SATA硬盘,千兆网卡。
这样的机器配置比较适合计算密集型的业务,但是如果是IO密集型的业务的话,就会发现磁盘成为瓶颈,会发现磁盘利用率100%,网络利用率100%,但是CPU只用了不到5%。存在巨大的资源浪费。
2.SAS、SATA与SSD 磁盘的选择与对比
吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。
如下图所示,普通磁盘的IOPS与SSD磁盘的性能相差悬殊,特别是企业级SSD磁盘,能相差千倍以上。
3.SSD的颗粒请不要选择TLC
TLC的寿命太短,虽然便宜,但是用不了几个月就基本报废,一般个人电脑使用。不适合企业级使用,性价比较好的建议选用MLC颗粒。
4.延云YDB建议的硬件配置
离线模式:至少2块独立的物理硬盘分别用于HDFS数据盘、系统盘。
实时模式:至少3块独立的物理磁盘分别用于Kafka数据盘,、HDFS数据盘、系统盘
二、磁盘如何挂载?
1.逻辑卷的问题
2.关于RAID
3.关于系统盘与数据盘
4.关于磁盘阵列与云
5.将大磁盘空间的硬盘与小磁盘空间的硬盘混合挂载
三、操作系统如何选择
1.延云推荐使用CentOS 6.6,6.5的系统(请不要使用CentOS7)
2.尽量选择安装英文语言环境,中文版Ambari有时会有问题,。
对于YDB来说,是不挑操作系统版本的,只要您的系统能安装上Hadoop,那么YDB一般都能运行起来。甚至有些同学还在MAC上调试YDB。但是如果您是要运行在生产系统上,操作系统的选择就尤为重要了。
四、操作系统设置
1.Ulimit配置
echo "* soft nofile 128000" >> /etc/security/limits.conf
echo "* hard nofile 128000" >> /etc/security/limits.conf
echo "* soft nproc 128000" >> /etc/security/limits.conf
echo "* hard nproc 128000" >> /etc/security/limits.conf
sed -i 's/1024/unlimited/' /etc/security/limits.d/90-nproc.conf
cat/etc/security/limits.d/90-nproc.conf
2.Swap的问题
echo "vm.swappiness=1" >> /etc/sysctl.conf
3.网络配置优化
echo " net.core.somaxconn = 32768 " >> /etc/sysctl.conf
4.SSH无密码登录
安装 Hadoop与Ambari均需要无密码登录
设置方法请参考如下命令
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh-copy-id root@ydbslave01
ssh-copy-id root@ydbslave02
…..
5.关闭防火墙
6.配置机器名,以及hosts域名解析
切记 hosts文件中 不要将localhost给注释掉,并且配置完毕后,执行下 hostname -f 看下 是否能识别出域名
7.setenforce与Umask配置
sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/refresh-packagekit.conf
cat /etc/yum/pluginconf.d/refresh-packagekit.conf
echo umask 0022 >> /etc/profile
8.检查/proc/sys/vm/overcommit_memory的配置值
如果为2,建议修改为0,否则有可能会出现,明明机器可用物理内存很多,但JVM确申请不了内存的情况。
9.语言环境配置
echo "export LANG=en_US.UTF-8 " >> ~/.bashrc
10.配置时间同步
Hadoop,YDB等均要求机器时钟同步,否则机器时间相差较大,整个集群服务就会不正常,所以一定要配置。建议配置NTP服务。
参考资料如下:http://www.linuxidc.com/Linux/2009-02/18313.htm
11.JDK安装部署
YDB支持JDK1.7,JDK1.8,为了便于管理和使用,建议使用YDB随机提供的JDK1.8
12.环境变量
请大家千万不要在公共的环境变量配置HIVE、Spark、LUCENE、HADOOP等环境变量,以免相互冲突。
13.请检查盘符,不要含有中文
尤其是Ambari,有些时候,使用U盘或移动硬盘复制软件,如果这个移动硬盘挂载点是中文路径,这时在安装Ambari的时候会出现问题,一定要注意这个问题。
14.检查磁盘空间,使用率不得超过90%
默认Yarn会为每台机器保留10%的空间,如果剩余空间较少,Yarn就会停掉这些机器上的进程,并出现Container released on a *lost* node错误。
15.关键日志,定时清理,以免时间久了磁盘满了
如可以编辑crontab -e 每小时,清理一次日志,尤其是hadoop日志,特别占磁盘空间
0 */1 * * * find /var/log/hadoop/hdfs -type f -mmin +1440 |grep -E "\.log\." |xargs rm -rf
第五章非HDP版Hadoop基础服务配置要点
一、Hadoop服务-注意事项
5)规划好Hadoop的logs目录,尽量分给一个大点磁盘存储空间的目录,否则经常会出现导入几十亿数据后,logs目录将系统/var/log给撑满,占用率100%
6)确保将来准备分配给YDB的HDFS目录有读写权限,建议第一次新手安装,取消HDFS的权限验证,配置dfs.permissions.enabled 为false,并重启集群。
7)Hadoop的logs目录要配置上定期清理,以免时间久了,硬盘被撑爆。
8)确保HDFS安装成功,一定要手工通过hadoop -put命令,上传一个文件试一试。
10)yarn.nodemanager.resource.memory-mb用于配置Yarn当前机器的可用内存,通常配置当前机器剩余可用内存的80%.
11)yarn.scheduler.minimum-allocation-mb为一个Yarn Container申请内存的最小计费单位,建议调小一些,如128,让计费更精准.
12)yarn.scheduler.maximum-allocation-mb为一个Yarn container可以申请最大的内存,建议调整为32768 (不一定真用到这些)
13)不建议启用CGROUPS,进行CPU隔离,对于即席系统来说,尽量充分利用资源。
14)yarn.nodemanager.resource.cpu-vcores 当前机器可以启动的Yarn container的数量,建议配置为当前机器的cpu的线程数的80%。
15)yarn.scheduler.maximum-allocation-vcores配置的稍微大一些,以便单个container能够多启动一些线程。
18)为了便于查找问题,我们一般保留7天的Hadoop日志,可以配置Yarn日志清理yarn.nodemanager.delete.debug-delay-sec 为 604800 (7天)
19)调整dfs.datanode.max.transfer.threads的值,默认4096太小,建议调整为10240
20)调整ipc.server.listen.queue.size为32768
21)调整yarn.resourcemanager.am.max-attempts的值为10000000,默认的2次太小,客户测试过程反复的kill就会导致整个任务失败。
二、Spark 需要使用延云提供的spark版本
1)无需配置,只需要解压开放到指定目录即可,我们一般解压到/opt/ydbsoftware/spark
2)请大家不要启动spark服务,YDB本身会自己调用Spark启动服务,无须我们额外为Spark启动服务。
三、ZooKeeper服务注意事项
第一:要探测ZooKeeper的2181端口是否启动 可以通过netstat –npl|grep 2181来查看
第三:ZooKeeper的日志清理要打开,否则会出现系统运行几个月后,ZooKeeper所在的磁盘硬盘变满的情况,将zoo.cfg里的这两个配置项注释开即可:
第四:YDB使用的ZK的版本一定要与ZK的版本一致,如果不一致请更换ya100/lib下的zookeeper相关jar包。
四、Kafka注意事项
如果kafka配置的不好, 会发生比较严重的数据倾斜,而且在压力较大的情况会导致数据丢失。所以跟Kafka有关的如下配置,请一定要认真阅读
注:spark.executor.max.usedcores默认(没有配置)为2个,表示每个进程会启动2个分片。
如果磁盘长时间使用率100%,必出现丢数据,会出现如下异常,配置的kafka retry机制无效
l如果我们先前采用的send方法没使用callback,一旦消息发送失败,我们没有处理异常的话,这个消息就丢了。
这个问题如何解决?
1)如果有条件,Kafka尽量独立集群,最低要求也一定要独立磁盘,并且写入限速
独立磁盘是解决问题的根本,磁盘很繁忙的情况下,broker出错的概率很大。
2)send 里面的callback,如果是异常一定要自己做容错处理
发现send函数里的callback,一定要对Exception exception不是null的情况做重试处理,一定要处理,根据判断重试几次。
3)调整kafka的参数
a)建议在Producter端增加如下参数
props.put("compression.type", "gzip");
props.put("linger.ms", "50");
props.put("acks", "all");
props.put("retries ", 30);
props.put("reconnect.backoff.ms ", 20000);
props.put("retry.backoff.ms", 20000);
b)在Server端的broker增加如下配置
|
|
|
第六章非HDP版本的YDB部署
一、安装前的准备
请参考第三章基本环境注意事项,第四章的依赖的服务注意事项,准备基础环境,这个很重要。
二、YDB软件下载
从http://url.cn/42R4CG8获取延云软件
该Spark延云修正了一些BUG,以及在SQL解析上做了处理
三、特殊版本的Spark的编译
如果我们的Hadoop版本比较特殊,大家可以从延云下载Spark源码执行进行编译。
修改源码包里面的ydb.combile.sh,将里面的hadoop改成我们对应的版本。
然后直接运行 sh ./ydb.compile.sh 即可,编译时间取决于我们的网络,首次编译时间估计会非常长,可以先下载延云提供的repository.tar.gz,以减少访问国外网络的下载时间。
四、软件解压
解压到/opt/ydbsoftware目录下,最后可以看到目录结构是这样的
conf目录是YDB的所有配置文件,bin目录是YDB的执行文件
五、配置conf目录下的ya100_env.sh环境变量
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HADOOP_HOME=/usr/hdp/current/hadoop-client
export JAVA_HOME=/usr/jdk64/jdk1.8.0_60
export SPARK_HOME=/root/software/spark-1.6.1
注意:配置过后大家一定要手工验证下,相关目录的配置文件是否真的存在
#为启动的进程数量,切记不要超过Yarn总的VCores的数量-1
#如果有3台机器,每台机器配置12个的话那么下面这项的值要写36,不要只写12
#YA100_EXECUTORS*YA100_MEMORY的大小建议为yarn总内存的3/5(剩下的留给操作系统)
#关于内存控制参数的详细说明,请阅读example下的《3.大家需要了解的几个内存控制的参数.txt》说明
#配置值不可超过Yarn的yarn.scheduler.maximum-allocation-vcores的值
export YA100_DRIVER_MEMORY=6000m
六、配置conf目录下的ydb_site.yaml环境变量
4.注意每个KEY : VALUE 之间是有一个空格的,如果value是字符串类型,要用双引号括起来
1.配置 YDB的存储路径的配置 ydb.hdfs.path
注意YDB的存储路径与ya100的存储路径不是一个,要分别配置成不同的路径,不能重复
ya100的默认存储路径在conf目录下的hive-site.xml中的hive.metastore.warehouse.dir
Ya100的每张表的存储路径也可以再创建表的时候由location来指定。
2.配置Ydb在实时导入过程中,所使用的临时目录ydb.reader.rawdata.hdfs.path
3.配置ydb http ui服务的端口 ydb.httpserver.port 默认为1210
4.配置ydb依赖的zookeeper:storm.zookeeper.servers 与 storm.zookeeper.root
七、其他ya100/conf目录下的配置文件的说明
hive-site.xml hive表的配置,如果想要更改Hive的一些配置,如将Hive的元数据写入到数据库里,可修改此文件。
spark-defaults.conf 用于配置Spark,如果需要修改Spark的默认调度规则,可以修改此配置。
init.sql 为ya100启动时候的初始化方法,如果我们的业务需要自定义UDF,可以考虑将自定义UDF语句放到这里,通过init.sh来执行
driver.log.properties为接口程序的log4j的配置,默认日志记录在logs目录下
八、开始部署延云YDB-服务的启动与检查
./restart-all.sh 或 ./start-all.sh
1.tail -f ../logs/ya100.log 看是否有报错,当出现如下的日志,表示启动成功
2.打开yarn的8088页面,看启动的container数量以及内存的时候是否正确
3.看下面是否有ya100 on spark的任务,点击对应的Application Master看是否能打开Spark的UI页面
2.点开“work工作进程列表”看启动的worker数量是否与在ya100_env.sh里配置的YA100_EXECUTORS数量一致
转载于:https://www.cnblogs.com/hd-zg/p/7115102.html
基于原版Hadoop的YDB部署(转)相关推荐
- 基于原版Hadoop的YDB部署
YDB依赖环境准备 一.硬件环境 硬件如何搭配,能做到比较高的性价比,不存在短板.合理的硬件搭配,对系统的稳定性也很关键. 1.CPU不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客户,他们 ...
- 基于HDP版本的YDB安装部署
第三章 YDB依赖环境准备 一.硬件环境 硬件如何搭配,能做到比较高的性价比,不存在短板.合理的硬件搭配,对系统的稳定性也很关键. 1.CPU不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客 ...
- 基于HDP版本的YDB安装部署(转)
第三章 YDB依赖环境准备 一.硬件环境 硬件如何搭配,能做到比较高的性价比,不存在短板.合理的硬件搭配,对系统的稳定性也很关键. 1.CPU不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客 ...
- Spark集群基于Zookeeper的HA搭建部署笔记(转)
原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...
- Hadoop全分布式部署 - CentOS(结尾附视频)
写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...
- 【计算机大数据毕设之基于spark+hadoop的大数据分析论文写作参考案例】
[计算机大数据毕设之基于spark+hadoop的大数据分析论文写作参考案例-哔哩哔哩] https://b23.tv/zKOtd3L 目 录 一 引言1 二 系统分析2 2.1 必要性和可行性 ...
- Hadoop平台组件部署
Hadoop平台组件部署 目录 引言 5 1.1. 目的 5 1.2. 术语与缩写解释 6 1.3. 参考资料 6 系统配置 6 2.1. 运行环境 6 2.2. 硬件配置 7 2.3. 硬件安排 7 ...
- 基于Java+hadoop网络云盘上传下载系统设计与实现
目 录 网络云盘上传下载系统摘要----------------------------------5 The Network Cloud Disk`s Upload and DownloadAbst ...
- 基于C++的PyTorch模型部署
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言 PyTorch作为一款端到端的深度学习框架,在1.0版本之后 ...
最新文章
- 学生每日计划表_早上6:13,很多教室的灯就亮了!高考还有10天,你都想象不到这些学生有多拼...
- 过滤输入内容中是否含有特殊字符与表情
- 计算机二级考试选择科目有级别,计算机二级考试该选哪一科目?
- 大数据标准化白皮书正式发布
- python global和nonlocal_3.关于作用域知识的额外补充global和nonlocal关键字
- 跟着刚哥梳理java知识点——多线程(十六)
- 单元测试技巧:创建描述性测试
- 计算机二级vb上机操作题库,2016计算机二级《VB》上机题题库(含答案)
- appium java 时间控件_在 Appium 中快速单击控件的变通方法
- Python模块——matplotlib模块详解
- [UITableView]简介
- linux mentohust dhcp,校园网锐捷 openwrt mentohust 成功开启IPv6
- TOM邮箱容量满了收发不了邮件?你应该快速做到这些事
- 表扩展字段2种实施方案研究
- Front Immunol 复现 | 1. GEO数据下载及sva批次校正(PCA可视化)
- ArcGIS生成矢量的分层设色地形图
- seo排名系统源码,矩阵系统源码,火剪系统源码
- 声网再亏损,故事好讲但不好听
- 深度学习目标检测最全综述
- tomcat宕机无法响应问题研究解决
热门文章
- 做人力资源需要掌握python_9种人力资源分析工具,高效打造数字化HR全流程
- js 点击button切换颜色_ThingJS 和three.js开发示例对比,让开发早点下班回家!3D 可视化...
- 不动产中心考试计算机测试题,2005年全国计算机二级考试VFP笔试模拟题
- Chapter1-6_Speech_Recognition(RNN-T Training)
- LeetCode 311. 稀疏矩阵的乘法
- LeetCode 278. 第一个错误的版本(二分查找)
- 用python开启相机_如何用Python打开realsenseD435相机并获取相机参数
- android aop 权限检查,AOP简单拦截实现验证权限功能
- (二十五)【NIPS 2017】Prototypical Networks for Few-shot Learning
- 论文审稿人可以下岗了?CMU都做出论文审稿机器人了!