Linux下安装hive(2.3.3)详解及HiveSQL运行

举报
Liuuuu 发表于 2020/11/09 16:40:37 2020/11/09
【摘要】 环境准备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.gzmv mysql-5.7.24-linux-glibc2.12-x86_64 ...
  1. 环境准备
    hadoop-2.x及以上,具体请参考博客
    hive-2.3.3安装包
    mysql-5.7.24,下载路径:mysql-5.7.24-linux-glibc2.12-x86_64

  2. 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

  3. 安装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

  4. 配置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;
    


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。