• hive安装和shell交互全步骤


    准备好服务器,Hive只在一个节点上安装即可。
    主机环境windows+虚拟机Linux

    **详细步骤:
    1.官网下载hive的压缩包,这里是hive-0.12.tar.gz,上传tar包到linux服务器。

    2.安装和配置文件**
    tar -zxvf hive-0.9.0.tar.gz -C /home/hadoop/app/
    可以看到hive-0.12文件夹,用mv hive-0.12 hive
    进入hive目录下:
    su 以root身份登录后,修改etc/profile,加入hive_home=/home/app/hive
    在path后面加上hive_home/bin即可。

    cd H I V E _ H O M E / c o n f m v h i v e − e n v . s h . t e m p l a t e h i v e − e n v . s h m v h i v e − d e f a u l t . x m l . t e m p l a t e h i v e − s i t e . x m l 1. 修改 h a d o o p 的 h a d o o p − e n v . s h ( 否则启动 h i v e 汇报找不到类的错误 ) e x p o r t H A D O O P _ C L A S S P A T H = . : HIVE\_HOME/conf mv hive-env.sh.template hive-env.sh mv hive-default.xml.template hive-site.xml 1.修改hadoop的hadoop-env.sh(否则启动hive汇报找不到类的错误) export HADOOP\_CLASSPATH=.: HIVE_HOME/confmvhiveenv.sh.templatehiveenv.shmvhivedefault.xml.templatehivesite.xml1.修改hadoophadoopenv.sh(否则启动hive汇报找不到类的错误)exportHADOOP_CLASSPATH=.:CLASSPATH: H A D O O P _ C L A S S P A T H : HADOOP\_CLASSPATH: HADOOP_CLASSPATH:HADOOP_HOME/bin
    2.修改$HIVE_HOME/bin的hive-config.sh,增加以下三行
    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    export HIVE_HOME=/home/hadoop/hive
    export HADOOP_HOME=/home/hadoop/hadoop

    默认现在即可开启一下hive。用./hive 命令进入(注意开启之前,要先开启hdfs,因为hive操作数据最终保存到hdfs上的文件夹)
    这时候会使用内置的derby存储元数据,但是可能报错:FAILED: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

    可以用debug模式启动:bin/hive -hiveconf hive.root.logger=DEBUG,console
    可以看出原因在于下面:Version information not found in metastore.
    解决方法,修改hive-site.xml中的hive.metastore.schema.verification,置为false,并重启hive:

    测试:
    CREATE TABLE t2(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ’ ';
    造一份数据,然后:LOAD DATA LOCAL INPATH ‘/root/id’ INTO TABLE t1;

    derby有个缺点:每个不同用户同时登录这个Linux系统,都有自己的目录,都会生成一份元数据,所以大家看到的并不一样。showtables可以测试,所以用mysql

    3.安装元数据存储源mysql
    ------------------------安装mysql支持多用户---------------------------------------------
    配置mysql metastore(切换到root用户)
    配置HIVE_HOME环境变量
    rpm -qa | grep mysql
    rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
    rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm

    rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm
    修改mysql的密码
    /usr/bin/mysql_secure_installation
    (注意:删除匿名用户,允许用户远程连接)
    登陆mysql
    mysql -u root -p
    ---------------------如果是Ubuntu安装mysql如下:-----
    一. 安装MySQL
    1. 安装前先更新软件包列表:

    $ sudo apt update

    2. 在Ubuntu 16.04上安装MySQL:

    $ sudo apt-get install mysql-server mysql-client

    3. 在安装过程中需要你输入MySQL 管理员用户(root)密码,如下图:

    输入root用户密码
    4. 运行MySQL初始化安全脚本:

    $ sudo mysql_secure_installation

    5. 根据提示信息设置:

    根据提示信息设置
    mysql_secure_installation脚本设置的东西:更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库。使用上面的这些选项可以提高MySQL的安全。
    二. MySQL数据库基本使用

    1.使用root用户登录:

    $ mysql -u root -p

    2.输入root密码:
    输入root密码
    注意如果需要指定安装某个版本的mysql, :命令用法如下:

    sudo apt-get install package=version
    例如我要安装autoconf 2.50:

    sudo apt-get install autoconf=2.50
    ----------------------------------------------

    4.配置hive
    cp hive-default.xml.template hive-site.xml
    修改hive-site.xml(删除所有内容,只留一个)
    添加如下内容:

    javax.jdo.option.ConnectionURL
    jdbc:mysql://192.168.10.127:3306/hivecreateDatabaseIfNotExist=true
    JDBC connect string for a JDBC metastore

    javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName root username to use against metastore database javax.jdo.option.ConnectionPassword root password to use against metastore database

    注意:配置文件中url的ip地址最好改为localhost或者机器名称,不然可能报出:Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient错误

    5.安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
    如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
    mysql -uroot -p
    #(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
    GRANT ALL PRIVILEGES ON *.* TO ‘hadoop’@‘%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    6.建表(默认是内部表)
    create table trade_detail(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by ’ ';
    建分区表
    create table td_part(id bigint, account string, income double, expenses double, time string) partitioned by (logdate string) row format delimited fields terminated by ’ ';
    建外部表
    create external table td_ext(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by ’ ’ location ‘/td_ext’;
    create external table ex_user(id int,name string) row format delimited fields terminated by ’ ’ location ‘/home/hadoop/user.txt’;
    7.创建分区表
    普通表和分区表区别:有大量数据增加的需要建分区表
    create table book (id bigint, name string) partitioned by (pubdate string) row format delimited fields terminated by ’ ';

    分区表加载数据
    load data local inpath ‘./book.txt’ overwrite into table book partition (pubdate=‘2010-08-22’);

    load data local inpath ‘/root/data.am’ into table beauty partition (nation=“USA”);

    select nation, avg(size) from beauties group by nation order by avg(size);

    8.创建关联表
    create table user(id int,name string) row format delimited fields terminated by ’ ';
    LOAD DATA LOCAL INPATH ‘/home/hadoop/user.txt’ INTO TABLE user;
    create table order(id int,uid int,name string) row format delimited fields terminated by ’ ';
    LOAD DATA LOCAL INPATH ‘/home/hadoop/order.txt’ INTO TABLE order

    –可以关联查询,查询id为1的小明有哪些订单
    select user.name,order.name from user join order on user.id=order.uid where user.name=‘xiaoming’;

  • 相关阅读:
    伯俊ERP与金蝶云星空对接集成表头表体组合查询连通分布式调出单新增(调拨出库对接分布式调出(KD调拨)6月)
    java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署
    通讯录管理系统
    2023系统分析师---冲刺资料必备知识点二
    vuedraggable影响点击事件的解决办法
    Python文件操作及光标移动介绍
    C++11
    linux内核分析:进程通讯方式
    电阻:论“Note”的重要性
    JAVA接入OPC DA2.0引发的问题
  • 原文地址:https://blog.csdn.net/m0_61083409/article/details/126717672