千家信息网

Hive如何安装

发表于:2024-09-28 作者:千家信息网编辑
千家信息网最后更新 2024年09月28日,小编给大家分享一下Hive如何安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、Hive安装1.1、hive安装地址1
千家信息网最后更新 2024年09月28日Hive如何安装

小编给大家分享一下Hive如何安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、Hive安装

1.1、hive安装地址

1)Hive官网地址 http://hive.apache.org/

2)文档查看地址 https://cwiki.apache.org/confluence/display/Hive/GettingStarted

3)下载地址 http://archive.apache.org/dist/hive/

4)github地址 https://github.com/apache/hive

1.2、Mysql安装

1.2.1、检查当前是否安装mysql
#rpm -qa查询 | -ivh安装 | -e --nodeps卸载(不检查依赖)rpm -qa|grep mariadb--> mariadb-libs-5.5.56-2.el7.x86_64  --如果存在通过如下命令卸载sudo rpm -e --nodeps  mariadb-libs
1.2.2、解压并安装mysql
#必须按照如下顺序依次安装#MySQl运行环境sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm#MySQL运行jar包sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm#MySQL扩展jar包sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm#MySQL客户端sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm#MySQL服务器sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
1.2.3、删除datadir目录下内容
#查看datadir路径cat /etc/my.cnf--> datadir=/var/lib/mysql#清空路径目录下内容sudo rm -rf /var/lib/mysql
1.2.4、初始化数据库

sudo mysqld --initialize --user=mysql

1.2.5、启动数据库并修改相关配置
#启动mysql服务sudo systemctl start mysqldsudo systemctl status mysqld#查看临时密码sudo cat /var/log/mysqld.log#登录数据库mysql -uroot -p(换行中输入临时密码)#更改密码策略set global validate_password_length=4;set global validate_password_policy=0;#修改登录密码set password = password('123456')#修改mysql库下的user表中的root用户允许任意ip连接updata mysql.user set host="%" where user="root"#刷新数据库flush privileges

1.3、Hive安装

1.3.1、安装部署
1)把apache-hive-3.1.2-bin.tar.gz上传到linux的/opt/software目录下2)解压apache-hive-3.1.2-bin.tar.gz到/opt/module/目录下面   --tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/3)修改apache-hive-3.1.2-bin.tar.gz的名称为hive   --mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive4)修改/etc/profile.d/my_env.sh,添加环境变量   --sudo vim /etc/profile.d/my_env.sh5)添加内容   #HIVE_HOME   export HIVE_HOME=/opt/module/hive   export PATH=$PATH:$HIVE_HOME/bin6)解决日志Jar包冲突   --mv $HIVE_HOME/lib/log4j2-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j2-slf4j-impl-2.10.0.bak
1.3.2、hive元数据配置到Mysql
#1.将MySQL的JDBC驱动放置在Hive的lib目录下cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib#2.配置Metastore到MySQLvim /opt/module/hive/conf/hive-site.xml
                javax.jdo.option.ConnectionURL        jdbc:mysql://hadoop102:3306/metastore?useSSL=false                    javax.jdo.option.ConnectionDriverName         com.mysql.jdbc.Driver                        javax.jdo.option.ConnectionUserName        root                    javax.jdo.option.ConnectionPassword        123456                    hive.metastore.warehouse.dir        /user/hive/warehouse                       hive.server2.thrift.port        10000                    hive.server2.thrift.bind.host        hadoop102                    hive.metastore.uris        thrift://hadoop102:9083                    hive.metastore.event.db.notification.api.auth        false                    hive.metastore.schema.verification        false                    hive.server2.active.passive.ha.enable        true    

1.4、启动Hive

