第10课-Hive安装部署实验

合集下载

hive环境搭建

hive环境搭建

hive环境搭建注:本次搭建是基于已经搭建好的hadoop3集群搭建的,故对于hadoop3搭建不做介绍,且本次搭建是以本地模式为例特别关注:由于hadoop3xy不兼容hive2xy,如使⽤hive安装会出现各种问题,故使⽤hive3作为本次环境搭建1.安装mysql1.1安装mysql数据库yum install -y mysql-server1.2对字符集进⾏设置:进⼊/etc/f⽂件中,加⼊default-character-set=utf8,代码如下:1.3启动mysql服务,代码如下:service mysqld start #启动mysql服务service mysqld status #查看mysql是否启动systemctl enable mysqld #设置myql开机启动1systemctl daemon-reload #设置myql开机启动21.4设置myql的root密码mysql -uroot -p ,第⼀次进⼊时,默认密码为空,输⼊密码时直接回车可直接进⼊set password for 'root'@'localhost' = password('123456'); 设置密码为1234561.5新建root1⽤户,并且赋予两个⽤户远程登陆权限;create user 'root1'@'%' identified by '123456'; #如果使⽤root作为连接⽤户此步可以省略,本次安装使⽤root⽤户作为连接⽤户grant all on *.* to'root1'@'%'; #如果使⽤root作为连接⽤户此步可以省略,本次安装使⽤root⽤户作为连接⽤户grant all on *.* to'root'@'%';2.1配置hive-env.sh ,进⼊conf⽬录,cp hive-env.sh.template hive-env.sh ,打开 hive-env.sh⽂件:export HADOOP_HOME=/app/hadoop-3.2.1export HIVE_CONF_DIR=/app/hive-3.1.2/conf2.2配置hive-site.xml,进⼊conf⽬录,cp hive-default.xml.template hive-site.xml,打开hive-env.sh⽂件,对于如下内容有则修改,⽆则新增:<property><name>system:java.io.tmpdir</name><value>/user/hive/warehouse</value></property><property><name>system:</name><value>${}</value></property><property><name>hive.metastore.db.type</name><value>mysql</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value><description>user name for connecting to mysql server</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>root</value><description>password for connecting to mysql server</description></property>2.3创建⽬录:hadoop fs -mkdir -p /tmphadoop fs -mkdir -p /user/hive/warehousehadoop fs -chmod g+w /tmphadoop fs -chmod g+w /user/hive/warehouse2.4替换低版本的guava.jar⽂件,否则初始化时会报错:错误⼀:Exception in thread "main" ng.NoSuchMethodError: mon.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V原因:hadoop和hive的两个guava.jar版本不⼀致两个位置分别位于下⾯两个⽬录: - /usr/local/hive/lib/ - /usr/local/hadoop/share/hadoop/common/lib/解决办法:除低版本的那个,将⾼版本的复制到低版本⽬录下2.5删除hive-site.xml中的&#8特殊字符,否则初始化时会报如下错误:错误⼆:Exception in thread "main" ng.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8at [row,col,system-id]: [3224,96,"file:/app/hive-3.1.2/conf/hive-site.xml"]原因: hive-site.xml配置⽂件中,3224⾏有特殊字符解决办法:进⼊hive-site.xml⽂件,跳转到对应⾏,删除⾥⾯的&#8特殊字符即可2.6上次jdbc驱动⾄hive/lib⽬录下,否则会报如下错误:错误三:org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driverUnderlying cause: ng.ClassNotFoundException : com.mysql.jdbc.Driver原因:缺少jdbc驱动解决办法:上传jdbc( mysql-connector-java-5.1.36-bin.jar )驱动到 hive的lib下2.7初始化hiveschematool -dbType mysql -initSchema2.8启动 metastore服务(不启⽤会报:HiveException ng.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient。

Hive安装配置详细

Hive安装配置详细

Hive安装配置详细定义Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。

Hive可以将结构化的数据存储在数据仓库中,通过自己的SQL去查询分析需要的内容,这套SQL简称Hive SQL。

它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML 以及常见的聚合函数、连接查询、条件查询。

Hive在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduce 任务提交给Hadoop集群处理,获取最终的结果。

以上定义来源于《Hadoop开发者入门专刊》Hive安装我将延用《Hadoop安装》文档(/blog/706699)风格撰写下文。

Hive需要Hadoop的支持,也就是说在安装Hive之前需要正确安装Hadoop,这里不再阐述Hadoop 的安装过程。

一般我们会将Hive安装到NameNode所在主机上,这里假设使用root用户进行安装,Hive 的安装过程很简单:以上就是在Linux(cent os 5.X)上安装Hive的过程,下面就到了配置的环节。

Hive配置Hive的必要配置相当简单,只需要声明$HADOOP_HOME(请查阅《Hadoop安装》文档)这个环境变量就行了。

Hive的核心配置文件$HIVE_HOME/conf/hive-default.xml中有一些对Hive关键配置,一般我们不需要对其进行改动,如果你需要更改这个关键配置,请不要直接更改hive-default.xml这个文件,在同一目录下新建hive-site.xml文件,然后将需要更改的属性配置在这里面即可,配置格式与hive-default.xml一样。

另外,在Hive官方文档中重点提到了Hive的日志配置$HIVE_HOME/conf/hive-log4j.properties,虽然不是必要更改的配置文件,但合理的设置会对我们有一定的帮助,具体配置方法可见官方文档。

hive安装部署

hive安装部署

hive安装部署解压hive压缩包apache-hive-2.1.0-bin.tar.gz(官网下载)配置HADOOP_HOME环境变量配置HIVE_HOME环境变量在$HIVE_HOME/conf下创建hive-site.xml,并输入增加以下配置:<?xml version="1.0" ?><?xml-stylesheet type="text/xsl" href="configuration.xsl" ?><configuration><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.exec.scratchdir</name><value>/tmp/hive</value></property><property><name>hive.server2.logging.operation.log.location</name><value>/tmp/hive/operation_logs</value><description>Top level directory where operation logs are stored if logging functionality is enabled</description></property><property><name>hive.exec.local.scratchdir</name><value>/tmp/hive</value><description>Local scratch space for Hive jobs</description></property><property><name>hive.downloaded.resources.dir</name><value>/tmp/hive/resources</value><description>Temporary local directory for added resources in the remote file system.</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>bigdata</value><description>password to use against metastore database</description></property><property><name>hive.server2.thrift.bind.host</name><value>0.0.0.0</value><description>Bind host on which to run the HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description></property><property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description></property><property><name>hive.server2.enable.doAs</name><value>false</value><description>Set true to use user who login hiveserver2 for executing hadoop job.Otherwise, use the user who run hiveserver2.</description></property></configuration>安装mysql,创建指定主机能访问的用于hive的的用户及密码,并授予所有权限,如果javax.jdo.option.ConnectionURL属性没有加createDatabaseIfNotExist=true,那么需要手动创建用于hive的数据库拷贝mysql驱动JAR包到$HIVE_HOME/lib目录下:cp mysql-connector-java-5.1.39-bin.jar $HIVE_HOME/lib/执行schematool -initSchema -dbType mysql下载hive-jdbc-2.1.0-standalone.jar并放入$HIVE_HOME/lib下。

