延云YDB&&YA100安装部署文档

YDB:实时在线分析(OLAP)系统:是我们自主研发的一个大型分布式索引系统。旨在为数据总量为万亿级别、每天千亿级别数据增量的项目提供近似实时的数据导入,并提供近似实时响应的多维查询与统计服务。

Ya100:大数据加速器:Spark SQL的一种新的存储格式。 Ya100比Parquet格式快5~100倍.任意维度组合,过滤,万亿数据秒级响应。Ya100内嵌ydb可以通过kafka进行数据的实时导入。



依赖的硬件配置

一、延云YDB最低配置

1.内存:16G

2.磁盘:至少2块独立的物理硬盘,数据盘与操作系统盘分离。

3.CPU:至少8线程1,4,8线程

二、如下场景,延云将不再提供安装技术支持

1.低于最低配置要求的用户。

2.虚拟机用户:hadoop在虚拟机中执行效率很低。

3.32位系统的用户:这类系统最大只有4G内存。

三、延云YDB推荐配置

1.机器内存:128G

2.磁盘:2T*12的磁盘

3.CPU24线程2,12,24线程)


YDB依赖的软件环境(需用户自行安装)

1.操作系统

Centos 6.x 64bit

不推荐过老或过新的操作系统,诸多hadoop厂商的发行版在过老或过新的系统上有问题。

2.Java

JDK1.7及以上版本

3.Hadoop

2.0以上版本,需要支持yarn

4.Zookeeper

   zookeeper-3.4.5及以上版本

4.Spark版本

1.6.x系列,推荐1.6.1版本。之前的版本运行不了

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



##################################################


操作系统:基本可用性检查

1.ulimit –n 检查是否是65535而不是默认的1024

    否则执行如下三步配置ulimit

    第一步:执行 ulimit -n 65535

    第二步:编辑/etc/security/limits.conf最后增加如下两行记录

       *softnofile 65535
        * hard
nofile 65535

    第三步:编辑/etc/security/limits.d/90-nproc.conf

          将其中的1024也修改为65535

2.确定多台机器之间的时钟时间是否同步,建议配置ntp服务

3.防火墙是否关闭

      iptables–F以及通过setup\services等服务里将防火墙关闭

4.Swap是否关闭

    Swap会对系统的稳定性带来较大影响,一般hadoop生态圈均禁用swap,禁用方法为执行

    swapoff-a

5.检查/proc/sys/vm/overcommit_memory的配置值

    如果为2,建议修改为0,否则有可能会出现,明明机器可用物理内存很多,但jvm确申请不了内存的情况。

6.检查语言环境是否UTF8

    否则 配置 exportLANG=zh_CN.UTF-8这个环境变量

7.10000端口是否被占用

     由于ya100对外的jdbc的服务端口为10000,需要先通过netstatnpl|grep 10000看看是否有进程已经占用了改端口,如果有,相关服务要先停掉后才能启动ya100,典型场景是,先前这台机器已经启动了别的sparkhive服务,占用了10000端口


依赖的软件:基本可用性检查

1.HDFS检查

      打开50070端口,检查hdfs是否启动成功,存储空间分配的是否正确

    第一:确保hdfs安装成功,一定要手工通过hadoop–put命令,上传一个文件试一试。

    第二:确保将来准备分配给YDBhdfs目录有读写权限,建议第一次新手安装,取消hdfs的权限验证,配置dfs.permissions.enabledfalse,并重启集群

    第三:一定要确保dfs.datanode.data.dir的目录配置的是所有的数据盘,而不是配给了系统盘

系统盘一定要与数据盘分离,否则磁盘特别繁忙的时候会造成操作系统很繁忙,zk之类的容易挂掉。

2.YARN检查

    打开8088,检查yarn是否启动成功,VCoresTotal \Memory Total 分配的是否正确。经常有朋友忘记更改yarn的默认配置导致一台128G内存的机器最多只能启动2个进程,只能使用8G内存。

    第一:yarn.nodemanager.resource.memory-mb用于配置Yarn当前机器的可用内存,通常配置当前机器剩余可用内存的80%.

    第二:yarn.scheduler.minimum-allocation-mb为一个Yarn container申请内存的最小计费单位,建议调小一些,如128,让计费更精准.

    第三:yarn.scheduler.maximum-allocation-mb为一个Yarn container可以申请最大的内存,建议调整为32768(不一定真用到这些).

    第四:yarn.nodemanager.resource.cpu-vcores当前机器可以启动的Yarn container的数量,建议配置为当前机器的cpu的线程数 24个。

    第五:yarn.nodemanager.pmem-check-enabledyarn.nodemanager.vmem-check-enabled一定要都配置成false,因为1.6版本的sparkBUG,会使用较多的堆外内存,yarnkill掉相关container,造成服务的不稳定。

    第六:mapreduce.application.classpath里面的值是否有配置的jar包并不存在,典型的情况下是找不到lzo的包(许多厂商的安装部署会配置该参数),如果有的jar包找不到,建议注释掉相关依赖,否则可能会造成ydb启动失败;

    如默认的hdp集群就要将其中的lzo的配置给注释掉/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar

3.Zookeeper检查

    第一:要探测zookeeper2181端口是否启动 可以通过netstatnpl|grep2181来查看

    第二:zookeeper的数据目录别与hdfs的数据盘放在一起,尽量独立一个磁盘,或者放在系统盘,否则数据盘特别繁忙的时候zookeeper本身非常容易挂掉

    第三:zookeeper的日志清理要打开,否则会出现系统运行几个月后,zookeeper所在的磁盘硬盘变满的情况,将zoo.cfg里的这两个配置项注释开即可:

       autopurge.purgeInterval=24

       autopurge.snapRetainCount=30