1.4.1、元素据库初始化
#登录MySQL 创建元数据库create database metastore#退出MySQL 初始化元数据schematool -initSchema -dbType mysql -verbose
1.4.2、hive启动服务
#启动元数据服务(前台服务,连接mysql获取元数据)hive --service metastore#启动hiveserver2服务(前台服务,jdbc连接服务)hive --service hiveserver2#--0 标准输入  --1 标准输出   --2 错误输出   -->& 将一个句柄的输出写入到另一个句柄的输入中。#--nohup: 命令开头,表示不挂起,也就是关闭终端进程也继续保持运行状态    --&: 命令结尾,表示后台运行nohup hive --service metastore>log.txt 2>&1 &nohup hive --service hiveserver2>log2.txt 2>&1 &
1.4.3、hive启动服务脚本
#!/bin/bashHIVE_LOG_DIR=$HIVE_HOME/logsif [ ! -d $HIVE_LOG_DIR ]then        mkdir -p $HIVE_LOG_DIRfi#检查进程是否运行正常,参数1为进程名,参数2为进程端口function check_process(){    pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')    ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)    echo $pid    [[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1}function hive_start(){    metapid=$(check_process HiveMetastore 9083)    cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"    cmd=$cmd" sleep 4; hdfs dfsadmin -safemode wait >/dev/null 2>&1"    [ -z "$metapid" ] && eval $cmd || echo "Metastroe服务已启动"    server2pid=$(check_process HiveServer2 10000)    cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"    [ -z "$server2pid" ] && eval $cmd || echo "HiveServer2服务已启动"}function hive_stop(){    metapid=$(check_process HiveMetastore 9083)    [ "$metapid" ] && kill $metapid || echo "Metastore服务未启动"    server2pid=$(check_process HiveServer2 10000)    [ "$server2pid" ] && kill $server2pid || echo "HiveServer2服务未启动"}case $1 in"start")    hive_start    ;;"stop")    hive_stop    ;;"restart")    hive_stop    sleep 2    hive_start    ;;"status")    check_process HiveMetastore 9083 >/dev/null && echo "Metastore服务运行正常" || echo "Metastore服务运行异常"    check_process HiveServer2 10000 >/dev/null && echo "HiveServer2服务运行正常" || echo "HiveServer2服务运行异常"    ;;*)    echo Invalid Args!    echo 'Usage: '$(basename $0)' start|stop|restart|status'    ;;esac
1.4.4、Hive两种启动方式
#1.Hive启动bin/hive#打印当前库与表头需配置hive-site.xml    hive.cli.print.header    true    Whether to print the names of the columns in query output.    hive.cli.print.current.db    true    Whether to include the current database in the Hive prompt.#2.JDBC启动beeline -u jdbc:hive2://hadoop102:10000 -n luck

1.5 hive交互命令

#查看所有命令bin/hive -help#1. hive -e 不进入hive窗口执行sql语句bin/hive -e "select id from student;"#2. hive -f 执行脚本中的sql语句echo "select * from student" >> sql.txtbin/hive -f /opt/module/hive/datas/sql.txt  > /opt/module/datas/hive_result.txt#3.hive中查看hdfs文件系统hive > dfs -ls#4.hive输入历史/home/luck/. hivehistory  /home/luck/.beeline/history

1.6 属性配置说明

#1.hive日志存储位置  #修改hive-log4j.properties.template为hive-log4j.properties  property.hive.log.dir=/opt/module/hive/logs  #2.JVM堆内存设置  #修改hive-env.sh.template为hive-env.sh  export HADOOP_HEAPSIZE=1024#3.参数配置的优先级 #3.1 配置文件(永久)  #Hadoop配置文件-->默认配置文件:hive-default.xml-->用户自定义配置文件:hive-site.xml #3.2 命令行参数(hive启动前,仅对本次hive有效)  beeline -u jdbc:hive2://hadoop102:10000 -n luck -hiveconf mapreduce.job.reduces=10; #3.3 参数声明(hive启动后,仅对本次hive有效)  hive (default)> set mapreduce.job.reduces=10;  #优先级:参数声明>命令行参数>配置文件

以上是"Hive如何安装"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0