溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop的相關(guān)資料

發(fā)布時間:2020-07-03 16:19:25 來源:網(wǎng)絡(luò) 閱讀:1713 作者:tanzhenchao 欄目:數(shù)據(jù)庫

1 HDFS

1.1 概念

Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計成適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)

1.2 特點

- 高度容錯性

- 硬件要求低

- 能提供高吞吐量的數(shù)據(jù)訪問

1.3 文件系統(tǒng)命令行

1.3.1 獲取幫助

hadoop fs -help

1.3.2 ls命令

hadoop fs -ls /
hadoop fs -ls -R /user

1.3.3 getconf命令

 hdfs getconf -help
hdfs getconf -namenodes

1.3.4 版本信息

hdfs version

注:由于與linux系統(tǒng)指令用法接近,詳細(xì)請參閱文后的官方鏈接。

2 MapReduce

2.1 MapReduce的簡介

MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。

2.2 工作原理

假若一個盤子中有黑豆、黃豆、綠豆、紅豆,你現(xiàn)在想挑出其中的紅豆。

MapReduce方法則是:

step1 找一個團(tuán)隊來處理(相當(dāng)于一群服務(wù)器組成的集群)

step2 把豆子平均分配給團(tuán)隊里的每成員(相當(dāng)于給群集中的服務(wù)器分配數(shù)據(jù))

step3 讓團(tuán)隊的成員開始挑選出其中的紅豆(相當(dāng)于群集的計算機(jī)并行地處理數(shù)據(jù))

step4 把團(tuán)隊成員挑出來的豆子匯聚(相當(dāng)于群集匯總并輸出結(jié)果)

3 Hive

3.1 Hive的簡介

3.1.1 概念

Hive是一個基于Hadoop的數(shù)據(jù)倉庫平臺。

3.1.2 Hive的作用

通過hive,我們可以方便地進(jìn)行ETL的工作

hive定義了一個類似于SQL的查詢語言

HQL能夠?qū)⒂脩艟帉懙腝L轉(zhuǎn)化為相應(yīng)的Mapreduce程序基于Hadoop執(zhí)行

3.1.3 Hive項目的歷史

Hive是Facebook 2008年8月剛開源的一個數(shù)據(jù)倉庫框架,其系統(tǒng)目標(biāo)與Pig有相似之處,但它有一些Pig目前還不支持的機(jī)制。

比如:更豐富的類型系統(tǒng)、更類似SQL的查詢語言、Table/Partition元數(shù)據(jù)的持久化等。

4 impala

4.1 Impala的簡介

Impala 是 Cloudera 在受到 Google 的 Dremel 啟發(fā)下開發(fā)的實時交互 SQL 大數(shù)據(jù)查詢工具,Impala 沒有再使用緩慢的 Hive+MapReduce 批處理,而是通過使用與商用并行關(guān)系數(shù)據(jù)庫中類似的分布式查詢引擎(由 Query Planner、Query Coordinator 和 Query Exec Engine 三部分組成),可以直接從 HDFS 或 HBase 中用 SELECT、JOIN 和統(tǒng)計函數(shù)查詢數(shù)據(jù),從而大大降低了延遲。

4.2 Impala的shell

4.2.1 啟動shell

impala-shell

4.2.2 版本查詢

select version();

4.3 庫的操作

4.3.1 查詢數(shù)據(jù)庫

show databases;

4.3.2 創(chuàng)建數(shù)據(jù)庫

create database testdb;
create database testdb2;

數(shù)據(jù)庫存儲路徑:

hdfs dfs -ls /user/hive/warehouse/

4.3.3 使用數(shù)據(jù)庫

use testdb;

4.3.4 顯示當(dāng)前數(shù)據(jù)庫

select current_database();

4.3.5 刪除數(shù)據(jù)庫

drop database testdb;

4.4 表操

4.4.1 創(chuàng)建表

create table t1 (x int);
create table t3 (id int, word string);
create table city (id int,name string,countrycode string,district string,population int);

4.4.2 顯示數(shù)據(jù)庫中的表

show tables;
show tables in testdb;
show tables in testdb like 't*';

4.4.3 表結(jié)構(gòu)描述

 describe city;

