https://editor.csdn.net/md/?articleId=134878869
hadoop2.0与hadoop1.0区别体现在在架构、性能、功能和组件方面,新的版本更加强大、灵活、可靠和高效,适用于大规模数据的处理、存储和分析。
1.Hadoop 2.0具有更好的集群管理能力
Hadoop 2.0引入了YARN(Yet Another Resource Negotiator)框架,它是Hadoop1.0中JobTracker和TaskTracker的替代品,能够更好地管理资源和任务分配。与Hadoop 1.0相比,Hadoop 2.0可支持多种类型的处理程序,如批处理、流处理以及图形处理等等。2. Hadoop 2.0支持非MapReduce应用程序
Hadoop2.0提供了一个面向资源管理的通用框架,允许运行除MapReduce之外的非批处理程序,如Storm、Spark、Samza等等。这使得Hadoop可以处理各种类型的数据,并且更灵活,更适合混合型分析任务。
3. Hadoop 2.0中修改了HDFS的体系结构
Hadoop 2.0中对HDFS体系结构进行了大规模修改,使其更加健壮和可靠。新版本中引入了一些新的特性,如Secondary
NameNode的去除、NameNode的高可用性、块缓存以及数据完整性检查等。4. Hadoop 2.0提高了性能和效率
Hadoop 2.0的新版高效执行引擎不仅允许在多个应用程序之间共享资源,还改善了任务调度效率,从而提高了处理速度和性能。Hadoop2.0还采用了新的资源分配和管理功能,如容器(Container)机制,可以更好地利用机器资源,实现资源的细粒度管理。
总体而言,Hadoop 2.0对于大规模的数据处理任务来说有显著的性能优势,高可用性、可靠性及更好的集群管理能力是Hadoop 2.0的显著优势。
区别:
1.在建表的时候,外部表要使用 EXTERNAL 关键字,不指定默认是内部表;
2.创建外部表的同时,语句末尾一般要自己指定 数据文件存储路径 location ‘/AUTO/PATH’ 3。内部表不用特殊指定,默认为/user/hive/warehouse,可配置:hive-site.xml <property> <name>hive.metastore.warehouse.dir</name> <value>/hive/warehouse</value> </property>
4.内部表数据由Hive自身管理,外部表数据由HDFS管理; 5.DTOP TABLE
内部表:元数据和数据文件都会被删除掉
外部表:元数据被删除,数据文件任然保留 ,此时重建表都是可以的,还是可以直接查数据的
6.LOAD DATA
加载HDFS DATA都是会将HDFS数据进行移动到对应的表目录,类似 mv 命令
应用场景:
1.每天采集的ng日志和埋点日志,在存储的时候建议使用外部表,因为日志数据是采集程序实时采集进来的,一旦被误删,恢复起来非常麻烦。而且外部表方便数据的共享。
2.抽取过来的业务数据,其实用外部表或者内部表问题都不大,就算被误删,恢复起来也是很快的,如果需要对数据内容和元数据进行紧凑的管理, 那还是建议使用内部表
3.在做统计分析时候用到的中间表,结果表可以使用内部表,因为这些数据不需要共享,使用内部表更为合适。并且很多时候结果分区表我们只需要保留最近3天的数据,用外部表的时候删除分区时无法删除数据。
行存储将每条数据的所有列连续存储在一起,一条记录接着一条记录; 行存储中数据写入的成本较低,适合数据有频繁更新的场景;
通过使用索引,能大幅提高行存储的数据查询速度;
行存储是传统的数据组织形式,更适合传统的 OLTP 系统;(OLTP数据库表的设计强调范式,底层一般有多张有关联关系的窄表)
而列存储有以下特点:
列存储将多行记录的列连续存储在一起,一列接着一列; 由于连续存储在一起的列的数据类型都一样,所以数据压缩率更高,更省存储空间;
列存储中数据查询的成本较低,特别适合分析时只查询部分列的场景,因为不需要扫描/读取不需要查询的列;
列存储由于数据更新成本较高,一般适合读多写少的场景;(但是不代表不能更新!) 列存储是新型数据组织形式,更适合 OLAP分析型系统;(OLAP数据库表的设计强调反范式,底层一般是星型模式的若干张事实表和维度表,倾向使用大宽表)
存储格式:
textfile ,sequencefile,RCfile,orcfile,parquet 等
常用的是orcfile 和 parquet
应用场景: