首页 > 其他分享 >hive

hive

时间:2023-04-20 20:24:35浏览次数:24  
标签:local hive rpm mysql table root

解压hive到/usr/local/src目录下并修改名称为hive

mv apache-hive-3.1.3-bin hive

配置hive的环境变量

#HIVE_HOME
export HIVE_HOME=/usr/local/src/hive
export PATH=$PATH=$HIVE_HOME/bin:$PATH

source一下重启

配置hive-env.sh,添加hive,java,hadoop的环境变量进去

export HIVE_CONF_DIR=/usr/local/src/hive/conf
export JAVA_HOME=/usr/local/src/jdk
export HADOOP_HOME=/usr/local/src/hadoop
#运行hive数据库
bin/hive

启动hive如果出现hive则成功,但是此时的hive没有配置数据库所以无法操作

查看本机安装的mysql

rpm -qa|grep mariadb

如果有 mysql-libs-5.1.73-7.el6.x86_64则卸载,因为要安装的mysql与这个会冲突

卸载mysql

rpm -e --nodeps mysql-libs-+mysql的版本

安装mysql

解压mysql包 到mysql_lib文件夹中

tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar mysql_lib/

使用rpm安装

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm  #如果报错需要依赖则在后面添加   --force --nodeps

启动mysql

systemctl start mysqld

在/etc/my.cnf文件中[mysqld]下添加skip-grant-tables,为跳过mysql密码直接进入mysql

修改文件之后需要重启mysqld服务

systemctl restart mysqld

进入mysql 直接回车

mysql -u root -p

进入mysql后输入use mysql修改root的密码

update user set authentication_string=password('新密码') where user='root';
两个都可以修改
alter user 'root'@'localhost' identified by '000000';

可能会报错,报错原因可能是密码太过简单,则需要修改密码策略

刷新生效

flush privileges;

退出mysql,将配置文件中的跳过密码删除,重新启动mysql服务

再次进入mysql创建hive数据库

create database hive;

修改密码策略

查看密码策略

show variables like 'validate_password%';

修改密码强度为low

set global validate_password_policy=0;

修改密码长度为6位

set global validate_password_length=6;

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '000000';

mysql设置远程登录

刷新

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '000000' WITH GRANT OPTION;

FLUSH PRIVILEGES;

查询所有用户与权限

use mysql
SELECT User, Host FROM mysql.user;

如果mysql出现权限问题需要,use mysql 进入数据库再进行查询,修改权限

配置hive-site.xml文件再hive/conf目录下,如果没有则vi新建一个

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!--配置mysql数据库的连接地址-->
<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master:3306/hive</value>
</property>
    <!--配置mysql数据库的连接驱动-->
<property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
</property>
    <!--配置mysql数据库的用户名-->
<property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
</property>
    <!--配置mysql数据库的密码-->
<property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>000000</value>
</property>
</configuration>

拷贝驱动到lib目录下

‘初始化数据库

schematool -initSchema -dbType mysql

启动hive之前要启动hadoop

之后输入hive进入hive,如果出现hive>则成功

hive创建表

内部表

create table test
    (id int,name string,age int)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    STORED AS TEXTFILE;
    
,是以逗号分割,如果导入的数据没有以逗号分割则会全部为null

外部表

create external table test_waibu
     (number int,name string,address string,age int)
     ROW FORMAT DELIMITED
     FIELDS TERMINATED BY ','
     STORED AS TEXTFILE
     ;
> location '/user/hive/external/fz_external_table';
建外部表时要加external关键字,我在建表时指定了location,当然也可以不指定,不指定就默认使用hive.metastore.warehouse.dir指定的路径。

查看表的类型

desc formatted 表名
Table Type:             MANAGED_TABLE为内部表
Table Type:             EXTERNAL_TABLE为外部表

修改为外部表

alter table 表名 set tblproperties('EXTERNAL'='TRUE');

修改为内部表

alter table 表名 set tblproperties('EXTERNAL'='FALSE');

创建分区表

create table default.test(userid string, name string, age int) partitioned by (logday string);