##################################################

开始部署延云YDB

第一:去延云的官方下载最新的稳定版的YDBhttp://ycloud.net.cn/yyydb

第二:将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

       #每个进程内启动的线程数,一般不需要修改

       export YA100_CORES=2

       #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 httpui服务的端口ydb.httpserver.port默认为1210

    4.配置ydb依赖的zookeeper的地址

        storm.zookeeper.servers:

               - "192.168.1.10"

       storm.zookeeper.root: "/ycloud/ydb

第五:其他ya100/conf目录下的配置文件的说明

    1. hive-site.xml hive 表的配置,如果想要更改 hive 的一些配置,如将 hive 的元数据写入到数据库里,可修改此文件。
    2. spark- defaults.conf 用于配置 spark ,如果需要修改 spark 的默认调度规则,可以修改此配置。
    3. init.sql ya100 启动时候的初始化方法,如果我们的业务需要自定义 UDF ,可以考虑将自定义 UDF 语句放到这里,通过 init.sh 来执行
    4. driver.log.properties 为接口程序的 log4j 的配置,默认日志记录在 logs 目录下
    5. worker.log.properties ya100 的工作进程的 log4j 的配置,默认记录在每台机器的 yarn 的工作目录下。


服务的启动与检查


    进入bin目录,执行chmoda+x *.sh

第一:启动spark

    ./start.sh

第二:spark 服务检查:

    1.tail  -f../logs/ya100.log 看是否有报错,当出现如下的日志,表示启动成功


    2.打开yarn8088页面,看启动的container数量以及内存的时候是否正确


 


  3.看下面是否有ya100 on spark的任务,点击对应的applicationMaster看是否能打开sparkui页面



第三:启动ydb

    ./init.sh

第四:YDB服务检查

    1.通过浏览器打开:1210页面,看是否能打开

    2.点开“work工作进程列表”看启动的worker数量是否与在ya100_env.sh里配置的YA100_EXECUTORS数量一致



第五:服务的停止

    ./stop.sh


##################################################

了解延云ya100ydb的用法、进行测试、生成演示demo



    打开ya100/example目录

第一: ya100_example.sql

    包含了 ya100的基本表的创建,查询的使用,数据的导入等。

第二: ydb_example.sql

    包含了ydb的表的创建,ya100ydb表的连接,查询的使用,数据的导入等

第三:如何通过kafka实时导入数据.txt

    阐述了Ydb如何通过kafka实时的进行数据导入

第四:标准性能测试.txt ”

    给出了如何用ya100自带的25个用例进行性能比较测试以及标准的tcp-h测试方法

第五:演示demo搭建.txt”

    如何快速的使用ydb生成延云官方提供的演示demo



Ya100ydb的四种使用方法

1.命令行操作

    cd bin

    ./conn.sh 直接数据命令

    ./conn.sh -f xxx.sql来执行一个文件里的全部的SQL

2.通过jdbc来连接

    Class.forName("org.apache.hive.jdbc.HiveDriver");

    Connection conn = DriverManager.getConnection("jdbc:hive2://101.200.130.48:10000/default","ycloud","");

    Statement smst = conn.createStatement();

    smst.executeQuery("setya100.spark.filter.tg_2k1v_ly_ya100=;");

    smst.executeQuery("setya100.spark.combine.tg_2k1v_ly_ya100=*;");

    smst.executeQuery("setya100.spark.top10000.tg_2k1v_ly_ya100=;");

    ResultSetrs =smst.executeQuery("selectYcount('*',ya100_pipe) from tg_2k1v_ly_ya100 limit 300");

    while (rs.next()){

       for (int i = 0; i < columnNum;i++) {

       objArray[i]=rs.getObject(i +1);

    }

    rs.close();

    smst.close();

    conn.close();

3. 旧版YDB接口(为兼容而保留)

    http://192.168.112.129:8080/sql?sql=selectindexnum,label fromydbexample whereydbpartion=‘20151011’ limit 0,100

4.新版web接口

    http://192.168.112.129:8080/sparksql?sql=set+ya100.spark.filter.tg_2k1v_ly_ya100%3D%3B+set+ya100.spark.combine.tg_2k1v_ly_ya100%3D*%3B+set+ya100.spark.top10000.tg_2k1v_ly_ya100%3D%3Bselect+indexnum%2Clabel+from+ydbexample+where+ydbpartion%3D%E2%80%9820151011%E2%80%99+limit+100


常见问题FAQ

1.是否在同一个yarn环境下混搭多个不同的环境?

    延云产品跟其他对性能要求较高的系统如Hbase一样。虽然支持混搭,但不建议这样做。

    通常来说为了避免相互之间造成较严重的影响,一般都是独立的集群。

2.是否可以在虚拟机下运行

  延云产品可以运行在虚拟机下,但是由于hadoop运行在虚拟机中性能损耗较大,所以延云跟大数据生态圈中的其他产品一样,真正的生产环境并不推荐使用虚拟机。

3.出现Container released on a *lost* node后服务就挂了

  需要先检查下磁盘的使用率是否超过90%,默认yarn会为每台机器保留10%的空间,如果剩余空间较少,yarn就会停掉这些机器上的进程。

4.使用Ya100在进行数据导入的时候,或者进行一些复杂较大的查询时其他查询会卡主。

    默认ya100使用SparkFIFO的调度模式,意味着那个任务先开始,后续的任务必须等待其完成结束后才能开始后续的查询。大家可以编辑ya100目录下的spark-defaults.conf配置文件,将其调度器,更改为公平调度模式,将一部分资源预留给较重要的查询。具体可以参考这个。

http://www.07net01.com/program/658140.html

 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值