HIVE安装使用说明

HIVE安装使用说明

HIVE安装使用说明一、Hive简介1.1.H ive是什么Hadoop作为分布式运算的基础架构设施,统计分析需要采用MapReduce编写程序后,放到Hadoop集群中进行统计分析计算,使用起来较为不便,Hive产品采用类似SQL的语句快速实现简单的MapReduce统计,很大程度降低了Hadoop的学习使用成本。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供基础的SQL查询功能,可以将SQL 语句转换为MapReduce任务运行,而不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

1.2.部署架构Hive中的Driver为核心驱动部分,包括SQL语句的解释、编译为MapReduce任务,并进行优化、执行。

Hive用户访问包括4种运行和访问方式,一是CLI客户端;二是HiveServer2和Beeline方式;三是HCatalog/WebHCat方式;四是HWI 方式。

其中CLI、Beeline均为控制台命令行操作模式,区别在于CLI只能操作本地Hive服务,而Beeline可以通过JDBC连接远程服务。

HiveServer2为采用Thrift提供的远程调用接口,并提供标准的JDBC 连接访问方式。

HCatalog是Hadoop的元数据和数据表的管理系统,WebHCat则提供一条Restful的HCatalog远程访问接口,HCatalog的使用目前资料很少,尚未充分了解。

HWI是Hive Web Interface的简称,可以理解为CLI的WEB访问方式,因当前安装介质中未找到HWI对应的WAR文件,未能进行使用学习。

Hive在运行过程中,还需要提供MetaStore提供对元数据(包括表结构、表与数据文件的关系等)的保存,Hive提供三种形式的MetaStore:一是内嵌Derby方式,该方式一般用演示环境的搭建;二是采用第三方数据库进行保存,例如常用的MySQL等;三是远程接口方式,及由Hive自身提供远程服务,供其他Hive应用使用。

Hive编程环境的设置与配置

Hive编程环境的设置与配置

Hive编程环境的设置与配置Hive是一个基于Hadoop的数据仓库工具,它提供了类SQL语言的查询和分析功能,可用于处理大规模的结构化和半结构化数据。

为了开始使用Hive,我们需要先进行编程环境的设置与配置。

本文将引导您完成Hive编程环境的安装、配置和基本使用。

1. 安装Hive首先,我们需要在计算机上安装Hive。

Hive可以使用Apache官方提供的二进制文件进行安装,同时也可以通过包管理工具进行安装,例如使用apt-get命令在Ubuntu上安装。

确保安装的Hive版本与Hadoop集群中的版本兼容。

2. 配置Hadoop由于Hive是基于Hadoop的,我们需要先配置Hadoop的环境变量。

编辑hadoop-env.sh文件并将Hadoop的安装路径添加到HADOOP_HOME变量中。

确保Hadoop的配置文件hadoop-site.xml也已正确配置。

3. 配置Hive接下来,我们需要对Hive进行一些配置。

在Hive的安装目录中,有一个名为hive-default.xml的样例配置文件。

我们可以将其复制为hive-site.xml,然后在该文件中进行相关配置。

首先,我们需要配置Hive的元数据库(metastore)。

元数据库用于存储Hive 的元数据,包括表结构、分区和分隔符等信息。

您可以选择使用内置的Derby数据库或外部的MySQL数据库作为元数据库。

如需使用MySQL,您需要先安装MySQL并创建一个新的数据库。

在hive-site.xml文件中,找到名为javax.jdo.option.ConnectionURL的属性,并将其值设置为MySQL数据库的连接字符串。

同时,修改javax.jdo.option.ConnectionDriverName属性为com.mysql.jdbc.Driver,javax.jdo.option.ConnectionUserName属性为登录MySQL所使用的用户名,javax.jdo.option.ConnectionPassword属性为该用户名对应的密码。

第10课-Hive安装部署实验

第10课-Hive安装部署实验

