前期工作
- 安装JDK
- 安装hadoop
- 安装MySQL
安装Hive
- 下载Hive安装包,解压安装Hive
- 设置Hive环境变量
编辑 /etc/profile 文件,在其中添加一下内容:
export HIVE_HOME=/bigData/software/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
环境变量生效:
source /etc/prfile
配置Hive
配置文件重命名
在运行 Hive 之前需要使用以下命令修改配置文件:
cd /apache-hive-2.1.1-bin/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
修改hive-env.sh
export HADOOP_HOME=/bigData/hadoop-2.7.3
export HIVE_CONF_DIR=/bigData/software/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/bigData/software/apache-hive-2.1.1-bin/lib
修改hive-site.xml
<configuration>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://IP地址:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>账号</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>密码</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/bigData/software/apache-hive-2.1.1-bin/tmp/</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/bigData/software/apache-hive-2.1.1-bin/logs/</value>
</property>
</configuration>
启动MySQL数据库:
service mysql start
登录MySQL数据库:
mysql -u用户名 -p密码
创建hive数据库:
create database hive;
启动hive:
/apache-hive-2.1.1-bin/bin
./hive
Hive部署需要注意的几点问题:
- MySQL是否正常运行
- 创建好mysql 用户并分配好相应的访问权限以及数据库端口号等
- mysql-connector-Java-5.1.26-bin.jar 是否放到hive/lib 目录下 建议修改权限为777 (chmod 777 mysql- connector-java-5.1.26-bin.jar)
- 修改conf/hive-site.xml 中的 “hive.metastore.schema.verification” 值为 false 即可解决 “Caused by: MetaException(message:Version information not found in metastore. )”
- Caused by: MetaException(message:Hive metastore database is not initialized. Please use schematool (e.g. ./schematool - initSchema -dbType …) to create the schema. If needed, don’t forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ? createDatabaseIfNotExist=true for mysql))
因为作为metastore的数据库没有初始化,错误中已经告诉我们怎么解决,只要一条命令:
./schematool -initSchema -dbType mysql(这里按照你自己用的数据库来初始化,可以是derby,这里用的是mysql)