大数据应用开发第三问之hive安装

前提

1.安装好hadoop(必要)

2.安装好zookeeper(非必要)

3.安装好mysql(必要,因为我们题目需要mysql数据库)

子任务三:Hive安装配置

本任务需要使用root用户完成相关配置,已安装Hadoop及需要配置前置环境,具体要求如下:

  1. 从宿主机/opt目录下将文件apache-hive-2.3.4-bin.tar.gz、mysql-connector-java-5.1.47.jar,制到容器master中的/opt/software路径中(若路径不存在,则需新建),将容器master节点Hive安装包解压到/opt/module目录下,将命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

tar --no-same-owner -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/

  1. 设置Hive环境变量,并使环境变量生效,执行命令hive --version并将命令与结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

  1. 完成相关配置并添加所依赖包,将MySQL数据库作为Hive元数据库。初始化Hive元数据,并通过schematool相关命令执行初始化,将初始化结果截图(范围为命令执行结束的最后10行)粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

由于吾电脑卡顿了一下,最终格式化结果有些分离,就全部截图了,自己做题时只需要截图最后十行。

一、上传压缩包并解压重命名

  1. 将安装包上传到容器的software目录下

docker cp ./apache-hive-3.1.2-bin.tar.gz hadoop1:/opt/software/

  1. 解压
#安装包在software目录下,进入该目录进行解压:

cd /opt/software

第一问答案:

#解压到/opt/module目录下

tar --no-same-owner -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/

  1. 重命名

mv /opt/module/apache-hive-3.1.2-bin /opt/module/hive

二、配置环境变量

1、修改环境变量

vi /etc/profile

内容应修改如下:

#HIVE_HOME

export HIVE_HOME=/opt/module/hive

export PATH=$PATH:$HIVE_HOME/bin

2、重新加载环境变量

source /etc/profile

第二问答案:

3、查看版本号

hive --version

三、修改配置

1.hive-site.xml

# 进入配置目录

cd /opt/module/hive/conf

# 新增或修改hive-site.xml(一般是需要新增)

vi hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

        <property>

                <name>hive.metastore.warehouse.dir</name>

                <value>/opt/module/hive/warehouse</value>

        </property>

        <property>

                <name>hive.metastore.db.type</name>

                <value>mysql</value>

        </property>

        <property>

                <name>javax.jdo.option.ConnectionURL</name>

                <value>jdbc:mysql://172.18.0.2:3306/hivedb?createDatabaseIfNotExist=true</value>

        </property>

        <property>

                <name>javax.jdo.option.ConnectionDriverName</name>

                <value>com.mysql.cj.jdbc.Driver</value>

        </property>

        <property>

                <name>javax.jdo.option.ConnectionUserName</name>

                <value>root</value>

        </property>

        <property>

                <name>javax.jdo.option.ConnectionPassword</name>

                <value>root</value>

        </property>

        <property>

                <name>hive.metastore.schema.verification</name>

                <value>false</value>

                <description>关闭schema验证</description>

        </property>

        <property>

                <name>hive.cli.print.current.db</name>

                <value>true</value>

                <description>提示当前数据库名</description>

        </property>

        <property>

                <name>hive.cli.print.header</name>

                <value>true</value>

                <description>查询输出时带列名一起输出</description>

        </property>

</configuration>

2.在lib下面添加mysql的驱动

#在docker容器外执行

docker cp ./mysql-connector-java-8.0.16.jar hadoop1:/opt/module/hive/lib

3. 初始化hive元数据

schematool -dbType mysql -initSchema

如果出现如下结果,即表示初始化成功

第三问答案:

备注:如果出现如下报错:

[root@e2be44976974 conf]# schematool -dbType mysql -initSchema

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/module/hive/lib/log4j-slf4j-impl-

2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/module/hadoop/share/hadoop/common/lib/slf4j-

log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

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:

1257)

at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)

at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:518)

at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:536)

at org.apache.hadoop.mapred.JobConf.(JobConf.java:430)

at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)

at org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:5104)

at org.apache.hive.beeline.HiveSchemaTool.(HiveSchemaTool.java:96)

at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1473)

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:318)

at org.apache.hadoop.util.RunJar.main(RunJar.java:232)

解决方法:
#删除hive中的guava依赖

cd /opt/module/hive/lib

rm -rf guava-19.0.jar

#使用hadoop中的guava依赖

cd /opt/module/hadoop/share/hadoop/common/lib

cp guava-27.0-jre.jar /opt/module/hive/lib/

4.启动hive

# 三台容器上分别启动zookeeper

zkServer.sh start

#启动hadoop

start-all.sh

#启动mysql

service mysql start

#进入hive客户端

Hive

出现如下结果,即表示hive安装完成可以正常使用

有关报错,列举两项

 

基本是因为hadoop和mysql没起来或这二者有问题。

基本是因为一个名为mysql-connector-java-8.0.16.jar(最好是8.之上的版本,之前试了5.版本不适配)没有放到hive的lib目录下。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着互联网的发展,数据的不断膨胀,从刚开始的关系型数据库到非关系型数据库,再到大数据技术,技术的不断演进最终是随着数据膨胀而不断改变,最初的数据仓库能解决我们的题,但是随着时代发展,企业已经不满足于数据仓库,希望有更强大的技术来支撑数据的存储,包括结构化,非结构化的数据等,希望能够积累企业的数据,从中挖掘出更大的价值。基于这个背景,数据湖的技术应运而生。本课程基于真实的企业数据湖案例进行讲解,结合业务实现数据湖平台,让大家在实践中理解和掌握数据湖技术,未来数据湖的需求也会不断加大,希望同学们抓住这个机遇。项目中将以热门的互联网电商业务场景为案例讲解,具体分析指标包含:流量分析,订单分析,用户行为分析,营销分析,广告分析等,能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。Apache Hudi代表Hadoop Upserts anD Incrementals,管理大型分析数据集在HDFS上的存储。Hudi的主要目的是高效减少摄取过程中的数据延迟。Hudi的出现解决了现有hadoop体系的几个题:1、HDFS的可伸缩性限制 2、需要Hadoop中更快地呈现数据 3、没有直接支持对现有数据的更新和删除 4、快速的ETL和建模 5、要检索所有更新的记录,无论这些更新是添加到最近日期分区的新记录还是对旧数据的更新,Hudi都允许用户使用最后一个检查点时间戳,此过程不用执行扫描整个源表的查询。 本课程包含的技术: 开发工具为:IDEA、WebStorm Flink1.9.0、HudiClickHouseHadoop2.7.5 Hbase2.2.6Kafka2.1.0 Hive2.2.0HDFS、MapReduceSpark、ZookeeperBinlog、Canal、MySQLSpringBoot2.0.2.RELEASE SpringCloud Finchley.RELEASEVue.js、Nodejs、HighchartsLinux Shell编程课程亮点: 1.与企业接轨、真实工业界产品 2.ClickHouse高性能列式存储数据库 3.大数据热门技术Flink4.Flink join 实战 5.Hudi数据湖技术6.集成指标明细查询 7.主流微服务后端系统 8.数据库实时同步解决方案 9.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS 10.集成SpringCloud实现统一整合方案 11.互联网大数据企业热门技术栈 12.支持海量数据的实时分析 13.支持全端实时数据分析 14.全程代码实操,提供全部代码和资料 15.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值