Hive安装部署实验【实验名称】Hive 安装部署实验【实验目的】1.理解Hive存在的原因;2.理解Hive的工作原理;3.理解Hive的体系架构;4.学会如何进行内嵌模式部署;5.启动Hive,然后将元数据存储在HDFS上【实验要求】1.完成Hive的内嵌模式部署;2.完成mysql安装;3.能够将Hive数据存储在HDFS上;4.Hive环境搭建好后,能够启动并执行一般命令【实验环境】在第2课hadoop集群的基础上在hadoop1主节点上安装部署Hive【实验步骤】注:安装所需要的软件都在/opt/hadoop-package目录下安装前需要先安装hadoop 和mysql 参考之前对应的安装文档1.安装Mysql1.1首先进入软件包目录[root@hadoop1 ~]# cd /opt/hadoop-package/1.2解压缩mysql到/usr/local目录[root@hadoop1 haoodp-install]# tar -zxvfmysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/1.3进入到/usr/local目录并重命名[root@hadoop1 haoodp-install]# cd /usr/local/[root@hadoop1 local]# mv mysql-5.6.40-linux-glibc2.12-x86_64 mysql1.4添加组用户[root@hadoop1 local]# groupadd mysql添加用户mysql 到用户组mysql[root@hadoop1 local]# useradd -g mysql mysql1.5安装mysql1.5.1进入到安装包目录[root@hadoop1 local]# cd /usr/local/mysql1.5.2创建data目录下mysql文件夹[root@hadoop1 mysql]# mkdir ./data/mysql1.5.3授权并执行脚本[root@hadoop1 mysql]# chown -R mysql:mysql ././scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql 1.5.4复制mysql服务文件到/etc/init.d目录下并重命名[root@hadoop1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld1.5.5修改服务文件权限[root@hadoop1 mysql]# chmod 777 /etc/init.d/mysqld1.5.6复制mysql的配置文件并重命名[root@hadoop1 mysql]# cp support-files/f /etc/f 1.5.7修改mysql启动脚本[root@hadoop1 mysql]# vi /etc/init.d/mysqld修改下面内容basedir=/usr/local/mysql/datadir=/usr/local/mysql/data/mysql修改后如下:1.5.8配置环境变量加入mysql的安装路径[root@hadoop1 conf]# vi /etc/profile在文件的最底部加入下面内容export PATH=$PATH:/usr/local/mysql/bin修改后如下:退出后执行source /etc/profile命令更新环境变量[root@hadoop1 conf]# source /etc/profile1.5.10给mysql添加远程登录[root@hadoop1 mysql]# vi /etc/f在[mysqld]下面加skip-name-resolve修改后如下:1.5.11初始化mysql[root@hadoop1 mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql1.5.12启动mysql服务[root@hadoop1 mysql]# service mysqld start 查看mysql服务状态[root@hadoop1 ~]# service mysqld status1.5.13登录mysql[root@hadoop1 ~]# mysql -u root -p第一次登录不需要密码,直接回车1.5.14设置本机mysql用户名和密码mysql> use mysql;mysql> update user set password =password('root') where user ='root';1.5.15添加远程登录用户mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;mysql>FLUSH PRIVILEGES;1.5.14创建hive数据库,来存储hive元数据信息mysql>create database hive;可以直接Ctrl+c 退出mysql2.安装Hive2.1首先进入软件包目录[root@hadoop ~]# cd /opt/hadoop-package/2.2解压安装压缩包将hive安装包(apache-hive-2.3.3-bin.tar.gz)解压缩到/opt 目录下[root@hadoop hadoop-package]# t ar -zxvf apache-hive-2.3.3-bin.tar.gz -C /opt2.3进入到/opt目录[root@hadoop ~]# cd /opt2.4将解压的安装包重命名[root@hadoop opt]# mv apache-hive-2.3.3-bin hive2.5配置环境变量加入hive的安装路径[root@hadoop conf]# vi /etc/profile在文件的最底部加入下面内容export HIVE_HOME=/opt/hiveexport PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH配置如图:退出后执行source /etc/profile命令更新环境变量[root@hadoop conf]# source /etc/profile2.6.配置hive2.6.1 进入到hive的配置文件目录[root@hadoop opt]# cd /opt/hive/conf/2.6.2 复制hive-env.sh.template 一份并重命名为hive-env.sh [root@hadoop conf]# cp hive-env.sh.template hive-env.sh修改hive-env.sh,设置加入HADOOP_HOME=/opt/hadoop-3.1.0 [root@hadoop conf]# vi hive-env.sh修改后如下:2.6.3 新建hive-site.xml[root@hadoop conf]# vi hive-site.xml需要在hive-site.xml 文件中配置MySQL 数据库连接信息复制下面内容到新建文件中<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=tru e&amp;characterEncoding=UTF-8&amp;useSSL=false</value></property><property><name>javax.jdo.option.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</name><value>root</value></property></configuration>配置如下:2.6.4 配置mysql的驱动将mysql驱动放到hive安装路径的lib目录下[root@hadoop1 conf]# cp /opt/hadoop-package/mysql-connector-java-5.1.32.jar /opt/hive/lib/2.6.5 hive在启动前到进行元数据初始化[root@hadoop1 conf]# schematool -dbType mysql -initSchema看到schemaTool completed 则初始化完成检测hive 是否成功直接在命令行输入hive即可hive (需要hadoop安装并启动)启动成功如下:至此,本节实验结束!。

Hive安装

Hive安装

1.将Hive安装包上传到/opt目录下2.将/opt目录下的安装包解压到/usr/local目录下,解压命令如下3.进入到Hive安装包的conf目录下,执行以下命令在文件hive-env.sh末尾添加Hadoop安装包的路径,添加内容如下所示.4.登录MySQL,创建hive数据库1)若还没有安装MySQL,则需要先安装MySQL,执行以下命令。

a)搜索mysql安装包,找到mysql-server.x86_64b)安装mysql-server.x86_64c)开启远程权限i.启动mysql服务ii.启动mysql:直接在终端输入“mysql”iii.执行以下命令:delete from user where 1=1;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'WITH GRANT OPTION;FLUSH PRIVILEGES;2)若已安装MySQL,则进入到mysql命令行,创建hive数据库(数据库名称为hive)。

Create database hive;创建完成后推出mysqlExit5.将hive-site.xml文件上传到Hive安装包的conf目录下。

6.上传mysql驱动mysql-connector-java-5.1.25-bin.jar到Hive安装包lib目录。

7.在终端执行以下命令mv/usr/local/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar/usr/local/hadoop-2.6.4/ share/hadoop/yarn/lib/jline-0.9.94.jar.bakcp /usr/local/apache-hive-1.2.1-bin/lib/ /jline-2.12.jar/usr/local/hadoop-2.6.4/share/hadoop/yarn/lib/8.启动hive,执行以下命令。

Hive的三种安装方式(内嵌模式,本地模式远程模式)

Hive的三种安装方式(内嵌模式,本地模式远程模式)

Hive的三种安装⽅式(内嵌模式,本地模式远程模式)⼀、安装模式介绍:Hive官⽹上介绍了Hive的3种安装⽅式,分别对应不同的应⽤场景。

1、内嵌模式(元数据保村在内嵌的derby种,允许⼀个会话链接,尝试多个会话链接时会报错)2、本地模式(本地安装mysql 替代derby存储元数据)3、远程模式(远程安装mysql 替代derby存储元数据)⼆、安装环境以及前提说明:⾸先,Hive是依赖于hadoop系统的,因此在运⾏Hive之前需要保证已经搭建好hadoop集群环境。

本⽂中使⽤的hadoop版本为2.5.1,Hive版本为1.2.1版。

OS:Linux Centos 6.5 64位jdk:java version "1.7.0_79"假设已经下载了Hive的安装包,且安装到了/home/install/hive-1.2.1在~/.bash_profile中设定HIVE_HOME环境变量:export HIVE_HOME=/home/install/hive-1.2.1三、内嵌模式安装:这种安装模式的元数据是内嵌在Derby数据库中的,只能允许⼀个会话连接,数据会存放到HDFS上。

