学习 Spark 2(四):Spark 读写 Hive

启用 Hive 在使用 Builder 模式 SparkSession.Builder 创建 SparkSession 实例,通过调用 enableHiveSupport() 即可启用 Hive: SparkSession.builder() .master("yarn") .appName(appName) .enableHiveSupport() .getOrCreate() 在使用 Oozie 运行 Spark »

学习 Hive(十四):配置元数据数据库

Hive 默认使用 Derby 作为存储元数据存储,作为在测试环境中使用。 生产环境中,Hive 可以使用 MySQL、PostgreSQL 作为元数据存储。 创建用户 登录 MySQL mysql -uroot -p 创建 Hive 用户 CREATE USER 'hive' IDENTIFIED BY 'secret'; »

学习 Hive(四):分桶

桶(Bucket)是优化查询的另一种方式。 不同于分区,桶对应着 HDFS 中的文件片段(segment)。 首先,指定表中的列来确定如何划分桶。 然后,Hive 对值进行哈希并将结果除以桶的个数取余数。 最后,计算结果相同的记录将被分配到同一个桶内(文件片段)。 注意: 桶的数量,尽量是2的倍数 Reduce 任务的数量尽量等于桶的数量 由于 Load 并不会使用元数据对数据进行校验,所以不能像其它表一样使用 Load »

学习 Hive(三):分区

分区(partition)是 Hive 优化查询的一种方式。 默认情况下,Hive 中的查询会扫描整张表,当查询一张极大的表时会严重降低查询性能。 在 Hive 中,每个分区对应着一个预定义的分区列,并存储在 HDFS 中表目录的子目录下。 创建分区表 CREATE TABLE IF NOT EXISTS friends_partition ( id INT, »

学习 Hive(二):文件格式

Hive 原生支持以下文件格式: Text File SequenceFile Avro Files ORC Files Parquet 其中 Text File、SquenceFile 和 Avro Files 为行式存储,Parquet 和 ORC Files 为列式存储。 Parquet 与 ORC »