目录
一、前期准备
信息版本存放位置用户主机名hadoop集群hadoop3.3/home/hadoop/software/hadoopHadoopMastermysqlmysql5.7/homerootHadoopMasterhivehive3.1.2/home/hadoop/software/hadoopHadoopMaster
注:
- 在安装过程中如果有要写HadoopMster的地方,请换成自己的主机名
- 在有/home/hadoop/software/路径时,请对应换成自己相应存放hive的路径
- 配置hive是在hadoop集群的master主机下配置的
1. hive 及相关配置文件下载
http://链接:https://pan.baidu.com/s/1YdQ-93Rpls7rM_i375K85w?pwd=ukdz
注:这三个都要下载 ,之后配置会用到
1. hadoop集群
该部分的安装需要在 Hadoop 已经成功安装的基础上,并且要求
Hadoop 已经正常启动。
如果hadoop集群没有部署好的可以参看这篇文章:https://editor.csdn.net/md/?articleId=127031634
2. 安装mysql
如果mysql没有安装好的可以参考这篇文章:https://mp.csdn.net/mp_blog/creation/editor/127597908
二、安装hive
**1. 解压并安装 ****Hive ****使用下面的命令,解压 ****Hive **安装包:
cd /home/hadoop/software/
tar -zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive3.1.2 #重命名
cd hive3.1.2
执行一下 ls -l 命令会看到下面的图片所示内容,这些内容是 Hive 包含的文件:
2****. ********配置 ********MySQL ****
mysql -u root -p
#然后创建 myhive 用户:
grant all on *.* to myhive@'%' identified by '123456';
grant all on *.* to myhive@'localhost' identified by '123456';
grant all on *.* to myhive@'HadoopMaster' identified by '123456';
flush privileges; #刷新
注意:这里的HadoopMaster要对于改为自己hadoop集群中master节点的主机名
创建数据库:
create database hive01;
3** .****配置 ****Hive **
(1)进入 hive 安装目录下的配置目录,然后修改配置文件:
注:如果主机名和我的不一样的要把配置文件中的HadoopMaster 对应换成自己的主机名
cd /home/hadoop/software/hive3.1.2/conf
在windows上先打开一个txt文件,然后在文件中添加如下内容
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://HadoopMaster:3306/hive01?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>myhive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> </configuration>
然后将文件另存为 hive-site.xml 文件,注意这里的后缀是xml
写好之后,将hive-site.xml 文件上传到/home/hadoop/software/hive3.1.2/conf
目录下,上传好之后ll即可看到。
(2)将 mysql 的 java connector 复制到依赖库中
- ps -ef | grep mysql #查看mysql是否启动,如下所示即为启动
如果没有启动的则先启动mysql ( /home/mysql5.7/support-files/mysql.server start)
- mysql -u root -p #登录mysql用户
(3)将文件 mysql-connector-java.jar 上传到hive的lib目录下
(4) 使用下面的命令打开配置:
vi /home/hadoop/.bash_profile #在文件中添加如下内容
export HIVE_HOME=/home/hadoop/software/hive3.1.2
export PATH=$HIVE_HOME/bin:$PATH
#这里的/home/hadoop/software/hive3.1.2 是自己存放hive的路径
- 添加好之后保存退出,输入:source ~/.bash_pofile
**5.****启动 ****Hive **
输入:hive
提醒:如果这里启动hive的时候出现错误,请直接跳到后面遇到问题及解决办法
注:到了这里hive的下的mysql数据库还不能正常使用,要先初始化hive下的mysql数据库
6. 配置hive下的mysql数据库
/home/hadoop/software/hive3.1.2/bin
schematool -dbType mysql --initSchema #初始化mysql数据库
初始化之后等待完成,出现 schemaTool completed就可以了。
7. ** ****验证 ****Hive **安装是否成功
hive
show databases;
三、遇到问题及解决
在启动hive时出现如下问题:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1380)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1361)
at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)
at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)
at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:448)
at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)
at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java:5099)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:81)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:699)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
原因:
这是因为hadoop下的java剖出来的异常,因为版本不一样
解决过程:
进入hadoop的/hadoop-3.3.0/share/hadoop/common/lib 路径下
ll | grep guav** ** 筛选查询以guva 开头的jar包
进入 hive3.1.2/lib 路径下
ll | grep guav** ** 筛选查询以guva 开头的jar包
可以看到在hadoop下的guava-27.0-jre.jar包是27版本的,而在hive下的 guava-19.0.jar 是19版本
- 将hive 下的包删除guava-19.0.jar
- 进入到hadoop的路径下
- cp guava-27.0-jre.jar /home/hadoop/software//hive3.1.2/lib/ #将guava-27.0-jre.jar复制到hive的lib目录下
- 从新启动hive就可以了
版权归原作者 小-枝-丫 所有, 如有侵权,请联系我们删除。