跳至主要內容
MapReduce平均数计算

1、建立三个文档

image-20201206121627187
image-20201206121627187
image-20201206121650739
image-20201206121650739

zheng小于 1 分钟大数据hadoop
HBASE shell操作(2)

a.创建学生成绩表,结果如下。

Rowkey:id

列族:info和course,course包括3个版本数据

b.插入数据

数据包括

学生学号 Info course
name age sex address Chinese math english
95001 Jom 20 山东省济南市 80 85 89
95002 Tom 19 山东省济南市 55,60 80 71
95003 Lily 20 北京市 65

zheng大约 2 分钟大数据hadoop
HDFS shell操作(1)

1、创建一个HDFS目录

命令:hdfs dfs -mkdir -p /usr/local/hadoop/data/txtdir

截图:image-20201206115218466

2、本地文件上传到HDFS

本地创建文件a.txt,b.txt,c.txt上传到HDFS /usr/local/hadoop/data/txtdir

命令:echo “I am student” > a.txt


zheng小于 1 分钟大数据hadoop
ElasticSearch客户端

以下为springboot整合elasticsearch

es版本为7.2.1

1、先引入es的依赖

  <!-- ES  -->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client-sniffer</artifactId>
            <version>7.2.1</version>
        </dependency>

zheng大约 2 分钟大数据es
ElasticSearch近实时性介绍
	Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

	Elasticsearch 是一款功能强大的分布式搜索引擎,支持近实时的存储、搜索数据。

	Elasticsearch和磁盘之间是文件系统缓存,在内存索引缓冲区中的文档  会被写入到一个新的段中 ,但是这里新段会被先写入到文件系统缓存,这一步代价会比较低,稍后再被刷新到磁盘—这一步代价比较高。不过只要文件已经在缓存中, 就可以像其它文件一样被打开和读取了。

zheng大约 2 分钟大数据es
Hive调优

一、使用EXPLAIN

	查看逻辑,更多用 EXPLAIN EXTENDED

二、限制调整LIMIT

三、JOIN优化

	表足够小用map-side JOIN

四、本地模式

对于小数据集,单机或单线程执行时间比较短
hive> set oldjobtracker=${hiveconf.mapred.job.tracker};
hive> set mapred.job.tracker=local;
hive> set mapred.tmp.dir=/home/edward/tmp
hive> SELECT * from people WHERE firstname=bob;
hive> set mapred.job.tracker=${oldjobtracker};

zheng小于 1 分钟大数据hive
Hive模式设计

一、分区

Hive 中分区的功能是非常有用的。因为通常要对输入进行全盘扫描,来满足查询条件。

如:存储日志,log_2020_01_01、log_2020_01_02等

hive> CREATE TABLE 

hive> CREATE TABLE log_2020_01_01 (id int, part string, quantity int);
hive> CREATE TABLE log_2020_01_02 (id int, part string, quantity int);
hive> CREATE TABLE log_2020_01_04 (id int, part string, quantity int);

hive> SELECT part,quantity log_2020_01_01
    > UNION ALL
    > SELECT part,quantity from log_2020_01_04
    > WHERE quantity < 4;

zheng大约 3 分钟大数据hive
Hive索引
	Hive没有键的概念,可以对一些字段建立索引来加速某些操作,一张表的索引储存在另外一张表中。EXPLAIN命令可以查看某个查询语句是否用到了索引。

一、建索引语法

// 定义表
CREATE TABLE employees(
name STRING,
salary FLOAT,
subordinates ARRAY<STRING>,
deductions MAP<STRING, FLOAT>,
address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
)
PARTITIONED BY (country STRING, state STRING); // 分区:hdfs://xxx/2020/02/20/xx

// 建立索引,仅对字段country建立索引 
CREATE INDEX employees_index
ON TABLE employees(country)
// AS ... 指定索引处理器
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'
WITH DEFERRED REBUILD
IDXPROPERTIES('creator' = 'me', 'created_at' = 'some_time')
IN TABLE employees_index_table
PARTITIONED BY (country, name)
COMMENT 'Employees indexed by country and name.'

zheng大约 1 分钟大数据hive
HiveQL视图
	视图可以允许保存一个查询(并)像对待表一样对这个查询进行操作。(这是一个逻辑结构,因为它不像一个表会存储数据。

一、使用视图来降低查询复杂度

当查询长且复杂,通过使用视图将这个查询语句分割成多个小的、更可控的片段可以降低这种复杂度。

例如:

改进前:Hive 查询语句中含有多层嵌套

FROM(
	SELECT * FROM people JOIN cart ON (cart.people_id=people.id) WHERE firstname='john'
) a SELECT a.lastname WHERE a.id=3;

zheng大约 2 分钟大数据hive
Hive数据操作(3)

一、类型转换

	(1)cast() 函数,可以使用这个函数对指定的值进行显式的类型转换。

例如:

// 当salary字段的值是不合法的浮点数字符串的话,Hive会返回NULL
SELECT name, salary FROM employees WHERE cast(salary AS FLOAT) < 100000.0;

zheng大约 2 分钟大数据hive
2
3