hive数据仓库安装

目录

安装msyql 数据库

安装hive数据仓库

下载hive 安装包 

解压压缩包:

修改  /etc/profile 文件

复制conf 文件中的配置文件

创建 hive-site.xml 文件 

修改 hive-env.sh 文件

修改 hive-log4j2.properties 文件 

分发文件

修改客户端 hive-site.xml 文件

在服务端、客户端,添加mysql 连接包

启动mysql 服务

服务端:启动服务

客户端:启动客户端

问题:

问题1:

问题2:

问题3:

问题4:

问题5:

hive 数据仓库的使用:

创建表:

加载数据:

查询:


hive数据仓库的基本特点:

1. 基于hdfs 进行存储

2. 源数据存储在关系型数据库里面

3. 提供客户端访问

4. 将sql 语句转换成对应的MapReduce 操作

安装msyql 数据库

安装mysql 服务

yum install -y mysql-server

没有可用的安装包,只能手动安装  

源码安装:https://blog.csdn.net/yang_zzu/article/details/104352726

docker容器安装:https://blog.csdn.net/yang_zzu/article/details/104469902

 

安装hive数据仓库

hive的使用是基于 hadoopHA 进行安装的

hadoopHA 的安装:   https://blog.csdn.net/yang_zzu/article/details/108199608

 hive服务端hive客户端
yang100* 
yang101 *

hive 官方配置文件,各个参数的介绍 

https://cwiki.apache.org/confluence/display/Hive/AdminManual+Configuration

下载hive 安装包 

解压压缩包:

客户端服务端都要进行安装包的解压缩

tar -xvzf apache-hive-3.1.2-bin.tar.gz 

pwd 获得当前文件夹的路径 

修改  /etc/profile 文件

vim /etc/profile

重新加载配置文件

source /etc/profile

复制conf 文件中的配置文件

cp hive-env.sh.template hive-env.sh

cp hive-default.xml.template hive-default.xml

cp hive-log4j2.properties.template hive-log4j2.properties

cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

创建 hive-site.xml 文件 

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

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>

  <property> 
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.232.100:3306/hive?createDatabaseIfNotExist=true</value>
  </property>

  <property> 
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>

  <property> 
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>

  <property> 
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
  </property>

</configuration>

修改 hive-env.sh 文件

这里内容之前都有在 /etc/profile 文件中给配置过,直接从文件里面进行内容的复制即可 

# export HIVE_AUX_JARS_PATH=
export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
export HIVE_HOME=/app/apache-hive-3.1.2-bin
export HADOOP_HOME=/app/hadoop-3.2.1
export HIVE_CONF_DIR=/app/apache-hive-3.1.2-bin/conf

修改 hive-log4j2.properties 文件 

手动指定 hive 的日志文件地址

分发文件

将配置好的文件分发到 yang100 节点(yang100 的节点作为服务端)

修改客户端 hive-site.xml 文件

yang101节点作为客户端:

<?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>/user/hive/warehouse</value>
</property>
   
<property> 
  <name>hive.metastore.local</name>
  <value>false</value>
</property>
  
<property>
  <name>hive.metastore.uris</name>
  <value>thrift://192.168.232.100:9083</value>
</property>
  
</configuration>

在服务端、客户端,添加mysql 连接包

启动mysql 服务

service mysqld start

 

服务端:启动服务

hive --service metastore

客户端:启动客户端

hive

问题:

问题1:

Exception in thread "main" java.lang.RuntimeException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ' ' (code 160) in prolog; expected '<'
 at [row,col,system-id]: [2,61,"file:/app/apache-hive-3.1.2-bin/conf/hive-site.xml"]

显示第2行,61列出现了问题,unexpected character ' '  说的是没有预料到的空格,将hive-site.xml 文件中,所有末尾的空格删除,防止其他的配置,也出现这种情况。

问题2:

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

hive 中的 guava-19.0.jar

hadoop 中的 guava-27.0-jre.jar

将hadoop 中的 高版本的jar包 复制到 hive 中

将hive 中原先的 guava 包重命名,服务端,客户端,都要进行jar 包的替换操作

 

问题3:

MetaException(message:Version information not found in metastore.)

修改服务端 hive-site.xml 文件

 添加配置信息

<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
</property>

问题4:

 MetaException(message:Required table missing : "`DBS`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.schema.autoCreateTables")

 修改服务端 hive-site.xml 文件

 添加配置信息

<property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
</property>

问题5:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead

修改数据库的编码方式:

 

 

hive 数据仓库的使用:

创建表:

CREATE TABLE psn(
id int,
name string,
likes array<string>,
address map<string,string>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '-'
MAP KEYS TERMINATED BY ':'
LINES TERMINATED BY '\n';

加载数据:

load data local inpath '/hiveData/myData/psn.txt' into table psn;

local 表示的是从linux 服务器上加载数据

不添加 local 表示从hdfs 文件系统加载数据

1,小明1,lol-book-movie,beijing:chaoyang-shanghai:pudong
2,小明2,lol-book,beijing:chaoyang-shanghai:pudong
3,小明3,lol-movie,beijing:chaoyang
4,小明4,lol,beijing:chaoyang-shanghai:pudong
5,小明5,book-movie,beijing:chaoyang-shanghai:pudong
6,小明6,lol-book-movie,beijing:chaoyang-shanghai:pudong
7,小明7,movie,beijing:chaoyang-shanghai:pudong
8,小明8,lol-book-movie,shanghai:pudong
9,小明9,lol-book-movie,beijing:chaoyang-shanghai:pudong

查询:

select * from psn;

select count(*) from psn;

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值