4.4.4 修改表名稱

alter table t3 rename to t2;

4.4.5 插入數(shù)據(jù)

insert into t1 values (1),(3),(2),(4);
insert into t2 values (1, "one"), (3, "three"), (5, 'five');

4.4.6 數(shù)據(jù)查詢

select min(x), max(x), sum(x), avg(x) from t1;
select word from t1 join t2 on (t1.x = t2.id);

5 sentry

5.1 開啟權(quán)限

5.1.1 開啟權(quán)限

Hive/Impala > Configuration > Service-Wide > Sentry Service > 選擇“sentry”

5.1.2 指定認(rèn)證服務(wù)器

Hive > Configuration > Service-Wide > Advanced > Server Name for Sentry Authorization(hive.sentry.server) > 填寫sentry服務(wù)器名稱或IP地址

5.1.3 設(shè)置特權(quán)用戶

Hive > Configuration > Service-Wide > Security > Bypass Sentry Authorization Users(sentry.metastore.service.users) > 填寫繞過的linux用戶名(hive,impala,hue,hdfs等)

5.1.4 配置Hive的代理用戶

HDFS > Configuration > Service-Wide > Proxy > Hive Proxy User Groups(hadoop.proxyuser.hive.groups) > 填寫代理的linux用戶名(hive,impala,hue,hdfs等)

5.1.5 重啟服務(wù)

重啟Hive/Impala的服務(wù)

5.2 授權(quán)

5.2.1 創(chuàng)建數(shù)據(jù)庫用戶和組

groupadd gp1
useradd user1 -G gp1
useradd user2 -G gp1

5.2.2 切換執(zhí)行用

su - impala

5.2.3 創(chuàng)建數(shù)據(jù)庫

切換到hive shell

hive

新建庫

create database testdb;

退出hive shell

quit;

5.2.4 創(chuàng)建角色

切換到impala shell

impala-shell

創(chuàng)建角色

create role ro1;

5.2.5 確認(rèn)創(chuàng)建的角色

show roles;

5.2.6 用戶組和角色的關(guān)聯(lián)

grant role ro1 to group gp1;

5.2.7 角色授權(quán)

grant all on database testdb to role ro1;

參閱資料:

==================================================

Docs:

----------------

http://hadoop.apache.org/docs/current/


Hadoop Common Guide:

---------------------

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html

File System Shell Guide:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#Overview


MapReduce Common Guide:

------------------------

http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapredCommands.html


Hive Docs

-------------------------

http://hive.apache.org

LanguageManual:

https://cwiki.apache.org/confluence/display/Hive/LanguageManual

GettingStarted:

https://cwiki.apache.org/confluence/display/Hive/GettingStarted

User Documentation:

https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation


Impala Docs

--------------------------

Impala SQL

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/impala_langref_sql.html#langref_sql

Impala Tutorials

http://www.cloudera.com/documentation/enterprise/latest/topics/impala_tutorial.html

Impala Explore

http://www.cloudera.com/documentation/enterprise/latest/topics/impala_tutorial.html#tutorial_explore


Sentry Docs

----------------------------------

Overview of Impala Security

http://www.cloudera.com/documentation/enterprise/5-7-x/topics/impala_security.html#security

Enabling Sentry Authorization for Impala

http://www.cloudera.com/documentation/enterprise/5-7-x/topics/impala_authorization.html#authorization

Impala Grant

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/impala_grant.html#grant

Hive Grant

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/sg_hive_sql.html#concept_c2q_4qx_p4__col_level_auth_sentry

Disabling Hive CLI

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/sg_sentry_overview.html


======================================

其他參考:

======================================

ETL的概念:

----------

http://www.cnblogs.com/elaron/archive/2012/04/09/2438372.html


Apache Sentry架構(gòu)介紹

http://blog.javachen.com/2015/04/29/apache-sentry-architecture.html


啟用Kerberos認(rèn)證

http://www.cloudera.com/documentation/enterprise/latest/topics/cm_sg_intro_kerb.html#xd_583c10bfdbd326ba--6eed2fb8-14349d04bee--76dd


Impala的架構(gòu)介紹

http://www.mutouxiaogui.cn/blog/?p=319


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI