05、hive数据仓库介绍及搭建

1. Hive介绍

      Hive起源于Facebook(一个美国的社交服务网络)。Facebook有着大量的数据,而Hadoop是一个开源的MapReduce实现,可以轻松处理大量的数据。

       但是MapReduce程序对于Java程序员来说比较容易写,但是对于其他语言使用者来说不太方便。此时Facebook最早地开始研发Hive,它让对Hadoop使用SQL查询(实际上SQL后台转化为了MapReduce)成为可能,那些非Java程序员也可以更方便地使用。hive最早的目的也就是为了分析处理海量的日志。

       Hive是一个数据仓库技术,一次将一个SQL语句转化为 Mapreduce 代码,然后对代码进行编译,最后优化执行。

      Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。

      Hive做为 Hadoop 的数据仓库处理工具,它所有的数据都存储在Hadoop 兼容的文件系统中。

      Hive将元数据存储在关系数据库管理系统( RDBMS )中,一般常用 MySQL和Derby。默认情况下,Hive 元数据保存在内嵌的 Derby数据库中,只能允许一个会话连接,只适合简单的测试。实际生产环境中不适用, 为了支持多用户会话,则需要一个独立的元数据库,使用MySQL 作为元数据库,Hive内部对 MySQL 提供了很好的支持。

  • Hive提供了一个类似SQL查询语句,即HQL来查询数据
  • Hive将SQL语句转换成M/R Job,然后在Hadoop上执行。
  • Hive是建立在Hadoop HDFS上的数据仓库基础架构。
  • Hive可以用来对数据进行提取转换加载

Hive的表= HDFS的目录

Hive数据=HDFS文件 

 

                     嵌入模式                        本地模式                                         远程模式

 2.安装MySQL Server 

 安装MySQL:yum -y install mysql-community-server

 重载所有修改过的配置文件:systemctl daemon-reload

开启服务:systemctl start mysqld

开机自启:systemctl enable mysqld 

 安装完毕后,启动MySQL会在/var/log/mysqld.log 文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端。

获取初密码:grep “temporary password" /var/log/mysqld.log

登陆MySQL:mysql -uroot -p 

 MySQL5.6.6版本之后增加了密码强度验证插件,相关参数设置的较为严格。 使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。

设置密码强度为低级: set global validate_password_policy=0;

设置密码长度: set global validate_password_length=4;

修改密码为123456: alter user 'root'@'localhost' identified by '123456';

退出:\q 

 以新密码登陆MySQL:mysql –uroot –p123456

创建用户并设定密码: create user ‘root’@’localhost’ identified by ‘123456’;

为用户赋予操作数据库所有权限:grant all privilages on *.* to ‘root’@’%’identified with grant option;

使操作生效:flush privileges 

 3. 基础环境配置 

3.1 创建工作目录,解压hive

建立文件夹hive:mkdir -p /usr/hive

解压Hive安装包:tar –zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz –C /usr/hive

 将hive复制到slave1中:

scp -r /usr/hive/apache-hive-2.1.1-bin root@slave1:/usr/hive/apache-hive-2.1.1-bin 

3.2 修改环境变量(master和slave1都执行)

配置环境变量(注意生效环境变量):

#set hive

export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin

export PATH=$PATH:$HIVE_HOME/bin

 4. 配置Hive Server

4.1 slave1服务器端配置

因为服务器端需要和Mysql通信,所以服务器端的Hive_Home/conf目录下需要有Mysql的lib安装包,安装包在slave2中,将其复制到slave1中。

scp /lib/mysql-connector-java-5.1.5-bin.jar slave1:/usr/hive/apache-hive-2.1.1-bin/lib

 4.2 hive-env.sh文件 

修改hive-env.sh中HADOOP_HOME环境变量

 4.3 hive-site.xml文件

slave1作为服务器端。需要相关连接的数据库的配置。比如ip、端口、数据库用户名、密码等。

 

<configuration>

<property>

<name>hive.metastore.warehouse.dir</name> <value>/user/hive_remote/warehouse</value> </property>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value>

<property>

</configuration> 

5. 配置Hive Client 

5.1 解决版本冲突和jar包依赖问题

由于客户端需要和Hadoop通信,所以需要更改Hadoop中jline的版本。即保留一个高版本的jline jar包,从hive的lib包中拷贝到Hadoop中lib位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。

cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

 5.2 hive-site.xml 

 

 6. 启动Hive 

6.1 启动hive server(slave1上)

bin/hive --service metastore

 6.2 启动hive client   (master上)  

bin/hive

 6.3 查看进程

 

 

 

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Hadoop Hive数仓实战项目是基于Hadoop和Hive技术的数据仓库项目。在这个项目中,使用Hadoop集群来存储和处理大规模的数据,并使用Hive作为数据仓库的查询和分析工具。 在项目中,首先需要添加一个hadoop用户组,并创建一个hadoop用户,并设置用户密码。然后,切换到hadoop用户,并启动Hive。通过Hive,可以执行一系列的命令,如展示数据库、退出等操作。 引用中提到,Hive建立在Hadoop之上,具有与Hadoop相同的可扩展性,可以轻松应对大规模的数据处理需求。这意味着Hadoop Hive数仓实战项目可以处理大规模的数据,并能够支持超过1000个节点的Hadoop集群。 另外,引用中提到了一些配置文件的重要性,如hive-site.xml和hive-default.xml,它们可以通过设置-hiveconf参数来进行配置。 综上所述,Hadoop Hive数仓实战项目是一个基于Hadoop和Hive技术的大规模数据仓库项目,可以通过Hive进行数据查询和分析,并具有与Hadoop相同的可扩展性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [大数据开发基础入门与项目实战(三)Hadoop核心及生态圈技术栈之3.数据仓库工具Hive基础](https://blog.csdn.net/CUFEECR/article/details/121189073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让头发掉下来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值