ITPub博客

首页 > 区块链 > 区块链 > Linux下安装hive 详解及HiveSQL运行

Linux下安装hive 详解及HiveSQL运行

原创 区块链 作者:hzcya 时间:2020-11-11 22:04:39 1 删除 编辑

环境准备

hadoop-2.x及以上,

hive-2.3.3安装包

mysql-5.7.24,下载路径:mysql-5.7.24-linux-glibc2.12-x86_64

mysql数据库安装和后台启动

tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

mv mysql /usr/local/

cd /usr/local/mysql/

mkdir data

groupadd mysql

useradd mysql -g mysql

chown -R mysql:mysql /usr/local/mysql/

chmod -R 755 /usr/local/mysql/

cd bin/

./mysqld --initialize --user=root --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

注意:日志末尾的临时密码,稍后需要进行登录,更改密码

vim /etc/my.cnf,添加如下内容:

[mysqld_safe]

datadir=/usr/local/mysql/data

port=3306

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

symbolic-links=0

max_connections=600

innodb_file_per_table=1

lower_case_table_names=1

建立软连接,启动mysql服务

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

service mysql restart

登录mysql,登录密码(前面临时密码)

mysql -u root -p

修改密码

set password for root@localhost = password('mysql');

开发远程连接

use mysql;

update user set user.Host='%' where user.User='root';

flush privileges;

设置开机自动启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --list

安装hive和配置环境变量

tar -zxvf apache-hive-2.3.3-hw-ei-302005-bin.tar.gz

mv apache-hive-2.3.3-hw-ei-302005-bin hive-2.3.3

vim /etc/profile

export HIVE_HOME=/home/lhh/hive/hive-2.3.3

export HIVE_LIB=$HIVE_HOME/lib

export HIVE_BIN=$HIVE_HOME/bin

export HADOOP_USER_CLASSPATH_FIRST=true

export PATH=$HIVE_HOME/bin:$PATH

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*.jar

配置hive相关文件

新建./hive-2.3.3/conf/hive-site.xml,如附件

使用hive-env.sh.template,

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

vim hive-env.sh

export HIVE_CONF_DIR=/home/lhh/hive/hive-2.3.3/conf

export HADOOP_HOME=/home/lhh/hive/hadoop

5. 拷贝mysql jar包到hive lib

拷贝Mysql驱动jar包,将mysql-connector-java-5.1.40-bin.jar拷贝到$HIVE_HOME/lib目录下

cp mysql-connector-java-5.1.40-bin.jar ../hive/hive-2.3.3/lib/

6. 初始化metastore

cd ./hive-2.3.3

./bin/schematool -dbType mysql -initSchema

7. hive客户端

Hive在生产上是不需要部署集群的,操作Hive只需要通过它提供的客户端即可,Hive提供了大致三类客户端:

hive shell:通过hive shell来操作hive,但是至多只能存在一个hive shell,启动第二个会被阻塞,也就是说hive shell不支持并发操作。

WebUI: 通过HUE/Zeppelin来对Hive表进行操作。

基于JDBC等协议:启动hiveserver2,通过jdbc协议可以访问hive,hiveserver2支持高并发。

8. 启动hive

cd ./hive-2.3.3

./bin/hive

9. 启动hiveserver2服务

./bin/hiveserver2 &或者./bin/hive --service hiveserver2 &

hiveserver2是一个基于thrift服务,需要后台运行,端口默认是10000,WebUI端口默认是10002,在终端使用命令netstat -anop|grep 10000 和 netstat -anop|grep 10002。

http://10.71.232.64:10002/

10. beeline连接hiveserver2

beeline -u jdbc:hive2://hadoop-01:10000

已连接上server

11. 测试hive

1)本地创建csv文件text.csv

2)上传到hdfs文件空间

./hadoop/bin/hadoop dfs -put test.csv /test/test.csv

./hadoop/bin/hadoop dfs -ls /test/

3)hive命令行创建表

hive> create table test (

> id INTEGER,

> name STRING,

> grade INTEGER

> ) row format delimited

> fields terminated by ','

> lines terminated by '\n';

4)加载数据到test表中

hive> load data inpath "/test/test.csv" into table test;

5)执行查询任务

select id, count(1) as cnt from test group by id;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69978904/viewspace-2733651/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-07-10

  • 博文量
    46
  • 访问量
    26668