1、切换到HIVE_HOME/conf⽬录下,执⾏下⾯的命令:cp hive-env.sh.template hive-env.shvim hive-env.sh在hive-env.sh中添加以下内容:HADOOP_HOME=/home/install/hadoop-2.5.12、启动hive,由于已经将HIVE_HOME加⼊到了环境变量中,所以这⾥直接在命令⾏敲hive即可:然后我们看到在hadoop的HDFS上已经创建了对应的⽬录。

注意,只要上⾯2步即可完成内嵌模式的安装和启动,不要画蛇添⾜。

⽐如下⾯================================【下⾯这段就不要看了】==============================================(作废)2、提供⼀个hive的基础配置⽂件,执⾏如下代码,就是将conf⽬录下⾃带的⽂件修改为配置⽂件:cp hive-default.xml.template hive-site.xml(作废)3、启动hive,由于已经将HIVE_HOME加⼊到了环境变量中,所以这⾥直接在命令⾏敲hive即可:(作废)结果报错了,看错误⽇志中提到system:java.io.tmpdir,这个配置项在hive-site.xml中有提到。

hive安装配置与调试

hive安装配置与调试

Hive的安装与调试目录一.hive的安装与配置 (2)1.下载hive的稳定版本 (2)2.解压缩到/usr/local的目录下 (2)3.配置环境变量 (2)4.运行hive (3)二.配置mysql-server作为hive的metastore (4)1.下载mysql-server (4)2.创建hadoop用户 (4)3.为hive创建数据库 (4)4.配置hive/conf中的hive-site.xml (4)5.把MySQL的JDBC驱动包复制到Hive的lib目录下。

(5)6.启动Hive shell,执行 (5)7.在hive下创建表 (5)8.登录mysql-server查看刚刚建立的表weather (6)三.hive源代码的编译 (8)1.安装SVN (8)2.选择源代码存放目录 (8)3.下载源代码 (8)4.使用ant编译源代码 (8)5.导入eclipse工程 (8)6.添加hive的配置文件 (9)7.调试hive (9)一.hive的安装与配置1.下载hive的稳定版本/hive/hive-0.8.0/2.解压缩到/usr/local的目录下$tar -xzf /usr/local/hive-0.8.0.tar /usr/local/hive 解压缩完成后,/usr/local/hive应该有如图1所示文件图13.配置环境变量打开/etc/profile文件,$sudo gedit /etc/profile在path里面添加:/usr/local/hive/bin:如图2所示:图24.运行hive打开hadoop $start-all.sh打开hive $hive测试一下$show tables;如果出现上面的画面,说明hive安装成功。

二.配置mysql-server作为hive的metastore1.下载mysql-server$ sudo apt-get install mysql-server2.创建had oop用户$ mysql$ CREATE USER 'hadoop'@'localhost' IDENTIFIED BY 'hadoop';$ GRANT ALL PRIVILEGES ON * .* TO 'hadoop'@'localhost' WITH GRANT OPTION;3.为hive创建数据库$create database hive;4.配置hive/conf中的hive-site.xml默认的没有这个文件,我们复制hive-default.xml.template,然后改名为hive-site.xml.把其中的配置信息替换成下面这些,<property><name>hive.metastore.local</name><value>true</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hadoop</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hadoop</value></property>5.把MySQL的JDBC驱动包复制到Hive的lib目录下。

大数据仓库,Hive的安装详细步骤

大数据仓库,Hive的安装详细步骤

⼤数据仓库,Hive的安装详细步骤⼤数据数据仓库,⼀般来说底层都是建设在hive当中,利⽤hadoop的hdfs分布式⽂件系统,可以替代传统的mysql和oracle等数据库,进⽽来存储上百TB、PB等级别的⼤数据集。

如果公司业务中,每天数据增长多,也可以使⽤hive存储数据。

跟传统的关系型数据库不同,hive数据存储在hdfs上,底层使⽤mapreduce计算数据,主要做⼤数据的分析使⽤。

在hadoop集群上安装hive⼀,先在linux上安装mysql,存储hive元数据信息。

1、通过下⾯的命令,获取mysql 源安装包,直接复制,浏览器打开下载即可https:///get/mysql57-community-release-el7-11.noarch.rpm2、在Linux上安装刚下载的 mysql 源rpm -ivh mysql57-community-release-el7-11.noarch.rpm3、使⽤命令,检查mysql源是否安装成功yum repolist enabled | grep "mysql.*-community.*"4、使⽤ yum 命令安装mysqlyum install mysql-community-server5、配置mysql的⽂件⽬录信息使⽤下⾯的命令,查看mysql配置⽂件加载顺序:mysqld --help --verbose|grep -A1 -B1 cnf修改根⽬录 /etc/f 配置⽂件内的⽂件⽬录datadir=/data/mysql/datasql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONlog-error=/data/mysql/log/mysqld.log注意:SQL_MODE:通过对其正确的设置可以完成⼀些约束检查的⼯作,设置时,在配置⽂件f 中配置进⾏全局的设置。

hive的安装与基础编程实验总结

hive的安装与基础编程实验总结

Hive是一个基于Hadoop的数据仓库工具,它提供了类似于SQL的数据查询语言,使用户能够方便地在Hadoop集裙上进行数据分析。

在本文中,我们将介绍如何安装Hive,并进行一些基础的编程实验。

二、Hive的安装1. 确保环境在安装Hive之前,我们需要确保已经安装了Hadoop,并且Hadoop集裙处于正常运行状态。

另外,还需要安装Java环境,并且配置好JAVA_HOME环境变量。

2. 下载Hive前往冠方全球信息站下载最新版本的Hive压缩包,解压到指定目录。

3. 配置Hive在Hive安装目录下,修改conf目录中的hive-site.xml文件,配置Hive与Hadoop的连接信息,包括Hadoop的文件系统类型、Hadoop的主机名和端口等信息。

4. 启动Hive在终端中输入hive命令,启动Hive。

三、基础编程实验在Hive中,我们可以使用类似于SQL的语法来创建表。

下面是一个简单的例子:```CREATE TABLE employee (id INT,name STRING,age INT,department STRING);```2. 加载数据我们可以使用LOAD DATA语句来加载数据到Hive表中。

