Hive安装(图文并茂)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Hive安装(图文并茂)

环境


阿里云ECS服务器


hadoop-2.7.2


apache-hive-1.2.1


注意、注意、注意:我的hive软件装在  /opt/module/  下,注意一下下面代码执行的目录


前提


请记住快照一下,无论文章写的在差,也有人点赞,无论文章写的在好,也还是有人看不懂,如果您没有搭建起来,也不至于毁你的环境


请记住快照一下,无论文章写的在差,也有人点赞,无论文章写的在好,也还是有人看不懂,如果您没有搭建起来,也不至于毁你的环境


请记住快照一下,无论文章写的在差,也有人点赞,无论文章写的在好,也还是有人看不懂,如果您没有搭建起来,也不至于毁你的环境


hadoop安装成功并且运行起来,yarn必须启动起来


apache-hive-1.2.1-bin.tar.gz下载


链接:https://pan.baidu.com/s/1l6t2a3xL2f09GXfKOVJyng

提取码:adsw

复制这段内容后打开百度网盘手机App,操作更方便哦


安装步骤


将Hive的压缩包上传到Linux系统中的/opt/software中


1.png


将Hive的压缩包解压到/opt/module中


tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/


进入 /opt/module中,并且将解压的的文件名称改为hive(方便后面写名字)


2.png


[root@iZm5ea99qngm2v98asii1aZ module]# cd /opt/module/
[root@iZm5ea99qngm2v98asii1aZ module]# ls
apache-hive-1.2.1-bin  hadoop-2.7.2
[root@iZm5ea99qngm2v98asii1aZ module]# mv apache-hive-1.2.1-bin/  hive
[root@iZm5ea99qngm2v98asii1aZ module]# ls
hadoop-2.7.2  hive
[root@iZm5ea99qngm2v98asii1aZ module]#


修改 /exc/profile 文件,配置Hive的环境变量


1. #HIVE_HOME
2. export HIVE_HOME=/opt/module/hive
3. export PATH=$PATH:$HIVE_HOME/bin


修改前


3.png


修改后


4.png


使配置文件生效


source /etc/profile


在hive中配置hadoop的HADOOP_HOME和HIVE_CONF_DIR


进入/opt/module/hive/conf  目录

将 hive-env.sh.template 复制一份 并且命名为 hive-env.sh

修改hive-env.sh文件

其中 HADOOP_HOME的获取方式为


5.png


HIVE_CONF_DIR的值为修改的这个文件的目录


修改前


6.png


修改后


7.png


在HDFS上创建几个Hive规定的文件


8.png


hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse


启动Hive


9.png


进入/opt/module/hive/ 目录下


cd /opt/module/hive/


启动hive


bin/hive


退出hive(后面带分号)


quit;


Hive安装MySQL服务:将hive的数据存储到MySQL中,将hive和MySQL结合起来


安装MySQL


安装方式一:


https://blog.csdn.net/qq_37171353/article/details/80040662


安装方式二:


用宝塔界面   宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板


步骤一:安装宝塔界面,注意看里面最后生成的用户名、密码、URL


步骤二:和手机应用宝一样安装MySQL


配置MySQL无主机登录


目的


解决在别的电脑上也能能连接到服务器MySQL


解决办法


grant all privileges on *.* to root@'%' identified by 'root';


flush privileges;


这样你就可以在任何机器上输入正确的ip,用户名,密码就可以访问数据库了,前提其他都没有问题(mysql服务开启,端口开放等等)


修改hive的配置文件


  • 在/opt/module/hive/conf目录下创建一个hive-site.xml


10.png


在hive-site.xml添加下面信息


其中需要修改三处信息:jdbcURL,MySQL的用户名、密码


  <value>jdbc:mysql://127.0.0.1:3306/metastore?createDatabaseIfNotExist=true</value>
 <value>root</value>
  <value>000000</value>


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://127.0.0.1:3306/metastore?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>root</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>000000</value>
    <description>password to use against metastore database</description>
  </property>
<property>
  <name>hive.cli.print.header</name>
  <value>true</value>
</property>
<property>
  <name>hive.cli.print.current.db</name>
  <value>true</value>
</property>
</configuration>


上传MySQL驱动(mysql-connector-java-5.1.27-bin.jar)


将mysql-connector-java-5.1.27-bin上传到     ( /opt/module/hive/lib)  下


mysql-connector-java-5.1.27-bin.jar下载链接

链接:https://pan.baidu.com/s/1-qfK3nwrm07tg6zVKk1Vrw

提取码:737r

复制这段内容后打开百度网盘手机App,操作更方便哦


初始化schematool(敲黑板)


schematool -dbType mysql -initSchema


11.png


否则会报下面的错误

hive配置远程仓库异常:Unable to instantiate


Logging initialized using configuration in jar:file:/bigdata/hive/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)
  at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
  at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
  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:239)
  at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
  at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1523)
  at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:86)
  at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:132)
  at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:104)
  at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:3005)
  at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3024)
  at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:503)
  ... 8 more
Caused by: java.lang.reflect.InvocationTargetException
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
  at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1521)
  ... 14 more
Caused by: javax.jdo.JDOException: Exception thrown calling table.exists() for hive.`SEQUENCE_TABLE`
NestedThrowables:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
  at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:596)
  at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:732)
  at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
  at org.apache.hadoop.hive.metastore.ObjectStore.setMetaStoreSchemaVersion(ObjectStore.java:6773)
  at org.apache.hadoop.hive.metastore.ObjectStore.checkSchema(ObjectStore.java:6670)
  at org.apache.hadoop.hive.metastore.ObjectStore.verifySchema(ObjectStore.java:6645)
  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.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:114)
  at com.sun.proxy.$Proxy6.verifySchema(Unknown Source)
  at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:572)
  at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:624)
  at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:461)
  at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:66)
  at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:72)
  at org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:5762)
  at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:199)
  at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:74)


大功告成


启动hive


hive运行日志信息配置


在  (/opt/module/hive/conf) 里有         hive-log4j.properties.template  复制一份并且重命名为hive-log4j.properties


修改hive-log4j.properties文件


修改前


12.png


修改后


13.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
SQL 关系型数据库 MySQL
Mac下安装hive
Mac下安装hive
168 0
|
3月前
|
SQL 分布式计算 Java
linux安装Hive详细步骤
【1月更文挑战第2天】linux安装Hive详细步骤
145 0
|
8月前
|
SQL 分布式计算 Ubuntu
基于Hadoop的数据仓库Hive安装
基于Hadoop的数据仓库Hive安装
186 0
|
4月前
|
SQL 分布式计算 关系型数据库
Hive安装
Hive安装
45 1
|
8月前
|
SQL 存储 分布式计算
Hive学习---1、Hive入门、Hive 安装(二)
Hive学习---1、Hive入门、Hive 安装(二)
|
4月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
104 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
5月前
|
SQL 分布式计算 关系型数据库
Hive教程(02)- Hive安装
Hive教程(02)- Hive安装
56 0
|
6月前
|
SQL 分布式计算 关系型数据库
Hive-安装与配置(1)
Hive-安装与配置(1)
151 0
|
7月前
|
SQL 分布式计算 关系型数据库
大数据Hive安装与应用
大数据Hive安装与应用
113 0
|
8月前
|
SQL 分布式计算 关系型数据库
hadoop集群hive 的安装
hadoop集群hive 的安装
77 0