Linux下安装hive(2.3.3)详解及HiveSQL运行
环境准备
hadoop-2.x及以上,具体请参考博客
hive-2.3.3安装包
mysql-5.7.24,下载路径:mysql-5.7.24-linux-glibc2.12-x86_64mysql数据库安装和后台启动
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;
- 点赞
- 收藏
- 关注作者
评论(0)