Hive3.1.2安装部署
一、安装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安装部署的更多相关文章
- Oracle安装部署,版本升级,应用补丁快速参考
一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...
- KVM安装部署
KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...
- Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考
操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...
- 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...
- C# winform安装部署(转载)
c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...
- Ubuntu14.04 Django Mysql安装部署全过程
Ubuntu14.04 Django Mysql安装部署全过程 一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...
- 比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0
新增功能: 2015-03-11 除pass(备份与更新)与start(启动服务)外,实现一切自动化. 注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化.同类业务除外,如更新的 ...
- 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布
新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...
- SCCM 2012 R2安装部署过程和问题(三)
上篇 SCCM 2012 R2安装部署过程和问题(二) 个人认为对于使用SCCM 2012的最重要的经验是耐心. SCCM采用分布式部署的架构,不同的站点角色可以部署在不同的服务器上,站点角色之间的通 ...
- SCCM 2012 R2安装部署过程和问题(二)
上篇:SCCM 2012 R2安装部署过程和问题(一) 在上篇我们已经完成了SCCM 2012 R2安装前的准备,其中有许多细节,关于数据库的准备和权限的设置是需要特别注意的.那么接下来我们开始安装S ...
随机推荐
- Servlet系列:(HttpServletRequest、HttpServletResponse、ServletContext、ServletConfig)详解
HttpServletRequest HttpServletRequest 对象:主要作用是用来接收客户端发送过来的请求信息,例如:请求的参数,发送的头信息等都属于客户端发来的信息,service() ...
- shell脚本(1)-shell介绍
一.shell介绍 1.什么是shell shell是c语法编写的,是用户和liunx内核沟通的桥梁,即是命令语法,也是解释性编程语言. 内核处理的都是二进制,而用户处理的都是高级语法,系统开发人员可 ...
- 线性代数 · 矩阵 · Matlab | 满秩分解代码实现
背景 - 矩阵的满秩分解: 若 A 为 m×n 矩阵,rank(A) = r,则存在 F m×r.G r×n,使得 A = FG. 其中,F 列满秩,G 行满秩. 求满秩分解的方法: 得到 A 的行最 ...
- 在Vue中可以使用方括号法获得想要的对象数据吗?
1.问题 Document {{message}} {{school.name}}{{school[mobile]}} 在这里 {{school.name}}{{school[mobile]}} 不可 ...
- Data truncated for column '字段名' at row 1 的解决方法
1.原因: 修改表结构 XXX 为 not null 时,表数据 XXX 字 段 存在 null 值. 2.解决: 去掉或修改 带有 null 值 的 ( 需要设置 not null 的) 字段
- js jquery - 获取元素(父节点,子节点,兄弟节点),元素筛选 (转载)
一 , js 获取元素(父节点,子节点,兄弟节点) var test = document.getElementById("test"); var parent = test.p ...
- 一种基于Unix Domain和TCP连接的跨设备多进程间通信的方法
前言: 在linux系统进程间通信的方式有消息,消息队列,管道,内存映射,套接字等多种方式. 在Android系统上进行进程间通信主要是使用Binder,其它的还有共享内存,管道,RPC和Unix ...
- Redis和Springboot在Windows上面设置开机启动的方法
Redis和Springboot在Windows上面设置开机启动的方法 背景 同事遇到一个问题 Windows 晚上自动更新服务 然后第二天 Springboot开发的程序没有启动起来. 所以基于此想 ...
- [转帖]配置cri-docker使kubernetes1.24以docker作为运行时
从kubernetes 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作 ...
- [转帖]性能调优:理解Set Statistics IO输出
https://www.cnblogs.com/woodytu/p/4535658.html 性能调优是DBA的重要工作之一.很多人会带着各种性能上的问题来问我们.我们需要通过SQL Server知识 ...