假设我们有一个名为employee.csv的文件,包含了员工的信息,我们可以使用以下命令将数据加载到employee表中:```LOAD DATA LOCAL INPATH '/path/to/employee.csv' INTO TABLE employee;```3. 查询数据一旦数据被加载到表中,我们就可以使用类似于SQL的语法来查询数据。

我们可以使用以下命令来查询芳龄大于30岁的员工:```SELECT * FROM employee WHERE age > 30;```4. 数据分析除了基本的查询操作,Hive还提供了丰富的数据分析功能,可以进行统计、分组、排序、连接等操作。

hive安装配置实验实训报告

hive安装配置实验实训报告

hive安装配置实验实训报告一、实验目的本实验旨在通过实际操作,掌握Hive的安装与配置过程,了解Hive的基本功能和使用方法,为后续的大数据处理和分析奠定基础。

二、实验环境1.硬件环境:高性能计算机,至少4核CPU、8GB内存、50GB 硬盘。

2.软件环境:Ubuntu 18.04操作系统,Java Development Kit (JDK) 1.8,Apache Hadoop 2.7.3。

三、实验步骤1.安装与配置Hadoop:首先,在实验环境中安装Hadoop,并配置Hadoop集群。

确保NameNode、SecondaryNameNode、DataNode等节点正常运行。

2.安装Hive:使用apt-get命令安装Hive。

在安装过程中,选择与Hadoop版本兼容的Hive版本。

3.配置Hive:编辑Hive的配置文件hive-site.xml,配置Hive连接到Hadoop集群的相关参数。

4.初始化Hive元数据:运行Hive的元数据初始化脚本,创建Hive元数据库。

5.启动Hive服务:使用以下命令启动Hive的元数据库、Metastore和HiveServer2等服务。

1.元数据库:hive --service metastore &2.Metastore:hive --service metastore &3.HiveServer2:hive --service hiveserver2 &6.测试Hive:使用Hive的命令行工具进入Hive交互式查询环境,执行简单的SQL查询语句,测试Hive是否安装成功。

四、实验结果与分析经过上述步骤,我们成功在实验环境中安装和配置了Hive。

通过执行简单的SQL查询语句,验证了Hive的基本功能。

具体而言,我们执行了以下查询语句:1.创建数据库:CREATE DATABASE mydatabase;2.选择数据库:USE mydatabase;3.创建表:CREATE TABLE mytable (id INT, name STRING);4.插入数据:INSERT INTO TABLE mytable VALUES (1, 'Alice'), (2, 'Bob');5.查询数据:SELECT * FROM mytable;6.删除表:DROP TABLE mytable;7.删除数据库:DROP DATABASE mydatabase;通过这些查询语句的执行,我们验证了Hive的基本功能,包括数据库管理、表创建、数据插入、数据查询、表删除和数据库删除等。

Hive在云环境中的部署与最佳实践

Hive在云环境中的部署与最佳实践

Hive在云环境中的部署与最佳实践在云计算环境中,Hive是一种开源的数据仓库工具,广泛用于大数据分析和查询。

本文将介绍如何在云环境中部署Hive并提供一些最佳实践。

一、部署Hive在云环境中部署Hive需要以下步骤:1.选择适当的云提供商:根据实际需求选择一个适合的云提供商,如Amazon Web Services(AWS)、Microsoft Azure或Google Cloud Platform(GCP)等。

这些云提供商都提供了Hadoop和Hive的托管服务,可以轻松地进行部署。

2.创建虚拟机实例:在选择的云平台上创建一个虚拟机实例,确保实例的配置满足Hive运行的要求。

通常来说,建议选择具有足够内存和存储容量的实例类型。

3.安装Hadoop和Hive:在虚拟机实例上安装Hadoop和Hive。

可以通过使用云提供商的托管服务或手动安装这些组件。

确保按照Hadoop和Hive的官方文档进行正确的安装和配置。

4.配置Hive:安装完Hadoop和Hive后,需要根据实际需求进行配置。

主要包括设置Hadoop和Hive的环境变量、配置Hive的元数据存储和指定Hive使用的文件系统等。

5.启动Hive服务:配置完成后,启动Hive服务。

可以使用命令行工具或Web界面来访问Hive并执行查询操作。

二、最佳实践以下是一些在云环境中部署Hive时的最佳实践:1.应用资源的弹性伸缩:云提供商的弹性伸缩功能可根据需求自动调整云资源的数量和规模。

在Hive集群中,可以根据查询的负载自动增加或减少节点数量,以充分利用资源并提高性能。

2.数据备份与恢复:云环境中的Hive数据可以进行定期备份,以防止数据丢失。

云提供商通常提供了可靠的数据备份和恢复机制,可根据需要进行数据的备份和还原操作。

3.安全性管理:在云环境中部署Hive时,安全性是一个重要的考虑因素。

确保实施适当的访问控制策略和权限管理措施,以保护数据的机密性和完整性。

Hive搭建步骤及其测试

Hive搭建步骤及其测试

