|
1.随着数据规模的增长,如何扩展系统呢?有两种主流的方法,向上扩展与向外扩展。向上扩展的方法是将数据处理任务迁移到更大的服务器或者存储矩阵。而向外扩展的方法并不通过升级系统的硬件来获得更强的处理能力,而是将数据处理任务分发给越来越多的机器。请比较这两种方法的优缺点。
在某些情况下,工作负载的增量超出了单台整体向上扩展的服务器的能力?这时该怎么办呢?最好的办法是使用2台,或者更多服务器.而在极端情况下,向上扩展架构必然会加入向外扩展的策略,将二者结合起来.尽管这样同时吸收了两种办法的部分优点,但是也综合了两种方法的缺陷和成本.向上扩展架构的终极趋势和成本曲线导致其在大数据领域鲜有应用,而向外扩展架构成为了事实上的标准.
2.有些开发者会批评Hadoop的一切设计都是以Java为中心,而Hadoop的团队一直在努力解决这个问题。难道一个用Java语言实现的项目不该以Java为中心么?当然我们使用非Java语言也可以操作Hadoop,任何可以读写标准输入和输出的程序都可以用于Streaming,比如像Ruby或Python这样的动态语言编写的程序等。请谈谈Streaming有哪些优势?
Streaming的最大优势在于,使用它比使用Java更快的实现开发,用户只需编写脚本,并把参数传给Streaming jar文件,因此可以明显的加快开发进度。
3.Hive是建立在Hadoop基础上的数据仓库,它使用MapReduce对存储在HDFS上数据进行分析.它专门定义了一种类SQL的查询语言.而基于Hadoop大规模数据分析平台的另一种工具Pig,也具有相似的功能.请问Hive与Pig之间有什么区别?哪种工具更好?
二者最大的区别在于对作业执行的控制粒度。HiveQL就像SQL一样,它只定义要执行的操作,却不管这些操作如何实现。Hive在运行时的工作模式类似传统关系数据库的查询规划期。
到底是选用Hive还是Pig最终取决于用户需求。如果用户更希望使用熟悉的SQL接口操作数据,它可以使用Hadoop中的数据用于更广泛的受众,那么很明显应该选用Hive。但如果有专门人员以数据流水线的方式考虑问题,并需要对作业运行方式进行更细粒度的控制,那么Pig会是一个更好的选择。
|
|