归档: 2017/2

Hive数据库创建、表创建、加载数据

1.数据库1.1.创建数据库在Hive数据库是一个命名空间或表的集合。dbproperties,按照键值对的方式增加文档的说明。此语法声明如下:12CREATE DATABASE|SCHEMA [IF NOT EXISTS] <database name>with dbproperties(key=value,key=value) 在这里,IF NOT EXISTS是一个可选子句,通知用户已经存在相同名称的数据库。执行创建一个名为pactera数据库:

User yangql is not allowed to impersonate anonymous

使用HiveServer2 and Beeline模式运行时,启动好HiveServer后运行1beeline -u jdbc:hive2://localhost:10000 -n root 连接server时出现错误:12java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):User yangql is not allowed to impersonate anonymous

Hive安装

1.Hive介绍 在Hadoop生态圈中属于数据仓库的角色。Hive能够管理Hadoop中的数据,同时可以查询Hadoop中的数据。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。 Hive定义了简单的类SQL查询语言,称为HQL ,它允许熟悉SQL的用户查询数据。同时,这个语言也允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。 本质上讲,Hive是一个SQL解析引擎。Hive可以把SQL查询转换为MapReduce中的job然后在Hadoop执行。Hive有一套映射工具,可以把SQL转换为MapReduce中的job,可以把SQL中的表、字段转换为HDFS中的文件(夹)以及文件中的列。这套映射工具称之为metastore,一般存放在derby、mysql中。 Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R的Job里使用这些数据。

Hive权限控制

目前hive支持简单的权限管理,默认情况下是不开启,这样所有的用户都具有相同的权限,同时也是超级管理员,也就对hive中的所有表都有查看和改动的权利。Hive本身也不提供创建用户组和用户的命令,Hive用户组和用户即Linux用户组和用户,和hadoop一样,本身不提供用户组和用户管理,只做权限控制。

Spark-配置HistoryServer

1.为什么要有HistoryServer以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息;但该WEBUI随着Application的完成(成功/失败)而关闭,也就是说,Spark Application运行完(成功/失败)后,将无法查看Application的历史记录; Spark history Server就是为了应对这种情况而产生的,通过配置可以在Application执行的过程中记录下了日志事件信息,那么在Application执行结束后,WEBUI就能重新渲染生成UI界面展现出该Application在执行过程中的运行时信息; Spark运行在yarn或者mesos之上,通过spark的history server仍然可以重构出一个已经完成的Application的运行时参数信息(假如Application运行的事件日志信息已经记录下来);

Spark-Zookeeper实现HA

在Spark集群上安装Zookeeper,实现集群的高可用性(HA),Hadoop及Spark集群的搭建请参考相关博客。Hadoop2.5.1完全分布式集群部署Spark-CentOS6下搭建spark-2.1.0-bin-hadoop2.7

Spark-Yarn-cluster与Yarn-client

在Spark中,有Yarn-Client和Yarn-Cluster两种模式可以运行在Yarn上,通常情况下Yarn-cluster适用于生产环境,而Yarn-Cluster更适用于交互,调试模式,以下是它们的区别

Spark-第一个Spark程序

利用Scala语言编写第一个Spark程序,并分别在本地和Spark集群正常运行,主要有以下几个步骤。1 创建Spark的配置对象SparkConf,设置Spark的运行时信息,例如说通过色图Master来设置程序要链接到的集群的Master的URL,如果设置为local,则为本地运行。2 创建SparkContext对象,SparkContext是Spark程序所有功能的入口。其核心作用是:初始化Spark应用程序的运行所需要的核心组件。包括DAGSchedule,TaskSchedule,同时还负责Spark程序往Master注册等功能.3 根据数据的不同来源,通过SparkCont来创建RDD,数据被RDD划分为一系列的Partitions,分配到每一个Partition的数据属于一个Task处理的范围4 对初始的RDD进行Transformation级别的处理。例如map,filter等高阶函数的编程