您的位置:首页 > 运维架构

在Hadoop基础上Hive的安装

2017-05-07 13:03 447 查看
写在开头

环境

Hadoop单机

Centos7

Hadoop-2.7.3

hadoop位置:/usr/loacl/hadoop

参考文章

Hadoop集群之Hive安装配置

Hive下载

下载源码包

#在hadoop目录下操作
>>>cd /usr/local/hadoop

#用wget下载
>>>wget http://mirrors.cnnic.cn/apache/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz 
#也可以在图形界面下下载之后,上传压缩包

#解压缩包
>>>tar -zxvf apache-hive-1.2.1-bin.tar.gz

#配置环境变量
>>>vim /etc/profile
#位置在之前配置的变量之后,大概12行左右,因为之前配置了jdk和hadoop变量
export HIVE_HOME=/usr/local/hadoop/apache-hive-1.2.2-bin
export PATH=$HIVE_HOME/bin:$PATH
#适当位置添加"$HIVE_HOME/bin:"
#保存退出

#使文件生效
>>>source /etc/profile


安装MySQL

详情见另一篇博客中——安装MySQL一部分

Centos7下安装MySQL

配置Hive

我们之前在hadoop目录下安装了Hive,位置为/usr/local/hadoop/apache-hive-1.2.1-bin

#进入hive配置目录下
>>>cd /usr/local/hadoop/apache-hive-1.2.1-bin/conf

#修改hive-default.xml.template
#首先复制
>>>cp hive-default.xml.template hive-default.xml
#修改文件
>>>vim hive-default.xml

# 1. 第一步将<configuration></configuration>中内容删除大概是18-3908行
# vim删除命令-->:18,3908d
# 2.将下面<configuration></configuration>中内容复制进去,分别将3306喝9083前的user_name改为当前的用户名
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://user_name:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</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>hive<value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>

<property>
<name>hive.metastore.uris</name>
<value>thrift://user_name:9083</value>
</property>
</configuration>


下载JDBC

#命令行下载,也可以使用图形界面上传文件
>>> wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.36.tar.gz 
#将文件复制进Hive的lib目录下,原因,Hive的自带的那个版本低,可能失效
>>> cp mysql-connector-java-5.1.33-bin.jar /usr/local/hadoop/apache-hive-1.2.1-bin/lib/


启动Hive

>>>hive --service metastore &
>>>jps
#结果会多出一个进程

#进入hive目录
>>>cd /usr/local/hadoop/apache-hive-1.2.1-bin/bin
#启动hive,可能有点慢
>>>hive

#若出现hive的命令行即代表成功,如下
hive>


部分报错原因

Logging initialized using configuration in jar:file:/home/hadoop/apache-hive-1.2.1-bin/lib/hive-common-1.2.1.jar!/hive-log4j.properties

Exception in thread “main” java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)

解决方法,直接关闭防火墙

#这里的系统事Centos7,所以使用此命令
>>>systemctl stop firewalld


hive metastore 启动出错解决

# 查看与hive相关进程是否启动
>>>ps -ef | grep hive
# kill相关进程,为进程号
>>>kill num
# 重新启动
>>>./hive


更多问题见此文章

Hive常见问题汇总
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: