版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、hive编程实战 一 hive基础 1.1 什么是hive? hadoop生态系统是为了处理大数据集而产生的一个合乎成本效益的解决方案。hadoop实现了一个特别的计算模型,即mapreduce,其可以将计算认为分割成多个处理单元然后分散到hadoop集群中的家用或服务器级别的硬件机器上,从而降低成本并提供动态扩展的能力。基于这个计算模型的下面是一个被称之为hdfs(hadoop分布式文件系统)的分布式文件系统。 不过,仍然存在一个挑战,那就是用户如何从一个现有的数据基础架构转移到hadoop上,而这个基础架构是基于传统关系型数据库和结构化sql语言的。对于大量的关系型数据库的维护、实施、开发
2、人员,这个问题将如何解决呢?这就是hive出现的原因。 hive提供了一个被称之为hive查询语言,简称hql的sql方言(与mysql及其类似),用来查询存储在hadoop集群中的数据。hive可以将大多数的查询转换为mapreduce的job任务,从而使得采用简单的sql编程方式,来替换掉原有的mapreduce中的复杂java编程。 hive最适合于数据仓库应用程序,使用该应用程序进行相关的静态数据分析,不需要快速响应给出结果,而且数据本身不会频繁变化。 hive不是一个完整的数据库,其中最大的限制就是hive不支持记录级别的更新、插入或者删除,但是用户可以通过查询生成新表或者将查询结果
3、导入到文件中。同时,基于mapreduce的hive查询延时比较严重,没有传统的rdbms查询速度快,hive不支持事物。 因此,hive是最适合数据仓库应用程序的,其可以维护海量数据,而且可以对数据进行分析,然后形成统计结果以及报表等。 1.2 hive组成模块 所有的命令和查询都会进入到driver(驱动模块),通过该模块对输入进行解析编译,对需求的计算进行优化,然后按照指定的步骤执行。当需要启动mapreduce任务时,hive本身是不会生成java mapreduce程序。hive通过一个表示“job执行计划”的xml文件驱动执行内置的、原声的mapper和reducer模块。 hiv
4、e通过和jobtracker通信来初始化mapreduce任务,而不必部署在jobtracker所在的管理节点上执行。 hive是一个sql解析引擎,可以把用户编写的sql语句转换成mapreduce的job来执行,同时,hive可以把在hive中建立的表、字段等内容转换成hdfs中的文件存储内容。这一整套的转换工具,在hive中称之为metastore,默认hive是使用的derby来存储,但是由于derby的局限性以及不支持同时访问行,在企业开发中,这一套metastore,一般是采用oracle或者mysql等关系型数据库来存储。 二 hive基础 2.1 hive安装配置 2.1.1
5、hive下载 首先去在 /dist/hive/ 中下载hive的原文件,hive的版本很多,我们教程选用的是最新的 hive-0.13.0 版本。进入目录,选择apache-hive-0.13.0-bin.tar.gz(52m)。 在centos中,新建一个hive目录,将apache-hive-0.13.0-bin.tar.gz文件上传至hive目录中。(我的目录是在下,也即:/home/hadoop目录中)。 显示内容如下: 解压文件:tar -zxvf apache-hive-0.13.0-bin.tar.gz。解压效果如下: 由于解压的文
6、件夹名称太长,我们为文件夹换个简单的名字,就叫hive: 所以,hive的地址就为:/home/hadoop/hive。 2.1.2 配置环境变量 在bash_profile中加入hive_home,并在path中增加hive_home/bin,最后export。保存后,记得用source命令。 source .bash_profile 2.1.3 修改配置文件 与hadoop一样,hive在启动过程中,也需要修改一些hive的配置文件。在hive_home/conf文件夹中,hive自带了4个模板文件,如果我们需要使hive生效,就复制这些模板文件进行相应的修改即可生效。 配
7、置hive-env.sh文件 hive-env.sh文件,是hive的环境配置文件,里面需要根据需求修改一些内容。 使用cp命令,复制一个hive-env.sh.template文件,并命名为hive-env.sh. cp hie-env.sh.template hive-env.sh 使用vi命令查看hive-env.sh可以查看文件内容 可以看出,hive-env.sh中,主要是设置一些hive的环境信息。我们需要修改以下内容: 1、 修改hadoop_home的地址:由于我们的hadoop_home的地址为: /home/hadoop/hadoop/hadoop-1.1.2,所以需要将h
8、adoop_home的地址修改为我们的真实地址,并将前面的#注释给删除。 2、 修改hive_conf_dir:由于我们的hive_conf地址为/home/hadoop/hive/hive/conf,所以需要将hive_conf_dir修改为我们的hive_conf地址,并将前面的#注释删除。 3、 默认hadoop的堆大小为1g,如果有特殊需要,可以调的大一些,我们这里就用默认的就可以了。 保存退出。 安装mysql作为hive的metastore mysql安装步骤请参见附件一:安装mysql 同时,需要将mysql的连接驱动 放入hive/lib目录中
9、配置hive-site.xml文件 对于hive自身的配置文件,需要在hive-site.xml文件中进行配置。conf下有一个文件,名为:hive-default.xml.template,用cp命令复制一份并重命名为hive-site.xml。 cp hive-default.xml.template hive-site.xml 接下来,我们使用mysql作为metastore来替代默认的derby数据库: 修改hive-site.xml文件,替换<config></config>的内容 内容如下: <property> <name>hive
10、.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.connectionurl</name> <value>jdbc:mysql:/00:3306/hive?characterencoding=utf-8</value> </property> <property> <name>javax.jdo.op
11、tion.connectiondrivername</name> <value>com.mysql.jdbc.driver</value> </property> <property> <name>javax.jdo.option.connectionusername</name> <value>root</value> </property> <property> <name>javax.jdo.option.connectionpassword&l
12、t;/name> <value>root</value> </property> 配置mysql中hive库的操作权限 2.1.4 启动hive 启动hive以前,启动先保证hadoop启动成功。 使用命令hive,即可启动hive 三 hive操作 3.1 基本操作 查询hive中所有的库,类似于mysql的操作,show databases 附件一:安装mysql 1.1 删除mysql 切换到root用户 在安装mysql以前,首先需要保证系统没有安装过mysql,如果安装了mysql,需要进 行卸载。 先用rpm qa|grep
13、 mysql查看安装的rpm包。 发现已经有一个mysql的文件了,首先我们把它删除。删除命令为: rpm -e -nodeps 文件名 可以看到,经过操作,已经删除了mysql的安装文件。 1.2安装mysql 用root用户,在根目录下建立root文件夹。上传mysql的服务器段软件和客户端软件,文件名如下:mysql-client-5.6.17-1.el6.i686.rpm和mysql-server-5.6.17-1.el6.x86_64.rpm。 1.2.1 安装mysql服务器端 接下来开始安装mysql的服务器端,软件包为mysql-server-5.6.17-1.el6.x86_
14、64.rpm。 rpm -ivh mysql-server-5.6.17-1.el6.x86_64.rpm 等待一会,安装完毕。 接下来启动mysq,我们采用安全模式后台启动,命令为:mysqld _safe & 可以发现,mysql已经启动成功了。 1.2.2 安装mysql客户端 接下来开始安装mysql的客户端,软件包为mysql-client-5.6.17-1.el6.x86_64.rpm。 rpm -ivh mysql-client-5.6.17-1.el6.x86_64.rpm 很快,客户端就安装完毕了。 1.2.3 为mysql创建密码 安装完mysql以后,默认的用户名为root,密码为空,为了安全起见,需要修改mysql中root用户的密码,在这里我们把密码也设置为root。 使用命令:mysql_secure_installation来设置mysql密码 是否更改mysql密码,这里输入y 输入新密码 root,再一次输入新密码root 接下来询问是否删除匿名用户,这里我们输入 n 这里是询问是否关闭root的远程登录,我们也输入 n 这里询问是否删除mysql的测试数据库,我们也输入 n 这里询问是否重新刷新权限表,我们输入 y。 思数云bihuman 零一零 八二七五六七九七1.2.4配置mysql中hive库的操作权限 由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年工地食堂承包经营合同
- 2024年个人对个人住宅装饰合同
- 动画制合同模板
- 精准医疗技术研发与应用服务合同
- 某公司合同模板
- 招聘合同模板简写
- 亮化包工合同模板
- 样复制合同模板
- 水利 固定总价合同模板
- 2024年健身房教练聘用合同
- 院前急救与院内急诊有效衔接工作制度
- 2.1充分发挥市场在资源配置中的决定性作用(课件) 2024-2025学年高中政治 必修2 经济与社会
- Unit+5+Fun+Clubs+Section+A++(1a-1d)教学课件-2024-2025学年人教新目标(2024)七年级英语上册
- 超聚变 FCIA 考试题库
- 陕煤集团笔试题库及答案
- 33 《鱼我所欲也》对比阅读-2024-2025中考语文文言文阅读专项训练(含答案)
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
- 《中华民族共同体概论》考试复习题库(含答案)
- 2022-2023学年武汉市江岸区七年级英语上学期期中质量检测卷附答案
- 【原创】水平三花样跳绳教学设计和教案
评论
0/150
提交评论