扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
小编给大家分享一下Hive如何安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联公司专业为企业提供南郑网站建设、南郑做网站、南郑网站设计、南郑网站制作等企业网站建设、网页设计与制作、南郑企业网站模板建站服务,10年南郑做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
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
#rpm -qa查询 | -ivh安装 | -e --nodeps卸载(不检查依赖) rpm -qa|grep mariadb --> mariadb-libs-5.5.56-2.el7.x86_64 --如果存在通过如下命令卸载 sudo rpm -e --nodeps mariadb-libs
#必须按照如下顺序依次安装 #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
#查看datadir路径 cat /etc/my.cnf --> datadir=/var/lib/mysql #清空路径目录下内容 sudo rm -rf /var/lib/mysql
sudo mysqld --initialize --user=mysql
#启动mysql服务 sudo systemctl start mysqld sudo 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)把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/hive 4)修改/etc/profile.d/my_env.sh,添加环境变量 --sudo vim /etc/profile.d/my_env.sh 5)添加内容 #HIVE_HOME export HIVE_HOME=/opt/module/hive export PATH=$PATH:$HIVE_HOME/bin 6)解决日志Jar包冲突 --mv $HIVE_HOME/lib/log4j2-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j2-slf4j-impl-2.10.0.bak
#1.将MySQL的JDBC驱动放置在Hive的lib目录下 cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib #2.配置Metastore到MySQL vim /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
#登录MySQL 创建元数据库 create database metastore #退出MySQL 初始化元数据 schematool -initSchema -dbType mysql -verbose
#启动元数据服务(前台服务,连接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 &
#!/bin/bash HIVE_LOG_DIR=$HIVE_HOME/logs if [ ! -d $HIVE_LOG_DIR ] then mkdir -p $HIVE_LOG_DIR fi #检查进程是否运行正常,参数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.Hive启动 bin/hive #打印当前库与表头需配置hive-site.xmlhive.cli.print.header true Whether to print the names of the columns in query output. #2.JDBC启动 beeline -u jdbc:hive2://hadoop102:10000 -n luck hive.cli.print.current.db true Whether to include the current database in the Hive prompt.
#查看所有命令 bin/hive -help #1. hive -e 不进入hive窗口执行sql语句 bin/hive -e "select id from student;" #2. hive -f 执行脚本中的sql语句 echo "select * from student" >> sql.txt bin/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.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如何安装”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流