之前学习了,Hadoop的安装及部署,现在开始应用本公司的YDB产品安装。
首先需要的系统,架包,版本等;
1.操作系统
Centos 6.x 64bit
不推荐过老或过新的操作系统,诸多hadoop厂商的发行版在过老或过新的系统上有问题。
2.Java
JDK1.7及以上版本
3.Hadoop
2.6及以上版本,需要支持yarn
4.Zookeeper
zookeeper-3.4.5及以上版本
4.Spark版本
1.6.x系列,推荐1.6.2版本。之前的版本运行不了。
Spark只需要编译好的安装包,放到指定磁盘目录即可,您无需安装与部署。
如果您的Hadoop版本较特殊:可以下载spark源码进行编译,编译命令如下
export JAVA_HOME=/install/jdk
export PATH=$JAVA_HOME/bin:$PATH
export MAVEN_OPTS="-Xmx3g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m“
build/mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.1 -Phive -Phive-thriftserver -DskipTests -Dmaven.test.skip=true clean package
5.ulimit –n 检查是否是65535而不是默认的1024
否则执行如下三步配置ulimit
第一步:编辑/etc/security/limits.conf 最后增加如下四行记录
* soft nofile 128000
* hard nofile128000
* soft nproc128000
* hard nproc128000
第二步:编辑/etc/security/limits.d/90-nproc.conf
将其中的1024也修改为128000
第三步:执行 ulimit -SHn 128000
注意 如果是hdp安装的系统,在/etc/security/limits.d下会为不同的账号分别配置
6. 内存设置
检查/proc/sys/vm/overcommit_memory的配置值
如果为2,建议修改为0,否则有可能会出现,明明机器可用物理内存很多,但jvm确申请不了内存的情况。
调整overcommit_ratio的阈值为90%
echo "90" > /proc/sys/vm/overcommit_ratio
7.关闭swap分区
vi /etc/sysctl.conf
vm.swappiness=1
sysctl -p
sysctl –a|grep swappiness
8.为了便于发现系统磁盘问题,超过30秒还没有响应的磁盘 打印出来
echo 30 >/proc/sys/kernel/hung_task_timeout_secs
9。关闭防火墙iptables-P INPUT ACCEPT
iptables-P FORWARD ACCEPT
iptables-P OUTPUT ACCEPT
iptables-F
10.配置语言环境
exportLANG=zh_CN.UTF-8 这个环境变量
11.10000端口是否被占用
由于ya100对外的jdbc的服务端口为10000,需要先通过netstat -npl|grep 10000看看是否有进程已经占用了改端口,如果有,相关服务要先停掉后才能启动ya100,典型场景是,先前这台机器已经启动了别的spark或hive服务,占用了10000端口
依赖的软件
1.Zookeeper检查
第一:要探测zookeeper的2181端口是否启动 可以通过netstat –npl|grep2181来查看
第二:zookeeper的数据目录别与hdfs的数据盘放在一起,尽量独立一个磁盘,或者放在系统盘,否则数据盘特别繁忙的时候zookeeper本身非常容易挂掉
第三:zookeeper的日志清理要打开,否则会出现系统运行几个月后,zookeeper所在的磁盘硬盘变满的情况,将zoo.cfg里的这两个配置项注释开即可:
autopurge.purgeInterval=24
autopurge.snapRetainCount=30
第四:ydb使用的zk的版本一定要与zk的版本一致 如果不一致请更换ya100/lib下的zookeeper相关jar包
2.HDFS检查
打开50070端口,检查hdfs是否启动成功,存储空间分配的是否正确
第一:确保hdfs安装成功,一定要手工通过hadoop–put命令,上传一个文件试一试。
第二:确保将来准备分配给YDB的hdfs目录有读写权限,建议第一次新手安装,取消hdfs的权限验证,配置dfs.permissions.enabled 为false,并重启集群
第三:一定要确保dfs.datanode.data.dir的目录配置的是所有的数据盘,而不是配给了系统盘
系统盘一定要与数据盘分离,否则磁盘特别繁忙的时候会造成操作系统很繁忙,zk之类的容易挂掉。
第四:规划好hadoop的logs目录,尽量给一个大点盘的日志目录,否则经常会出现导入几十亿数据,logs目录将系统/var/log给撑满,占用率100%。
第五:hadoop的logs目录要配置上定期清理,以免时间久了,硬盘被撑爆。
第六:namenode节点要启动一个备份节点,主要是为了防止磁盘损坏,导致namdenode不可恢复
开始部署YDB
第一:去延云的官方下载最新的稳定版的YDB
第二:将YDB上传到服务器上,并解压
第三:配置conf目录下的ya100_env.sh环境变量
1.基本环境配置
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HADOOP_HOME=/usr/hdp/current/hadoop-client
export JAVA_HOME=/usr/jdk64/jdk1.8.0_60
exportSPARK_HOME=/root/software/spark-1.6.1
注意:配置过后大家一定要手工验证下,相关目录的配置文件是否真的存在
2.配置内存与启动的并发数
#为启动的进程数量,切记不要超过yarn总的vcores的数量-1,建议每台机器配置cpu线程数的一半,如12个;
#如果有3台机器,每台机器配置12个的话那么下面这项的值要写36,不要只写12
export YA100_EXECUTORS=12
#启动的进程,每个给分配多少内存
#YA100_EXECUTORS*YA100_MEMORY的大小建议为yarn总内存的3/5(剩下的留给操作系统)
#关于内存控制参数的详细说明,请阅读example下的《3.大家需要了解的几个内存控制的参数.txt》说明
export YA100_MEMORY=2500m
#每个进程内启动的线程数,一般不需要修改,yarn中vcores的数量与ya100对应关系为 YA100_EXECUTORS*YA100_CORES+1
export YA100_CORES=3
#ya100接口程序分配的内存,建议2000m以上
export YA100_DRIVER_MEMORY=3000m
第四:配置conf目录下的ydb_site.yaml环境变量
该文件的配置非常容易出错,要注意如下几点:
1.文件格式必须为utf8格式,切记切记
2.每个配置项的开头必须有个空格,而不tab
3.配置文件中别出现tab
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目录下的配置文件的说明
进入bin目录,执行chmod a+x *.sh
第一:ydb
./restart-all.sh 或 ./start-all.sh
第二:spark 服务检查:
1.tail -f../logs/ya100.log 看是否有报错,当出现如下的日志,表示启动成功
2.打开yarn的8088页面,看启动的container数量以及内存的时候是否正确
3.看下面是否有ya100 on spark的任务,点击对应的applicationMaster看是否能打开spark的ui页面
第三:YDB服务检查
1.通过浏览器打开:1210页面,看是否能打开
2.点开“work工作进程列表”看启动的worker数量是否与在ya100_env.sh里配置的YA100_EXECUTORS数量一致
第四:服务的停止
./stop-all.sh
其他使用方法及实例等在ya100中可找到。