hive 安装
下载地址apache-hive-x.y.z-bin.tar.gz。选择版本。本文中的x.y.z
代表hive的某个版本例如3.1.1
- 下载->解压->复制到/usr/local/hive
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.1/apache-hive-x.y.z-bin.tar.gz
tar -xvf apache-hive-x.y.z-bin.tar.gz
mv apache-hive-x.y.z-bin /usr/local/hive
- 配置环境变量[
~/.bashrc
]
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
- 配置hive的Hadoop[
hive-env.sh
]
cd /usr/local/hive/conf/
cp hive-env.sh.template hive-env.sh
# 在hive-env.sh中添加
export HADOOP_HOME=/usr/local/hadoop
- 配置hive的metastore。用来保存hive的元数据信息。可以是数据库[
hive-site.xml
]
cd /usr/local/hive/conf/
cp hive-default.xml.template hive-site.xml
复制hive-default.xml.template
之后删除configuration之间的所有property。然后添加以下的
<!-- 指定HDFS中的hive仓库地址 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/local/hive/warehouse</value>
</property>
<!-- 该属性为空表示嵌入模式或本地模式,否则为远程模式 -->
<property>
<name>hive.metastore.uris</name>
<value></value>
</property>
<!-- 指定mysql的连接 -->
<!-- localhost是mysql所在机器的IP这里是本地所以localhost-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&useSSL=false</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.cj.jdbc.Driver</value>
</property>
<!-- 指定用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- 指定密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
<description>
</description>
</property>
- 修改log地址[
hive-log4j2.properties
]
复制hive-log4j2.properties.template
为hive-log4j2.properties
修改下面的内容。
${system:java.io.tmpdir}
更改为 /opt/tmp/hive
(如果没有该文件则创建),
并将hive文件夹赋予777权限,将
${system:user.name}
更改为 root
- 在Hadoop中添加hive目录[
hadoop
]
在Hadoop中添加文件并且给组添加写权限。
$ $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
- 添加mysql驱动包[
/usr/local/hive/lib/
]
$cp mysql-connector-java-x.y.z.jar /usr/local/hive/lib/mysql-connector-java-x.y.z.jar
- 验证安装[
/usr/local/hive/
]
$ cd $HIVE_HOME
$ bin/hive
成功样例:
Hive session ID = hkjbusgy-jkbu-bhtg-y7e3-562hu3467bjb
hive> show tables;
OK
Time token: 0.932 seconds
hive>