背景:
最近公司需要构建大数据中心,数据中心想建立在A市,数据来源于各个子应用系统,分别位于B市,C市,D市。现在需要将位于A,B,C市的子系统的部分数据(分散在各个表中)传输到A市的数据中心进行数据处理。A,B,C的每个子系统的数据储存在MSSQL。由于之前没有做过大数据处理和构建数据中心,缺乏经验,现在有如下疑问,还请各位前辈指点一二,万分感谢!
1、将数据从子应用系统传输到数据中心,应该采取什么技术。
2、数据中心的机器的操作系统,数据的存储,数据的处理,集群管理,应该采用什么系统和技术及如何架构。请各位前辈指点一下,如果觉得麻烦,只要指出什么地方需要哪些技术即可,拜托了,非常感谢!

解决方案 »

  1.   

    传输不懂,但是存储可以采用HDFS。
    MSSQL的数据可以通过主从复制的方法,在数据中心建立副本,然后通过Sqoop导成parquet文件格式放到HDFS,通过hive/spark去访问并进行数据分析等上层大数据应用。
    服务器日志可以通过flume采集到HDFS,然后通过ELK(Elasticsearch、Logstash和Kibana)进行分析。不过我们之前的做法是flume 直接sink到HBase,用Spark去访问(我们数据分析基本围绕Spark)并分析。
      

  2.   

    还有如果是大规模的集群可以用ambari来搭建和监控。ambari自动帮你装配Hortonworks发行版的Hadoop(HDP),还可以按需装配其他Hadoop生态的组件如hbase hive ZooKeeper spark 等等。不过根据我的实测它跟centos比较兼容,这个就要考虑下惯用linux的问题了
    如果实在牛逼的数据中心还可以搭私有云(OpenStark)以及容器云(Docker),不过这块完全不了解
      

  3.   

    https://nieoding.gitbooks.io/spark/content/
      

  4.   


    非常感谢!
    由于统计分析需要时间,所以,怎么才能做到实时查询,然后得到分析结果,有思路吗?我的思想是使用数据库存储分析结果,你怎么看?谢谢!
    这要分情况。假设你是订单系统的统计查询,你可以把订单数据发布到kafka上,然后用SparkStreaming这种基于时间区间进行批处理的流式引擎去处理,然后结果可以输出到数据库里,前端去实时查询。但是如果是比较庞大的分析,可以用Hive或impala等SQL on Hadoop去做即席查询。如果是运维相关的例如日志分析可以用ELK等日志分析架构(之前写错了,Flume和Logstash一样是日志采集的ETL工具,所以Flume可以代替Logstash)。
      

  5.   

    搭私有云(OpenStark)以及容器云(Docker)