当前位置:   article > 正文

05、hive数据仓库介绍及搭建_服务 hive 具备 hive 仓库目录 的相同值。

服务 hive 具备 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 查看进程

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/614742
推荐阅读
相关标签
  

闽ICP备14008679号