创建 test 分区表,在创建时使用 partitioned by 进行指定,该表为单分区表,logday 被是指定的分区字段(在实际应用中,通常会存在多分区表的情况)

将本地文件123.txt导入到hive表中

load data local inpath '/usr/local/src/hive/external/123.txt'  into table neibu;

只删除表中的数据

truncate table 表名

标签:local,hive,rpm,mysql,table,root
From: https://www.cnblogs.com/gudeman/p/17338172.html

相关文章

  • hive 常用命令
       hive开启命令窗口hive--servicecli; hive--servicemetastore& 开启hivemetastore hive--servicehiveserver-p11000>/dev/null2>&1&   开启远程连接端口 hivesql文件执行方式:1>hive-ffile2hive>sourcefile  ......
  • hive日志位置
        日志记录了程序运行的过程,是一种查找问题的利器。Hive中的日志分为两种1.系统日志,记录了hive的运行情况,错误状况。2.Job日志,记录了Hive中job的执行的历史过程。系统日志存储在什么地方呢?在hive/conf/hive-log4j.properties文件中记录了Hive日志的存储情况,默认的存储......
  • hive 使用JDBC访问 和启动远程端口
      0:hiveservice开启远程访问端口: hive使用jdbc进行访问,要求我们必须开启远程可以访问的端口,其中端口11000是随机的,可以是10002或者别的端口,这设定好好java代码链接时候就要使用开启好的端口。  linuxshell下执行hive--servicehiveserver-p11000>/dev/null2>&1......
  • hive row_number分组排序top
    自从hive0.11.0开始,加入了类似orcle的分析函数,很强大,可以查询到分组排序top值使用方法跟oracle没有差别 贴个小例子查询的是同一个操作下pv前十的用户select*,row_number()OVER(PARTITIONBYt3.actionORDERBYpvdesc)ASflagfrom(selectaction,uuid,count(1)as......
  • hive函数
    用pig的时候,超不爱用pig带的函数,一般都自己写但是用hive,就越来越懒,变成了能不写就不写自己的udf,哈哈 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 1.内置运算符 1.1关系运算符  运算符类型说明A=B所有原始类型如果A与B相等......
  • hive local mr转
    在hive中运行的sql有很多是比较小的sql,数据量小,计算量小.这些比较小的sql如果也采用分布式的方式来执行,那么是得不偿失的.因为sql真正执行的时间可能只有10秒,但是分布式任务的生成得其他过程的执行可能要1分钟.这样的小任务更适合采用lcoalmr的方式来执行.就是在本地来执行,通......
  • cocoapods Xcode 14.3 Archive Command PhaseScriptExecution failed with a nonzero
    Xcode升级到14.3进行  Archive CommandPhaseScriptExecutionfailedwithanonzeroexitcode解决方法Xcode搜索 source="$(readlink-f"${source}")"将 source="$(readlink-f"${source}")"改为 source="$(readlink-f"......
  • Windows10系统下Hadoop和Hive环境搭建
    文章部分内容来自:https://www.cnblogs.com/sheng-sjk/p/16186508.html结合实际搭建过程中的问题,对文章进行了优化环境准备软件版本备注Windows10操作系统JDK8暂时不要选用大于等于JDK9的版本,因为启动虚拟机会发生未知异常MySQL8.x用于管理Hive的元数据......
  • How to Calculate the size of archive log files each day
    Calculatethesizeofarchivelogfileseachday SQL>SELECTTRUNC(COMPLETION_TIME)ARCHIVED_DATE,      SUM(BLOCKS*BLOCK_SIZE)/1024/1024SIZE_IN_MB   FROMV$ARCHIVED_LOG   GROUPBYTRUNC(COMPLETION_TIME)   ORDERBY1;ARCHI......
  • Hive元数据信息表
    --Hive元数据表1.表信息(1)TBLS--记录数据表信息,可作为左表,关联其他表信息 (2)TABLE_PARAMS—存储Hive表的属性信息 具体数据内容: (3)COLUMNS_V2—保存表的字段信息 2.分区信息(1)PARTITIONS (2)PARTITIONS_PARAMS—分区的参数 参数的值: (3)PARTITION_KEYS—分区字段......