Hive的安装与部署(MySQL作为元数据)
开始之前确保Hadoop环境已经启动,确保Linux下的MySQL已经安装好
Hadoop集群环境和MYSQL可以参考我另外几篇文章
1. Docker安装mysql5.7
2. (超详细版) Linux下安装配置Hadoop2.7.7集群环境搭建—基础环境配置
3. (超详细版) Linux下安装配置Hadoop2.7.7集群环境搭建—部署Hadoop
一、安装Hive
(1)下载安装包
-
可从apache上下载hive安装包:http://mirror.bit.edu.cn/apache/hive/
-
使用wget
cd /usr/local/
wget http://mirror.bit.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz
(2)解压并改名:
tar -zxf apache-hive-1.2.2-bin.tar.gz
mv apache-hive-1.2.2-bin hive
(3)修改环境变量
vi /etc/profile
添加以下配置
#hive
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
(4)刷新配置并查看hive
source /etc.profile
hive --version
如图表示成功
二、配置Hive
- 进入conf目录
cd /usr/local/hive/conf/
- 复制hive-default.xml.template,改名为hive-site.xml (必须)
cp hive-default.xml.template hive-site.xml
- 修改hive-site.xml:
vi hive-site.xml
- 找到源文件的ConnectionUserName(数据库的用户名)、ConnectionPassword(密码)、
ConnectionURL(URL地址)、ConnectionDriverName(驱动名称),改为自己的数据库配置
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>mysql
<value>jdbc:mysql://192.168.1.68:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
- 下载mysql的驱动程序到hive/lib下面
cd /usr/local/hive/lib/
wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar
- 初始化数据库(在此之前需要创建mysql下的hive数据库)
schematool -dbType mysql -initSchema
- 启动hive
hive
- 需要知道现在的hadoop中的HDFS存了什么
hadoop fs -lsr /
- 创建库
create database test_hive;
show databases;
- 查询一下HDFS有什么变化
三、报错
安装Hive过程中,出现Exception in thread “main”
java.lang.IllegalArgumentException: java.net.URISyntaxExceptiion:
java.net.URISyntaxException: Relative path in absolute URI:
KaTeX parse error: Expected '}', got 'EOF' at end of input: …a.io.tmpdir%7D/%7Bsystem:user.name%7D
是因为hive-site.xml有三处地方未配置好。或者原配置没有目录。配置一些临时文件目录。
- 打开hive配置。路径 hive下的conf的hive-site.xml。
cd /usr/local/hive/conf/
vi hive-site.xml
- 修改以下三处(认真查找,不要找错了)
第一处
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
第二处
<property>
<name>hive.downloaded.resources.dir</name>
<value>/tmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
第三处
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/tmp/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
这样就成功了。
初始化数据库失败报错org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
请检查驱动是否正确下载,数据库是否正确创建,未创建请手动创建