本篇内容分为三部分:元数据库mysql安装+hive安装+intellj idea开发使用hive)

1)元数据库mysql安装:


Step1:  采用apt-get安装mysql 


Step2:

 启动mysql服务 


Step3:

 进入mysql命令行 


Step4:

 创建一个database name为hive的数据库用于hive数据文件的存储 


Step5:

 给当前用户授权 


命令如下:

sudo apt-get install mysql-server //采用apt-get安装mysql,会提示你设置mysql的用户名和密码,我的设为用户名root,密码root

service mysql start //启动mysql服务

mysql -uroot -p //进入mysql命令行,输入之后会提示你输入密码,输入上述密码root

mysql> create user hive identified by 'hive'; //创建一个用户名为hive,密码为hive的数据库

mysql> create database hive; //创建一个叫做hive的数据库

mysql> grant all on hive.* to hive@'%' identified by 'hive'; //给hive用户授权

mysql> grant all on hive.* to hive@'localhost' identified by 'hive'; //给hive用户授权

mysql> flush privileges;

mysql> exit; //退出mysql

添加之后,可以查询用户,看到如下信息: 

hive 元数据刷新 SQL hive mysql元数据_hive安装

2) Hive 安装与配置

2.1hive的下载地址:

http://mirror.bit.edu.cn/apache/hive/hive-2.3.3/

下载bin版本

hive 元数据刷新 SQL hive mysql元数据_intellj idea hive_02

下载后将其解压,放在你想要的安装目录下。

2.2 将上述安装目录添加到环境变量中:vi /etc/profile

export HIVE_HOME=/home/jiaoshuhai/hive(安装目录)

export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH

2.3. 修改hive/conf下的hive-site.xml将hive-default.xml.template重命名为hive-default.xml;新建一个文件touch hive-site.xml,并在hive-site.xml中粘贴如下配置信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</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.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

修改hive-env.sh 

进入${HIVE_HOME}\conf\即/opt/Hadoop/apache-hive-2.1.1/conf目录下,使用vi hive-en.sh打开文件,在hive-env.sh中添加以下路径:

export JAVA_HOME=/opt/Java/jdk1.8    //Java路径
export HADOOP_HOME=/opt/Hadoop/hadoop-2.7.3   //Hadoop安装路径
export HIVE_HOME=/opt/Hadoop/hive-2.1.1    //Hive安装路径
export HIVE_CONF_DIR=/opt/Hadoop/hive-2.1.1/conf   //Hive配置文件路径

创建hdfs目录,用于配置hive-site.xml 
在根目下,执行以下命令:

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod -R 777 /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod -R 777 /user/hive/log

在apache-2.1.1安装目录下创建一个tmp文件夹,用于存储临时文件,命令如下:

cd /opt/Hadoop/apache-hive-2.1.1/
mkdir tmp

修改hive-site.xml 
将hive-site.xml文件中的以下几个配置项的值设置成上一步中创建的几个路径:

<property>
    <name>hive.exec.scratchdir</name>
    <value>/user/hive/tmp</value>
</property>
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/Hadoop/apache-hive-2.1.1/tmp</value>
</property>
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
</property>
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>/opt/Hadoop/apache-hive-2.1.1/tmp/${hive.session.id}_resources</value>
</property>
<property>
    <name>hive.querylog.location</name>
    <value>/user/hive/log</value>
</property>

更改{system:java.io.tmpdir} / {system:user.name}

在配置文件hive-site.xml中:
将{system:java.io.tmpdir} 改成 /opt/Hadoop/apache-hive-2.1.1/tmp/
将{system:user.name} 改成 {user.name}

配置jdbc驱动包

mysql的jdbc驱动包下载地址:https://dev.mysql.com/downloads/connector/j/ 
下载之后将文件夹解压,得到mysql-connector-java-5.1.42-bin.jar,将此jar包放在${HIVE_HOME}/lib目录,即/opt/Hadoop/apache-hive-2.1.1/lib下。

从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作。

schematool -dbType mysql -initSchema

看到schemaTool completed 则初始化完成 。 

可以使用schematool -dbType mysql -initInfo 查看数据库初始化信息。 

进入mysql中,查看hive中的表格信息,可看到如图内容:

mysql -uroot -p  //进入mysql命令行,输入之后会提示你输入密码,输入上述密码root
use hive;
show tables;

hive 元数据刷新 SQL hive mysql元数据_spark集群_03

 

检测hive 是否成功,直接在命令行输入hive即可:

hive

启动成功的提示如图: 


hive 元数据刷新 SQL hive mysql元数据_spark集群_04

 


在hive中创建一个表格

hive启动成功后,使用下面的语句验证是否hive可用:

create table testHive(
id int,
name string
);
show tables;

如下图: 

hive 元数据刷新 SQL hive mysql元数据_hive安装_05


3)intellj idea 中开发hive



3.1将hive-site放入到source文件下


hive 元数据刷新 SQL hive mysql元数据_hive 元数据刷新 SQL_06

3.2 添加jar包引用

jars为本地目录下的spark包

lib为本地目录下的hive包

hive 元数据刷新 SQL hive mysql元数据_元数据库mysql_07

3.3Vm设置

-Xms2g -Xmx2g -XX:MaxNewSize=2g -XX:MaxPermSize=2g

hive 元数据刷新 SQL hive mysql元数据_spark集群_08

3.4代码

object HiveTest {

  def main(args: Array[String]): Unit = {

    System.setProperty("spark.eventLog.enabled", "true");
    System.setProperty("spark.eventLog.dir", "hdfs://172.20.161.96:9000/history/");

    val conf = new SparkConf().setMaster("spark://172.20.161.96:7077").setAppName("201804151154")
    val sc = new SparkContext(conf)

    val hivetest = new HiveContext(sc)

    hivetest.sql("show databases").collect().foreach(println)
    hivetest.sql("use taxidata")
    hivetest.sql("select medallion from triprecord limit 100").collect().foreach(println)

    sc.stop()

  }

}