当前位置:Gxlcms > 数据库问题 > HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用

HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用

时间:2021-07-01 10:21:17 帮助过:3人阅读

-zxvf hive-0.9.0.tar.gz 重命名:mv hive-0.9.0.tar.gz hive 进入hive配置目录:cd hive/conf mv hive-exec-log4j.properties.templater hive-exec-log4j.properties mv hive-log4j.properties.templater hive-log4j.properties mv hive-env.sh.template hive-env.sh mv hive-default.xml.template hive-default.xml cp hive-default.xml hive-site.xml

    删除hive-site内部所有内容
    修改bin目录下的hive-config.sh,增加以下三行

    export JAVA_HOME=/usr/local/jdk
    export HIVE_HOME=/usr/local/hive
    export HADOOP_HOME=/usr/local/hadoop

hive的使用:

    cd bin/
    执行hive
    显示数据库:show databases;
    进入数据库:use default;
    显示数据库中的表:show tables;
    创建表:create table t1(id int);
    查询内容:select * from t1;

  hive的映射关系:

    Hive中的数据库,表对应HDFS中的文件夹.
    Hive表中的列对应HDFS中的文件夹中的数据文件中的数据的不同字段.
    Hive表中的数据对应于HDFS中的文件夹中的数据文件中的数据.
    当hive部署成功后,hive默认的数据库default在hdfs上对应的目录是/usr/hive/warehouse

  修改hive的metastore为mysql

  centos上安装mysql

    yum install mysql-server
    启动mysql service mysqld start
    启动mysql mysqld_safe &
    访问mysql mysql -uroot
    进入mysql数据库 use mysql;
    查询用户user的密码 select password ,user from user;
    修改用户密码 update user set password=password(‘admin‘);
    修改mysql为允许远程连接 grant all on *.* to ‘root‘@‘%‘ identified by ‘admin‘;
    刷新 flush privileges; 之前的操作在当前回话中立即生效
    退出登录 mysql -uroot -padmin

    将mysql的jdbc驱动放到hive的lib目录中, 

  cp mysql-connector-java-5.1.10 /usr/local/hive/lib

    修改hive/conf/hive-site.xml

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop4:3306/hive_hadoop?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>admin</value>
    </property>

    删除hive/bin/下面的metastore_db,derby.log

    操作:

    hive
    use default;
    show tables;
    create table t1(id int);
    quit;
    mysql -uroot -padmin
    show databases;
    use hive_hadoop;
    shwo tables;

    DBS:hive上的数据库

    TBLS:表的信息
    COLUMNS_V2:列的信息

    select * from dbs;
    select * from tbls \g;
    select * from columns_v2;

    加载linux磁盘文件到hive表中:对hive的操作实际上是对hdfs的操作,对hdfs的操作只允许一次写入不允许修改的,load的数据来自于磁盘文件.

技术分享
    vi onecolumn
    1
    2
    3
    4
    5
vi onecolumn 数据

    将hive配置到环境变量中:

技术分享
    vi ~/.bashrc
    export PATH=/usr/local/hive/bin:$PATH
    source ~/.bashrc
    hive
    load data local inpath ‘./onecolumn‘ into table t1;
    select * from t1;查询
    drop table t1;删除表 hive中没有修改
将hive添加到环境变量中

    多列数据的上传:

    create table t2(id int,name string) row format delimited fields terminated by ‘\t‘;
    vi user
    1    zhangsan
    2    lisi
    3    wangwu
    load data local inpath ‘./user‘ into table ‘t2‘;
    select * from t2;
    select name from t2;

    当需要查询某一列的时候,hive就不能够进行全表扫描了,只能走mapreduce

    创建表:

    create table t1(id int);
    create table t2(id int,name string) row format delimited fields terminated by ‘\t‘;

    加载linux磁盘文件到hive的表中:

    load data local inpath ‘./onecolumn‘ into table t1;
    load data local inpath ‘./user‘ into table t2;

 

HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用

标签:

人气教程排行