十一、CentOS7下Hive3.1安装与部署集成mysql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QQB67G8COM/article/details/86424152

开始前:
什么是Beeline?HiveServer2支持一个新的命令行Shell,称为Beeline,它是基于SQLLine CLI的JDBC客户端;在Hive0.14版本开始官方推荐Beeline来使用HiveServer2来替代HiveCLI,后续版本HiveCLI渐渐消失;Beeline支持嵌入模式(embedded mode)和远程模式(remote mode),嵌入模式运行嵌入式的HIVE(类似HiveCLI),远程模式通过Thrift连接到独立的HiveServer2进程上

一、安装Hive前的环境需求

1、Java 1.7
Note:注意:Hive 1.2以后的版本需要Java 1.7或更新版本。Hive版本0.14到1.1也可以使用Java 1.6。强烈建议用户开始迁移到Java 1.8
2、Hadoop 2.x(首选),1.x(在Hive2.0.0之前不支持)
#笔者在Hadoop上选择Hadoop-2.8.5

二、安装Hive

tar -zxvf hive-3.1.0.tar.gz	#解压,我的是将hive-3.1.0解压到名为hive的文件夹内

vim /etc/profile #编辑环境变量文件

export HIVE_HOME=/hadoopeco/hive/apache-hive-3.1.0-bin
export PATH=${HIVE_HOME}/bin:$PATH
export CLASSPATH=$CLASSPATH:${HIVE_HOME}/lib/*

三、运行Hive

cp hive-env.sh.template hive-env.sh	#$HIVE_HOME/conf目录下,在hive-env.sh中添加
export HADOOP_HOME=<hadoop-install-dir>
cp hive-default.xml.template hive-site.xml
vim hive-site.xml (或vi hive-site.xml)

通过"to 1100"命令,跳转到1100多行这样,或者通过Sublime Text来find会更快
修改hive-site.xml:

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</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.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </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>root</value>
    <description>Username to use against metastore database</description>
</property>

<property>
    <name>javax.jdo.option.Multithreaded</name>
    <value>true</value>
    <description>Set this to true if multiple threads access metastore through JDO concurrently.</description>
</property>

<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>
</property>

四、使用HDFS文件系统

必须使用HDFS命令创建 /tmp 和 /user/hive/warehouse (hive.metastore.warehouse.dir)和
在HIve创建表前将这两个文件夹设置为chmod g+w,如下

$HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse

在$HIVE_HOME/conf/hive-site.xml中进行配置

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>hdfs://master:8020/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
</property>

将mysql-connector-java-5.1.39-bin.jar(可以用其它版本的驱动)驱动复制到$HIVE_HOME/lib中
初始化hive:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

截图:
在这里插入图片描述
在这里插入图片描述
在MySQL Workbench中发现名为“hive”的数据库已经被创建:
在这里插入图片描述

启动HIVE:
在这里插入图片描述
解决办法:

mkdir $HIVE_HOME/tmp
将hive-site.xml中的system:java.io.tmpdir修改为自定义的tmp所在绝对路径,将system:user.name修改为user.name

五、Hive数据库操作

在这里插入图片描述
hdfs下:
在这里插入图片描述
mysql下可以查找到刚才Hive下创建hive1数据库和t1表的记录:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/QQB67G8COM/article/details/86424152