博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop之旅7-centerOS7 : Hive环境搭建
阅读量:6706 次
发布时间:2019-06-25

本文共 2434 字,大约阅读时间需要 8 分钟。

之前的文章带大家一起从hadoop最开始的搭建,到最终写一个MapReduce结尾,相信大家也基本了解什么是hadoop。当然了现如今的开发,基本少很少有人写MapReduce,因为写起来太麻烦了,又是map,又是reduce,还要写运行的客户端。程序猿们太喜欢偷懒了,所以hive就出现了

Hive

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.

是的,你没有看错,hive就是把sql语句转换为我们MapReduce任务的,所以做hive开发完全可以不懂编程,只需要会写sql语句就可以了。

贴一张hive的结构图,大家可以体会以下

注意

Hive不是为在线事务处理而设计。它最适合用于传统的数据仓库任务

接下来就带大家在CenterOS7上搭建一下Hive环境

Hive安装有三种模式

嵌入模式:

元熟悉信息被存储在Hive自带的Derby数据库中

只允许创建一个连接

多用于Demo

本地模式:

元数据信息被存储在MySQL数据库中

MySQL数据库与Hive运行在同一台物理机器上

多用于开发和测试

远程模式:

Hive与Mysql安装在不同的操作系统上

在这里就给搭建演示本地模式安装,元数据存在mysql中

第一步

  1. 准备Hive-2.3.3工具包:
  2. 放入linux自己目录下,通过tar -zxvf xxxxx命令解压,然后通过以下命令创建一个临时目录mkdir hive_tmpdir为后面配置做准备

第二步

  1. 进入conf目录,复制hive-default.xml.templatehive-site.xml文件
cp hive-default.xml.template hive-site.xml复制代码
  1. 配置hive-site.xml文件

将所有的${system:java.io.tmpdir}替换为第一步创建的临时目录hive_tmpdir 如果后面还接的有类似这样引用的变量${},可以直接删除

如:
hive.exec.local.scratchdir
#
${system:java.io.tmpdir}/${system:user.name}
/home/mmcc/hive_tmpdir
...复制代码

然后将hive.metastore.schema.verification的值设置为false,取消metastore验证, 再将datanucleus.schema.autoCreateTables设置为true,自动在数据库里建表。 其次配置我们的mysql数据库,关于mysql的安装大家可以自行研究。 依然是在hive-site.xml

javax.jdo.option.ConnectionURL
#数据库链接
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
#数据库驱动名
Driver class name for a JDBC metastore
javax.jdo.option.ConnectionUserName
root
#数据库账号
username to use against metastore database
javax.jdo.option.ConnectionPassword
123456
#数据库密码
password to use against metastore database
复制代码

配置好hive-site.xml之后保存退出。

第三步

  1. 将mysql的驱动包放入hive的lib目录下,
  2. 去掉hive里的sl4j的jar包,可能会和hadoop里的冲突(保留log4j-api和log4j-core和log4j-web)

第四步

到这里关于准备配置及一些准备工作就已经完成了,接下来就可以正式进行启动的流程了。首先关闭hadoop的安全模式,避免出现不必要的错误,执行命令hdfs dfsadmin -safemode leave,然后执行以下命令进行启动。

#启动hive的metastore服务[root@master bin]# ./hive --service metastore &#初始化元数据为mysql数据库(只有第一次需要),这一步完成后,在mysql里其实就会生成hive表[root@master bin]# ./schematool -dbType mysql -initSchema ##接下来可以直接运行hive了[root@master bin]# ./hive复制代码

然后我们就进入到了hive的命令行模式,就可以做hive的执行操作了。

转载地址:http://gbdlo.baihongyu.com/

你可能感兴趣的文章
i++与++i 辨析
查看>>
WebService 之 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。...
查看>>
ImportError: The _imagingft C module is not installed
查看>>
李洪强iOS经典面试题144-数据存储
查看>>
svn 和 git的区别
查看>>
五一游
查看>>
iOS后台解析
查看>>
Android View 深度分析requestLayout、invalidate与postInvalidate
查看>>
3.操作系统简单介绍 操作系统发展历史 批处理分时系统 操作系统是什么 操作系统对文件的抽象 进程 虚拟内存是什么 操作系统作用 操作系统功能...
查看>>
五花八门的main()
查看>>
PHP中的正则表达式及模式匹配
查看>>
当爬虫被拒绝时(Access Denied) - 风中之炎 - 博客园
查看>>
今天是多特殊
查看>>
tomcat的webappclassloader中一个奇怪的异常信息
查看>>
Java语言与C++语言的差异总结
查看>>
Semaphore实现Andoird版源代码剖析
查看>>
使用gSoap规避和改动ONVIF标准类型结构的解析
查看>>
架构设计之策略模式
查看>>
hdu 5400 Arithmetic Sequence(模拟)
查看>>
求职(2015南京站获得百度、美的集团、趋势科技、华为offer)
查看>>