《美国往事》里有句台词说:"当我对世事厌倦的时候,我就会想到你。想到你在世界的某个地方生活着,存在着,我就愿意忍受一切。你的存在对我来说,很重要。

安装hive之前,请完成:


hdfs的启动

不推荐mysql8,因为hive版本较旧

在大多数的文章中,都是用cp hive-default.xml.template hive-site.xml的方式来配置hive-site.xml
我认为很不科学,因为这个文件有上万行,改动起来很麻烦,所以换了一种赋值方式

下载、配置Hive

下载

wget https://mirrors.aliyun.com/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz

安装Hive,并设置环境变量

# 解压Hive 到安装目录/usr/local/

tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /usr/local/

# 编辑profile文件 配置Hive环境变量

vim /etc/profile

# 配置的内容
# Hive
export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:$PATH
# 记得source一下,使其生效
source /etc/profile
cd /usr/local/apache-hive-1.2.2-bin/conf
mv hive-default.xml.template hive-default.xml
# 基于模板创建hive-env.sh
cp hive-env.sh.template hive-env.sh
cd /usr/local/apache-hive-1.2.2-bin/conf
vim hive-site.xml

添加如下内容

<configuration>
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
  <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  </property>
</configuration>

根据 hive-site.xml 中的上述的两条配置内容,我们需要在hadoop中建立两个目录:

# 在hdfs中建立/user/hive/warehouse并设置权限
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod -R 777 /user/hive/warehouse
# 在hdfs中建立/tmp/hive/并设置权限
hadoop fs -mkdir -p /tmp/hive/
hadoop fs -chmod -R 777 /tmp/hive

通过浏览器查看公网ip:50070端口(Hadoop3.x.y端口为9870),查看HDFS是否存在新建的目录

JAVA.IO的临时目录,我将其设定为hive路径下的tmp目录中,因为tmp不存在所以需要新建tmp

# 进入到hive的安装目录
cd /usr/local/apache-hive-1.2.2-bin
mkdir tmp
chmod -R 777 tmp/

设置system:java.io.tmpdir

在hive-site.xml继续添加如下:

<property>
    <name>java.io.tmpdir</name>
    <value>/usr/local/apache-hive-1.2.2-bin/tmp</value>
</property>
<property>
    <name>user.name</name>
    <value>root</value>
</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://换成你的mysql主机IP地址:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
  </property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>上面的root为MySQL数据库登录名</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>上面的123456为MySQL数据库密码</description>
  </property>
javax.jdo.option.ConnectionDriverName 对应的value修改为MySQL驱动类路径
注:此处使用的jdbc版本是mysql-connector-java-5.1.39-bin.jar,如果你的版本是8或者更高,请加入预处理。
即,将com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver

hive-env.sh配置文件

在hive的conf目录下,打开配置文件

vim hive-env.sh

配置HIVE_AUX_JARS_PATH, HIVE_CONF_DIR, HADOOP_HOME
在已有的基础上修改如下:

#Folder containing extra libraries required for hive compilation/execution can be controlled by:
#export HIVE_AUX_JARS_PATH=
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-1.2.2-bin/lib

#Hive Configuration Directory can be controlled by:
#export HIVE_CONF_DIR=
export HIVE_CONF_DIR=/usr/local/apache-hive-1.2.2-bin/conf

#Set HADOOP_HOME to point to a specific hadoop install directory
#HADOOP_HOME=${bin}/../../hadoop
export HADOOP_HOME=/usr/local/hadoop

下载jdbc驱动

wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz

tar -zxvf mysql-connector-java-5.1.48.tar.gz   #解压
cp mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar  /usr/local/hive/lib 
#将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

初始化mysql的hive数据库

#对数据库进行初始化
schematool -initSchema -dbType mysql
#启动
hive

建库

hive>create database test;

web查看

Hive 通过 SQL 查询语句实现 wordcount

https://blog.csdn.net/u010360923/article/details/90341102

Last modification:August 5th, 2020 at 04:09 pm
如果觉得我的文章对你有用,请随意赞赏