一、安装Hive3.1.2

备注:在安装Hive3.1.2之前,请首先安装Hadoop3.1.3。

1. 下载并解压Hive安装包

tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local

cd /usr/local/

mv apache-hive-3.1.2-bin hive

chown -R hadoop:hadoop hive

2. 配置环境变量

# vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HADOOP_HOME/bin

使配置文件生效

# source /etc/profile

 

3. 修改hive-env.xml

cd /usr/local/hive/conf

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

vim hive-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_271
export HADOOP_HOME=/home/Hadoop
export HIVE_CONF_DIR=/home/hive/conf

3. 修改hive-site.xml

cd /usr/local/hive/conf

mv hive-default.xml.template hive-site.xml

vim hive-site.xml

<configuration>

<property>
<name>system:java.io.tmpdir</name>
<value>/user/hive/warehouse</value>
</property> <property>
<name>system:user.name</name>
<value>${user.name}</value>
</property> <property>
<name>hive.metastore.db.type</name>
<value>mysql</value>
</property> <property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://cancer01: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>root</value>
</property> <property>
 <name>datanucleus.schema.autoCreateAll</name>
 <value>true</value>
</property>

<property>
 <name>hive.metastore.schema.verification</name>
 <value>false</value>
</property> <!--以下配置为配合flume sink写入hive --> <property>
<name>hive.metastore.uris</name>
<value>thrift://cancer01:9083</value>
</property> <property>
<name>hive.txn.manager</name>
<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property> <property>
<name>hive.compactor.initiator.on</name>
<value>true</value>
</property> <property>
<name>hive.compactor.worker.threads</name>
<value>1</value>
</property> <property>
<name>hive.support.concurrency</name>
<value>true</value>
</property> <property>
<name>hive.enforce.bucketing</name>
<value>true</value>
</property> <property>
<name>hive.exec.dynamic.partition.mode</name>
<value>nonstrict</value> </property> <property>
<name>hive.in.test</name>
<value>true</value>
</property> </configuration>

配置说明:

(1)报错:Caused by: org.apache.thrift.TApplicationException: Internal error processing open_txns

hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; -》 打开一部分事务支持

hive.compactor.initiator.on=true; -》运行启动程序和清除线程,用于打开所需参数的完整列表事务

hive.compactor.worker.threads=1; -》增加工作线程的数量将减少花费的时间

hive.support.concurrency=true; -》是否支持并发,默认是false

hive.enforce.bucketing=true; -》是否启用bucketing,写入table数据时会启动分桶

hive.exec.dynamic.partition.mode=nonstrict; -》设置非严格模式

(2)启动metastore时报错:

Table 'metastore.COMPACTION_QUEUE' doesn't exist

配置以下属性:这个是用来创建COMPACTION_QUEUE这张表的

(3)再启动metastore时报错:

Error rolling back: Can't call rollback when autocommit=true

去掉以下属性:之前没有安装,先安装:yum install -y nc

3. 修改hdfs目录

$HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp

$HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp

$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse

$HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

4. 配置日志

配置日志,复制一个模板

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

vim hive-log4j2.properties

配置property.hive.log.dir
property.hive.log.dir = /usr/local/hive/logs

cd /usr/local/hive/

mkdir logs

二、安装mysql

1. mysql安装

sudo apt-get install mysql-server

sudo apt-get install libmysql-java

或者

删除原有mysql

rpm -qa | grep mysql 或 yum list installed | grep mysql

yum -y remove mysql-libs.x86_64

删除原有mariadb

rpm -qa | grep -i mariadb

rpm -ev  --nodeps mariadb-libs-5.5.65-1.el7.x86_64

yum install libaio

tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

rpm -ivh 顺序 common-》lib-》client-》server

2. mysql配置

安装完,启动服务

systemctl start mysqld

systemctl status mysqld

grep "password" /var/log/mysqld.log

A temporary password is generated for root@localhost: hilX0U!9i3_6

mysql -u root -p hilX0U!9i3_6

use mysql;

grant all privileges on *.* to root@"localhost" identified by "root";

flush privileges;

3. 创建Hive元数据库

mysql> create database hive

use hive;

mysql> source $HIVE_HOME/scripts/metastore/upgrade/mysql/hive-schema-3.1.2.mysql.sql;

4. 配置mysql 驱动

tar -zxvf mysql-connector-java-5.1.48.tar.gz

#将mysql驱动包拷贝到/usr/local/hive/lib下

cp mysql-connector-java-5.1.48-bin.jar   /usr/local/hive/lib

或者

ln -s /usr/share/java/mysql-connector-java.jar $HIVE_HOME/lib/mysql-connector-java.jar

三、启动hive

1. 启动

初始化hive数据库

cd /usr/local/hive/bin

schematool -dbType mysql -initSchema

开启metastore(&表示后台进程)

./hive --service metastore &

启动hadoop集群。

start-dfs.sh

#启动hive

hive

2. 验证

创建库表

create database test;

use test;

create table user(

user_id int,

user_name string,

user_age int

)CLUSTERED BY (user_id) INTO 2 BUCKETS

row format delimited fields terminated by '\t'

stored as orc;

#创建表