Hive搭建步骤及其测试HiveHive的安装和使⽤我们的版本约定:JAVA_HOME=/usr/local/soft/jdk1.8.0_171HADOOP_HOME=/usr/local/soft/hadoop-2.7.6HIVE_HOME=/usr/local/soft/hive-1.2.1⼀、安装前提是:mysql和hadoop必须已经成功启动了准备⼯作在MySQL中创建Hive元数据库(库名为hive)create database hive character set "latin1";退出MySQLexit;上传安装包将安装包上传到Xftp中 /usr/local/soft/packages ⽬录中apache-hive-1.2.1-bin.tar.gzmysql-connector-java-5.1.49.jar1、解压hivetar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/soft/解压后⽣成的⽬录名称太长了修改⼀下⽬录名称:mv apache-hive-1.2.1-bin hive-1.2.12vim /etc/profile加上HIVE_HOME=/usr/local/soft/hive-1.2.1重新加载环境变量source /etc/profile3(1)进⼊hive-1.2.1/conf⽬录,复制备份⽂件并重命名复制备份重⽤名cp hive-env.sh.template hive-env.shcp hive-default.xml.template hive-site.xml(2)修改hive-env.shvim hive-env.sh最下⾯加⼊三⾏内容(⼤家根据⾃⼰的实际⽬录来添加)HADOOP_HOME=/usr/local/soft/hadoop-2.7.6JAVA_HOME=/usr/local/soft/jdk1.8.0_171HIVE_HOME=/usr/local/soft/hive-1.2.1(3)修改hive-site.xml<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/hive?useSSL=false</value></property><property><name>javax.jdo.option.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</name><value>123456</value></property><property><name>hive.querylog.location</name><value>/usr/local/soft/hive-1.2.1/tmp</value></property><property><name>hive.exec.local.scratchdir</name><value>/usr/local/soft/hive-1.2.1/tmp</value></property><property><name>hive.downloaded.resources.dir</name><value>/usr/local/soft/hive-1.2.1/tmp</value></property>4、拷贝mysql驱动到/libcp /usr/local/soft/packages/mysql-connector-java-5.1.49.jar /usr/local/soft/hive-1.2.1/lib5、将hive的jline-2.12.jar拷贝到hadoophive的 jline-2.12.jar 位置在:/usr/local/soft/hive-1.2.1/lib/jline-2.12.jar将hive的jar拷过去hadoop下:cp /usr/local/soft/hive-1.2.1/lib/jline-2.12.jar /usr/local/soft/hadoop-2.7.6/share/hadoop/yarn/lib/6、启动hivehive7、修改mysql元数据库hive,让其hive⽀持utf-8(1)登录mysqlmysql -u root -p123456(2)切换到hive数据库use hive;(3)修改字段注释字符集alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;(4)修改表注释字符集alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8; (5)修改分区表参数,以⽀持分区键能够⽤中⽂表⽰alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8; alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;(6)修改索引注解(可选)alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;⼆、测试1、启动hive2、在hive中创建test1create database test1;3、切换test1use test1;4、创建studentscreate table students(id bigint comment '学⽣id',name string comment '学⽣姓名',age int comment '学⽣年龄',gender string comment '学⽣性别',clazz string comment '学⽣班级') comment '学⽣信息表'ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';5、创建scorecreate table score(id bigint comment '学⽣id',score_id bigint comment '科⽬id',score int comment '学⽣成绩') comment '学⽣成绩表'ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';6desc students;desc score;。

Hive安装配置详解步骤以及hive使用mysql配置

Hive安装配置详解步骤以及hive使用mysql配置

Hive安装配置详解步骤以及hive使⽤mysql配置 Hive是⼀个数据仓库基础⼯具在Hadoop中⽤来处理结构化数据。

它架构在之上,总归为⼤数据,并使得查询和分析⽅便。

并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进⾏运⾏。

环境介绍:hadoop:3.2.0jdk:1.8Linux:centos7mysql:5.61.mysql安装配置wget /mysql-community-release-el7-5.noarch.rpmrpm -ivh mysql-community-release-el7-5.noarch.rpm执⾏yum install -y mysql -serverSystemctl start mysql完成2.配置创建hive需要的数据库以及账户create database hive;create user 'hadoop1'@'localhost' identified by '12345678';grant all privileges on *.* to 'hadoop1'@'localhost' with grant option;3.下载hivewget /apache/hive/hive-3.1.1/apache-hive-3.1.1-bin.tar.gztar xzvf apache-hive-3.1.1-bin.tar.gzcd hive-3.1.14.配置hive以及hadoop的变量记得source 让bianl⽣效。

vim /etc/profileexport HIVE_HOME=/home/apache-hive-3.1.1-binexport HADDOP_HOME=/home//home/hadoop-3.2.0export PATH=.:${JAVA_HOME}/bin/:$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH5.编辑hive-site.xml 和hive-env.sh⽂件此⽂件是通过hive-default.xml.template 复制出来的,需要删除原⽂件所有内容后新增如下配置,因为hive在启动的时候会加载两个⽂件,default.xml和Hive-site.xml,所以如果直接新增⼀下内容是⽆效的。

Hive安装部署(三种访问Hive的方式)

Hive安装部署(三种访问Hive的方式)

Hive安装部署(三种访问Hive的⽅式)Hive 安装(第⼀种)1. Hive2. 安装部署上传、解压、改名到opt/module/hive添加环境变量vim /etc/profile.d/my_env.sh添加内容#HIVE_HOMEexport HIVE_HOME=/opt/module/hiveexport PATH=$PATH:$HIVE_HOME/bin⽇志jar会冲突,修改或删掉mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak初始化数据库bin/schematool -dbType derby -initSchema3. 启动并使⽤启动Hive bin/hive使⽤hivehive> show databases;hive> show tables;hive> create table test(id int);hive> insert into test values(1);hive> select * from test;开启另⼀个窗⼝开启 Hive,在/tmp/atguigu ⽬录下监控 hive.log ⽂件Hive 默认使⽤的元数据库为 derby,开启 Hive 之后就会占⽤元数据库,且不与其他客户端共享数据,所以我们需要将 Hive 的元数据地址改为 MySQL。

