焚林而猎配置hive时出现不能够加载自个儿改过的

2019-10-23 16:11 来源:未知

认知mysql第三篇,发出的内容相符初大方,即使能循环不断关怀本人的博客,能够圆满的了然mysql的常用知识,后续笔者也会陆陆续续发出python相关的学识,关注笔者,和自个儿一齐进步啊!

配备hive时出现无法加载本人修改的hive-site.xml等配备文件的标题。发掘它连接加载暗中认可的布置文件。
解决:
hadoop的布置文件hadoop-env.sh中加上export HADOOP_CLASSPATH=$HIVE_HOVE/conf:$HADOOP_CLASSPATH
再有四个主题材料:运维其余hadoop子项目时总会并发找不到类公事,必需把相关jar包拷贝到hadoop的lib目录下,导致其lib目录会愈加大。
于今不掌握怎样将别的jar包参加到classpath中,互连网说用export HADOOP_CLASSPATH=“”,可是好像特别
hive --config /root/etc/hive(注:/root/etc/hive是指hive-site.xml的寄存目录)

1、SQL查询
  1、施行各样
    3、select ...聚合函数 from 表名
      1、where ...
      2、group by ...
      4、having ...
      5、order by ...
      6、limit ...
  2、group by
    1、效用 :给查询结果进行分组
    2、示例
      1、查询表中计算有多少个国家

HiveQL以分行甘休。能够跨行。
在hive的shell上能够行使dfs命令实施HDFS文件操作。
dfs -ls /user/hive/warehouse;

      2、总结各国的平分攻击力
      select country,avg(gongji) from sanguo
      group by country;
    3、查找全部国家中身经百战数量最多的前2名的 国家名称和敢于数量
      select country,count(id) as number from sanguo
      group by country
      order by number desc
      limit 2;
3、注意
  1、group by之后的字段名应当要为select之后的字段名
  2、假设select之后的字段名和group by之后的字段不等同,则必得对该字段进行联谊管理(聚合函数)
  3、having语句
1、作用
对查询的结果实行进一步挑选
2、示例
  1、找寻平均攻击力>105的国家的前2名,突显国家名和平均攻击力
  select country,avg(gongji) as pjgj from sanguo
  group by country
  having pjgj>105
  order by pjgj DESC
  limit 2;
3、注意
  1、having语句平时和group by语句联合利用,过滤由group by语句重临的记录集
  2、where只可以操作表中实际存在字段,having可操作由聚合函数生成的显得列
4、distinct
  1、功用 :不出示字段重复值
  2、示例
1、表中都有哪些国家
  select distinct country from sanguo;
2、总计南齐旭日东升共有稍微个大胆
  select count(distinct id) from sanguo
  where country="蜀国";
3、注意
  1、distinct和from之间具备字段都如火如荼致才会去重
  2、distinct不能够对别的字段做聚合管理
5、查询表记录时做数学生运动算
1、运算符
  + - * / %
2、示例
1、查询时全数勇于攻击力翻倍
select id,name,gongji*2 as gj from sanguo;