hive (default)> CREATE TABLE IF NOT EXISTS test_table

(col1 int COMMENT 'Integer Column',

col2 string COMMENT 'String Column'

)

COMMENT 'This is test table'

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

STORED AS TEXTFILE;

hive (default)> show tables;

tab_name

test_table

#写入

hive (default)> insert into test_table values(1,'aaa');

MapReduce Jobs Launched:

Stage-Stage-1: Map: 1  Reduce: 1   Cumulative CPU: 5.54 sec   HDFS Read: 15408 HDFS Write: 243 SUCCESS

Total MapReduce CPU Time Spent: 5 seconds 540 msec

OK

col1 col2

Time taken: 26.271 seconds

#查询

hive (default)> select * from test_table;

test_table.col1 test_table.col2

2 bbb

3 ccc

4 ddd

Time taken: 0.205 seconds, Fetched: 3 row(s)

jps

root@had001:/home/hive# jps

6675 SecondaryNameNode

6426 NameNode

6908 ResourceManager

8382 Jps

jps

root@had002:~# jps

3300 DataNode

3430 NodeManager

5610 Jps

#查看是否能连接had001

root@had002:~# /home/hadoop/bin/hdfs dfsadmin -report

root@had003:~# /home/hadoop/bin/hdfs dfsadmin -report

#正常有data目录

root@had002:~# tree /usr/local/hadoop/tmp

/usr/local/hadoop/tmp

├── dfs

│   └── data

│       ├── current

│       │   ├── BP-1834162669-172.17.252.52-1532682436448

│       │   │   ├── current

│       │   │   │   ├── finalized

Hive3.1.2安装部署的更多相关文章

  1. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  2. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  3. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  4. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  5. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  6. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

  7. 比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0

    新增功能: 2015-03-11 除pass(备份与更新)与start(启动服务)外,实现一切自动化. 注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化.同类业务除外,如更新的 ...

  8. 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布

    新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...

  9. SCCM 2012 R2安装部署过程和问题(三)

    上篇 SCCM 2012 R2安装部署过程和问题(二) 个人认为对于使用SCCM 2012的最重要的经验是耐心. SCCM采用分布式部署的架构,不同的站点角色可以部署在不同的服务器上,站点角色之间的通 ...

  10. SCCM 2012 R2安装部署过程和问题(二)

    上篇:SCCM 2012 R2安装部署过程和问题(一) 在上篇我们已经完成了SCCM 2012 R2安装前的准备,其中有许多细节,关于数据库的准备和权限的设置是需要特别注意的.那么接下来我们开始安装S ...

随机推荐

  1. Servlet系列:(HttpServletRequest、HttpServletResponse、ServletContext、ServletConfig)详解

    HttpServletRequest HttpServletRequest 对象:主要作用是用来接收客户端发送过来的请求信息,例如:请求的参数,发送的头信息等都属于客户端发来的信息,service() ...

  2. shell脚本(1)-shell介绍

    一.shell介绍 1.什么是shell shell是c语法编写的,是用户和liunx内核沟通的桥梁,即是命令语法,也是解释性编程语言. 内核处理的都是二进制,而用户处理的都是高级语法,系统开发人员可 ...

  3. 线性代数 · 矩阵 · Matlab | 满秩分解代码实现

    背景 - 矩阵的满秩分解: 若 A 为 m×n 矩阵,rank(A) = r,则存在 F m×r.G r×n,使得 A = FG. 其中,F 列满秩,G 行满秩. 求满秩分解的方法: 得到 A 的行最 ...

  4. 在Vue中可以使用方括号法获得想要的对象数据吗?

    1.问题 Document {{message}} {{school.name}}{{school[mobile]}} 在这里 {{school.name}}{{school[mobile]}} 不可 ...

  5. Data truncated for column '字段名' at row 1 的解决方法

    1.原因: 修改表结构 XXX 为 not null 时,表数据  XXX 字 段 存在 null 值. 2.解决: 去掉或修改 带有 null 值 的 ( 需要设置 not null 的) 字段

  6. js jquery - 获取元素(父节点,子节点,兄弟节点),元素筛选 (转载)

    一 ,  js 获取元素(父节点,子节点,兄弟节点) var test = document.getElementById("test"); var parent = test.p ...

  7. 一种基于Unix Domain和TCP连接的跨设备多进程间通信的方法

    ​ 前言: 在linux系统进程间通信的方式有消息,消息队列,管道,内存映射,套接字等多种方式. 在Android系统上进行进程间通信主要是使用Binder,其它的还有共享内存,管道,RPC和Unix ...

  8. Redis和Springboot在Windows上面设置开机启动的方法

    Redis和Springboot在Windows上面设置开机启动的方法 背景 同事遇到一个问题 Windows 晚上自动更新服务 然后第二天 Springboot开发的程序没有启动起来. 所以基于此想 ...

  9. [转帖]配置cri-docker使kubernetes1.24以docker作为运行时

    从kubernetes 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作 ...

  10. [转帖]性能调优:理解Set Statistics IO输出

    https://www.cnblogs.com/woodytu/p/4535658.html 性能调优是DBA的重要工作之一.很多人会带着各种性能上的问题来问我们.我们需要通过SQL Server知识 ...