mysql安装(第⼆种)1. 检查是否安装过 MySQL 装过卸载rpm -qa|grep mariadbrpm -e --nodeps mariadb-libs2. 将 MySQL 安装包拷贝、解压到mysql3. tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar4. 在安装⽬录下执⾏rpm安装rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpmrpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm注:如果缺少依赖安装依赖,yum install -y libaio5. 删除/etc/f ⽂件中 datadir 指向的⽬录下的所有内容,如果有内容的情况下[mysqld]datadir=/var/lib/mysql6. 初始化数据库mysqld --initialize --user=mysql7. ⽣成临时密码在控制台最后⼀⾏8. 启动mysql服务start mysqld9. 登录 MySQL 数据库mysql -uroot -p临时密码10. 修改root⽤户的密码否则执⾏其他操作会报错set password = password("新密码");11. 修改 mysql 库下的 user 表中的 root ⽤户允许任意 ip 连接mysql> update er set host='%' where user='root';mysql> flush privileges;Hive 元数据配置到 MySQL1. 拷贝驱动将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib ⽬录下cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib2. 配置 Metastore 到 MySQL 在$HIVE_HOME/conf ⽬录下新建 hive-site.xml ⽂件添加如下<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- jdbc 连接的 URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value></property><!-- jdbc 连接的 Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- jdbc 连接的 username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc 连接的 password --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- Hive 元数据存储版本的验证 --><property><name>hive.metastore.schema.verification</name><value>false</value></property><!--元数据存储授权--><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><!-- Hive 默认在 HDFS 的⼯作⽬录 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property></configuration>3. 登录mysql mysql -uroot -p1234564. 新建Hive元数据库create database metastore;quit;5. 初始化数据库schematool -initSchema -dbType mysql -verbose6. 启动 hive bin\hive7. 使⽤hive SQL语法8. (可选在另⼀个窗⼝打开Hive访问数据进⾏验证)使⽤元数据服务的⽅式访问Hive1. 在hive-site.xml中添加<!-- 指定存储元数据要连接的地址 --><property><name>hive.metastore.uris</name><value>thrift://hadoop102:9083</value></property>2. 启动 metastore hive --service metastore注意: 启动后窗⼝不能再操作,需打开⼀个新的 shell 窗⼝做别的操作3. 启动 Hive bin\hive使⽤JDBC⽅式访问Hive (第三种)1. 在hive-site.xml ⽂件添加如下<!-- 指定 hiveserver2 连接的 host --><property><name>hive.server2.thrift.bind.host</name><value>hadoop102</value></property><!-- 指定 hiveserver2 连接的端⼝号 --><property><name>hive.server2.thrift.port</name><value>10000</value></property>2. 启动 hiveserver2 bin/hive --service hiveserver23. 启动 beeline 客户端(多等⼀会⼉) bin/beeline -u jdbc:hive2://hadoop102:10000 -n root4. 检查显⽰是否报错5. 编写 hive 服务启动脚本编写脚本管理服务的启动和关闭#!/bin/bashHIVE_LOG_DIR=$HIVE_HOME/logsif [ ! -d $HIVE_LOG_DIR ]thenmkdir -p $HIVE_LOG_DIRfi#检查进程是否运⾏正常,参数 1 为进程名,参数 2 为进程端⼝function check_process(){pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print$2}')ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)echo $pid[[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1}function hive_start(){metapid=$(check_process HiveMetastore 9083)cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"[ -z "$metapid" ] && eval $cmd || echo "Metastroe 服务已启动"server2pid=$(check_process HiveServer2 10000)cmd="nohup hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"[ -z "$server2pid" ] && eval $cmd || echo "HiveServer2 服务已启动"}function hive_stop(){metapid=$(check_process HiveMetastore 9083)[ "$metapid" ] && kill $metapid || echo "Metastore 服务未启动"server2pid=$(check_process HiveServer2 10000)[ "$server2pid" ] && kill $server2pid || echo "HiveServer2 服务未启动"}case $1 in"start")hive_start;;"stop")hive_stop;;"restart")hive_stopsleep 2hive_start;;"status")check_process HiveMetastore 9083 >/dev/null && echo "Metastore 服务运⾏正常" || echo "Metastore 服务运⾏异常"check_process HiveServer2 10000 >/dev/null && echo "HiveServer2 服务运⾏正常" || echo "HiveServer2 服务运⾏异常" ;;*)echo Invalid Args!echo 'Usage: '$(basename $0)' start|stop|restart|status';;esac6. 赋予执⾏权限chmod +x $HIVE_HOME/bin/hiveservices.sh7. hiveservices.sh start个⼈理解:Hive 第⼀种⽅式使⽤元数据库为derby 不⽀持多端同时访问适合个⼈测试HiveHive 第⼆种⽅式使⽤mysql作为元数据库⽀持多端访问但跨ip访问较难(请斟酌)Hive 第三种⽅式使⽤JDBC的⽅式访问较为全备,各⽅⾯都好启动较为⿇烦。

Hive安装配置指北(含HiveMetastore详解)

Hive安装配置指北(含HiveMetastore详解)

Hive安装配置指北(含HiveMetastore详解)本⽂介绍Hive安装配置的整个过程,包括MySQL、Hive及Metastore的安装配置,并分析了Metastore三种配置⽅式的区别。

⽹上有很多介绍Hive Metastore三种配置⽅式的⽂章,但是理解都不对,给读者造成了很多误导。

本⼈详细阅读Apache和CDH官⽅⽂档中关于Hive Metastore的部分,并经过实践,终于填好各种坑,安装配置成功,遂记录下本⽂,供⼤家参考。

1. 相关概念Hive Metastore有三种配置⽅式,分别是:1. Embedded Metastore Database (Derby) 内嵌模式2. Local Metastore Server 本地元存储3. Remote Metastore Server 远程元存储1.1 Metadata、Metastore作⽤metadata即元数据。

元数据包含⽤Hive创建的database、tabel等的元信息。

元数据存储在关系型数据库中。

如Derby、MySQL等。

Metastore的作⽤是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。

有了metastore服务,就可以有多个客户端同时连接,⽽且这些客户端不需要知道MySQL数据库的⽤户名和密码,只需要连接metastore 服务即可。

1.2三种配置⽅式区别内嵌模式使⽤的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。

这个是默认的,配置简单,但是⼀次只能⼀个客户端连接,适⽤于⽤来实验,不适⽤于⽣产环境。

本地元存储和远程元存储都采⽤外部数据库来存储元数据,⽬前⽀持的数据库有:MySQL、Postgres、Oracle、MS SQL Server.在这⾥我们使⽤MySQL。

本地元存储和远程元存储的区别是:本地元存储不需要单独起metastore服务,⽤的是跟hive在同⼀个进程⾥的metastore服务。

实验10-Hive实验:部署Hive

实验10-Hive实验:部署Hive

实验十Hive实验:部署Hive10.1 实验目的1. 理解Hive存在的原因;2. 理解Hive的工作原理;3. 理解Hive的体系架构;4. 并学会如何进行内嵌模式部署;5. 启动Hive,然后将元数据存储在HDFS上。

10.2 实验要求1. 完成Hive的内嵌模式部署;2. 能够将Hive数据存储在HDFS上;3. 待Hive环境搭建好后,能够启动并执行一般命令。

10.3 实验原理Hive是Hadoop 大数据生态圈中的数据仓库,其提供以表格的方式来组织与管理HDFS上的数据、以类SQL的方式来操作表格里的数据,Hive的设计目的是能够以类SQL的方式查询存放在HDFS上的大规模数据集,不必开发专门的MapReduce应用。

Hive本质上相当于一个MapReduce和HDFS的翻译终端,用户提交Hive脚本后,Hive运行时环境会将这些脚本翻译成MapReduce和HDFS操作并向集群提交这些操作。