hive语句必需以分集团“;”结束。
不帮助立异,索引和事情。
表名,列名不区分朗朗上口写。
在hive的shell上能够运用dfs命令施行HDFS文件的操作。>>dfs -ls /user/hive/warehouse/;
查阅和装置不时变量:>>set fs.default.name[=hdfs://zhaoxiang:9000];
导入jar包: >>add jar hivejar.jar;
制造函数: >>create temporary function udfTest as 'com.cstore.udfExample';
【在pig中接受UDF,先用register语句注册jar文件,之后可以经过一丝一毫的java类名调用,恐怕用define语句为UDFding 内定一个称呼:
register pigjar.jar;
define UPPER org.pigjar.string.UPPER();
B = foreach a generate UPPER($0); 】

## sudo apt-get install python3-pip
## sudo pip3 install pymysql
2、约束
  1、成效 :保障数据的完整性、后生可畏致性、有效性
2、节制分类
  1、暗中认可约束(default)
  1、插入记录,不给该字段赋值,则应用私下认可值
2、非空节制(not NULL)
  1、不允许该字段的值有NULL记录
  sex enum("M","F","S") not null defalut "S"

能够在本地命令行运维hive的shell:
$ hive -e 'select * from userinfo' (执行hiveQL语句)
$ hive --config /hive-0.9.0/conf (重新载入新的安排文件)
$ hive --service hiveserver 50000(运营服务)

3、索引
  1、定义
  对数据库表的一列或多列的值举行排序的风流罗曼蒂克种结构(Btree格局)
  2、优点
  加速数据检索速度
3、缺点
  1、占用物理存款和储蓄空间
  2、当对表中数量更新时,索引需求动态维护,减少数据爱抚速度
4、索引示例
  1、开启运行时刻质量评定 :set profiling=1;
  2、施行查询语句
  select name from t1 where name="lucy99999";
3、查看实行时间
  show profiles;
4、在name字段成立索引
  create index name on t1(name);
5、再试行查询语句
  select name from t1 where name="lucy88888";
6、查看推行时间
  show profiles;
5、索引
1、普通索引(index)
1、使用准则
1、可安装三个字段
2、字段值无束缚
3、key标志 :MUL
2、创建index
1、创设表时
  create table 表名(...
  index(字段名),index(字段名));
2、已有表
  create index 索引名 on 表名(字段名);
  create index name on t3(name);
3、查看索引
  1、desc 表名; --> KEY标志为:MUL
  2、show index from 表名G;
  4、删除索引
  drop index 索引名 on 表名;
2、独一索引(unique)
  1、使用准则
    1、可安装多少个字段
    2、约束 :字段值分歧意再一次,但可为 NULL
    3、KEY标志 :UNI
    2、创建
    1、创制表时创办
    unique(字段名),
    unique(字段名)
2、已有表
  create unique index 索引名 on 表名(字段名);
3、查看、删除 同普通索引
3、主键索引(primary key)
自增加属性(auto_increment,协作主键一同行使)
1、使用准绳
1、只好有一个主键字段
2、节制 :分化意再一次,且不可能为NULL
3、KEY标志 :PRI
4、常常设置记录编号字段id,能唯豆蔻梢头锁定一条记下
2、创建
1、成立表时
  (id int primary key auto_increment,
  )auto_increment=10000;##设置自拉长起先值
原来就有表增多自拉长属性:
  alter table 表名 modify id int auto_increment;
原来就有表重新钦赐初阶值:
  alter table 表名 auto_increment=20000;
2、已有表
  alter table 表名 add primary key(id);
3、删除
1、删除自拉长属性(modify)
  alter table 表名 modify id int;
2、删除主键索引
  alter table 表名 drop primary key;
4、外键索引
4、数据导入
1、效率 :把文件系统的颠末导入到数据库中
2、语法
load data infile "/var/lib/mysql-files/文件名"
into table 表名
fields terminated by "分隔符"
lines terminated by "n";
3、将scoretable.csv文件导入到数据库的表中
1、在数据库中开创对应的表
create table scoretab(
id int,
name varchar(15),
score float(5,2),
number bigint,
class char(7)
);
2、把文件拷贝到数据库的暗中认可搜索路线中
1、查看暗中同意搜索路线
  show variables like "secure_file_priv";
  /var/lib/mysql-files/
2、拷贝文件
  sudo cp ~/scoretable.csv /var/lib/mysql-files/
3、施行多少导入语句
load data infile "/var/lib/mysql-files/scoretable.csv"
into table scoretab
fields terminated by ","
lines terminated by "n";
4、文件权限
rwxrw-rw- 1 tarena tarena scoretable.csv
所有者 所属组
rwx : tarena用户
rw- : 同组其余客商
rw- : 别的组的别的顾客(mysql客户)

create table cite(citing int, cited int) row format delimited fields terminated by ',' stored as textfile; //sequencefle

r -> 4
w -> 2
x -> 1
chmod 644 文件名 rw-r--r--
5、Excel表格怎样转变为CSV文件
1、张开Excel文件 -> 另存为 -> CSV(逗号分隔)
6、改善文件编码格式
1、用记事本/编辑器 打开,文件->另存为->选拔编码
5、数据导出
1、作用
将数据库中表的记录导出到系统文件里
2、语法格式
select ... from 表名
into outfile "/var/lib/mysql-files/文件名"
fields terminated by "分隔符"
lines terminated by "n";
3、把MOSHOU库下的sanguo表英雄的全名、攻击值、国家导出来,sanguo.txt
select name,gongji,country from MOSHOU.sanguo
into outfile "/var/lib/mysql-files/sanguo.txt"
fields terminated by " "
lines terminated by "n";
$ sudo -i
$ cd /var/lib/mysql-files/
$ ls
$ cat sanguo.txt
4、将mysql库下的user表中 user、host三个字段的值导出到 user.txt
select user,host from mysql.user
into outfile "/var/lib/mysql-files/user.txt"
fields terminated by " "
lines terminated by "n";

load data (local) inpath 'cite75_99.txt' overwrite into table cite;//若不加local则默以为HDFS路线

本节完!

select * from cite limit 10;

show tables;
describe cite;

select count(1)/count() from cite; //count(1)相当于SQL中的count()

create table cite_count (cited int, count int);

insert overwrite table cite_count select cited , count(citing) from cite group by cited;

select * from cite_count where count > 10 limit 10;

drop table cite_count;

create table page_view(viewTime int, userid bigint,
page_url string, referrer_url string,
ip string comment 'ip address of user')
comment 'this id the page view table'
partitioned by (dt string, country string)//注意table中的列无法和partition中的列重合
clustered by (userid) into 32 buckets //桶
row format delimited
fields terminated by ','
collection items terminated by '02'
map keys terminated by '03'
lines terminated by 'n'
stored as textfile;

//取样
select avg(viewTime) from page_view tablesample(bucket 1 out of 3 [on id]);

//创制外界表,钦点目录地点,删除却界表时会删除元数据,表中的数目需手动删除
create external table page_view(viewTime int, userid bigint,
page_url string, referrer_url string,
ip string comment 'ip address of user')
location 'path/to/existing/table/in/HDFS';
//修改表
alter table page_view rename to pv;
alter table pv add columns (newcol string);
alter table pv drop partition (dt='2009-09-01');

show tables 'page_.*';

load data local inpath 'page_view.txt'
overwrite into table page_view
partition (dt='2009-09-01',country='US');

在hive的shell上实行unix命令:命令前加感叹号(!),命令尾加分号(;).
hive> ! ls ;
hive> ! head hive_result;

//施行查询:
insert overwrite table query-result; //eg: insert overwrite table query_result select * from page_view where country='US';
insert overwrite (local) directory '/hdfs-dir(local-dir)/query_result' query;
select country , count(distinct userid) from page_view group by countey;

//子查询,只能在from子句中出现子查询
select teacher, max(class-num) from
(select teacher, count(classname) as class-num from classinfo group by teacher)subquery
group by teacher;

//连接
select pv., choice., f.friends from page_view pv
join user u on (pv.userid=u.id)
join friends-list f on (u.id=f.uid);

//多表插入
create table mutil1 as select id, name from userinfo;
create table mutil2 like mutil1;
from userinfo insert overwrite table mutil1 select id, name
insert overwrite table mutil2 select count(distint id),name group by name;

//创立视图
create view teacher_classnum as select teacher, count(classname) from classinfo group by teacher;

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于数据库管理,转载请注明出处:焚林而猎配置hive时出现不能够加载自个儿改过的