当用户向Hive提交其编写的HiveQL后,首先,Hive运行时环境会将这些脚本翻译成MapReduce和HDFS操作,紧接着,Hive运行时环境使用Hadoop命令行接口向Hadoop集群提交这些MapReduce和HDFS操作,最后,Hadoop集群逐步执行这些MapReduce和HDFS操作,整个过程可概括如下:(1)用户编写HiveQL并向Hive运行时环境提交该HiveQL。

(2)Hive运行时环境将该HiveQL翻译成MapReduce和HDFS操作。

(3)Hive运行时环境调用Hadoop命令行接口或程序接口,向Hadoop集群提交翻译后的HiveQL。

(4)Hadoop集群执行HiveQL翻译后的MapReduce-APP或HDFS-APP。

由上述执行过程可知,Hive的核心是其运行时环境,该环境能够将类SQL语句编译成MapReduce。

Hive构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作68业提交和调度的时候需要大量的开销。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hive安装部署实验【实验名称】Hive 安装部署实验【实验目的】1.理解Hive存在的原因;2.理解Hive的工作原理;3.理解Hive的体系架构;4.学会如何进行内嵌模式部署;5.启动Hive,然后将元数据存储在HDFS上【实验要求】1.完成Hive的内嵌模式部署;2.完成mysql安装;3.能够将Hive数据存储在HDFS上;4.Hive环境搭建好后,能够启动并执行一般命令【实验环境】在第2课hadoop集群的基础上在hadoop1主节点上安装部署Hive【实验步骤】注:安装所需要的软件都在/opt/hadoop-package目录下安装前需要先安装hadoop 和mysql 参考之前对应的安装文档1.安装Mysql1.1首先进入软件包目录[root@hadoop1 ~]# cd /opt/hadoop-package/1.2解压缩mysql到/usr/local目录[root@hadoop1 haoodp-install]# tar -zxvfmysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/1.3进入到/usr/local目录并重命名[root@hadoop1 haoodp-install]# cd /usr/local/[root@hadoop1 local]# mv mysql-5.6.40-linux-glibc2.12-x86_64 mysql1.4添加组用户[root@hadoop1 local]# groupadd mysql添加用户mysql 到用户组mysql[root@hadoop1 local]# useradd -g mysql mysql1.5安装mysql1.5.1进入到安装包目录[root@hadoop1 local]# cd /usr/local/mysql1.5.2创建data目录下mysql文件夹[root@hadoop1 mysql]# mkdir ./data/mysql1.5.3授权并执行脚本[root@hadoop1 mysql]# chown -R mysql:mysql ././scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql 1.5.4复制mysql服务文件到/etc/init.d目录下并重命名[root@hadoop1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld1.5.5修改服务文件权限[root@hadoop1 mysql]# chmod 777 /etc/init.d/mysqld1.5.6复制mysql的配置文件并重命名[root@hadoop1 mysql]# cp support-files/f /etc/f 1.5.7修改mysql启动脚本[root@hadoop1 mysql]# vi /etc/init.d/mysqld修改下面内容basedir=/usr/local/mysql/datadir=/usr/local/mysql/data/mysql修改后如下:1.5.8配置环境变量加入mysql的安装路径[root@hadoop1 conf]# vi /etc/profile在文件的最底部加入下面内容export PATH=$PATH:/usr/local/mysql/bin修改后如下:退出后执行source /etc/profile命令更新环境变量[root@hadoop1 conf]# source /etc/profile1.5.10给mysql添加远程登录[root@hadoop1 mysql]# vi /etc/f在[mysqld]下面加skip-name-resolve修改后如下:1.5.11初始化mysql[root@hadoop1 mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql1.5.12启动mysql服务[root@hadoop1 mysql]# service mysqld start 查看mysql服务状态[root@hadoop1 ~]# service mysqld status1.5.13登录mysql[root@hadoop1 ~]# mysql -u root -p第一次登录不需要密码,直接回车1.5.14设置本机mysql用户名和密码mysql> use mysql;mysql> update user set password =password('root') where user ='root';1.5.15添加远程登录用户mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;mysql>FLUSH PRIVILEGES;1.5.14创建hive数据库,来存储hive元数据信息mysql>create database hive;可以直接Ctrl+c 退出mysql2.安装Hive2.1首先进入软件包目录[root@hadoop ~]# cd /opt/hadoop-package/2.2解压安装压缩包将hive安装包(apache-hive-2.3.3-bin.tar.gz)解压缩到/opt 目录下[root@hadoop hadoop-package]# t ar -zxvf apache-hive-2.3.3-bin.tar.gz -C /opt2.3进入到/opt目录[root@hadoop ~]# cd /opt2.4将解压的安装包重命名[root@hadoop opt]# mv apache-hive-2.3.3-bin hive2.5配置环境变量加入hive的安装路径[root@hadoop conf]# vi /etc/profile在文件的最底部加入下面内容export HIVE_HOME=/opt/hiveexport PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH配置如图:退出后执行source /etc/profile命令更新环境变量[root@hadoop conf]# source /etc/profile2.6.配置hive2.6.1 进入到hive的配置文件目录[root@hadoop opt]# cd /opt/hive/conf/2.6.2 复制hive-env.sh.template 一份并重命名为hive-env.sh [root@hadoop conf]# cp hive-env.sh.template hive-env.sh修改hive-env.sh,设置加入HADOOP_HOME=/opt/hadoop-3.1.0 [root@hadoop conf]# vi hive-env.sh修改后如下:2.6.3 新建hive-site.xml[root@hadoop conf]# vi hive-site.xml需要在hive-site.xml 文件中配置MySQL 数据库连接信息复制下面内容到新建文件中<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=tru e&amp;characterEncoding=UTF-8&amp;useSSL=false</value></property><property><name>javax.jdo.option.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</name><value>root</value></property></configuration>配置如下:2.6.4 配置mysql的驱动将mysql驱动放到hive安装路径的lib目录下[root@hadoop1 conf]# cp /opt/hadoop-package/mysql-connector-java-5.1.32.jar /opt/hive/lib/2.6.5 hive在启动前到进行元数据初始化[root@hadoop1 conf]# schematool -dbType mysql -initSchema看到schemaTool completed 则初始化完成检测hive 是否成功直接在命令行输入hive即可hive (需要hadoop安装并启动)启动成功如下:至此,本节实验结束!。

相关文档
最新文档