Hadoop習題彙總

你这过氧化氢掺水了發表於2024-06-18

目錄
  • 選擇
    • 單選
    • 多選
  • 判斷
  • 填空
  • 簡答

選擇

單選

檢視HDFS系統版本的Shell命令,以下正確的是()。
hdfs -ver
hdfs version (答案)
dfsadmin version
hadoop -ver

資料儲存單位從小到大排列順序是()
TB、PB、EB、ZB、YB (答案)
TB、YB、ZB、PB、EB
TB、PB、EB、YB、ZB
TB、EB、PB、YB、ZB

假設已經配置好環境變數,啟動Hadoop和關閉Hadoop的命令分別是
start-dfs.sh,stop-dfs.sh (答案)
start-hdfs.sh,stop-hdfs.sh
start-hdfs.sh,stop-dfs.sh
start-dfs.sh,stop-hdfs.sh

Hadoop 可以在單節點上以偽分散式的方式執行,Hadoop 程序以分離的 Java 程序來執行,節點(),同時,讀取的是 HDFS 中的檔案。
只能作為NameNode
既作為 NameNode 也作為 DataNode (答案)
既不能作為 NameNode 也不能作為 DataNode
只能作為DataNode

以下哪個不是hadoop的特性
高容錯性
高可靠性
支援多種程式語言
成本高 (答案)

分散式檔案系統HDFS採用了主從結構模型,由計算機叢集中的多個節點構成的,這些節點分為兩類,一類儲存後設資料叫 ,另一類儲存具體資料叫
從節點,主節點
名稱節點,資料節點 (答案)
名稱節點,主節點
資料節點,名稱節點

採用多副本冗餘儲存的優勢不包含
節約儲存空間 (答案)
容易檢查資料錯誤
保證資料可靠性
加快資料傳輸速度

下列選項中哪一門技術屬於大資料平臺()。
Tomcat
ASP.NET
Apache
Hadoop (答案)

每種大資料產品都有特定的應用場景,以下哪個產品是用於圖計算的:
Storm
Flume
Pregel (答案)
Cassandra

JAVA的String型別對應Hadoop的資料序列化的型別是( )
MapWritable
IntWritable
Text (答案)
ByteWritable

以下哪個不是大資料時代新興的技術:
Spark
MySQL (答案)
HBase
Hadoop

當前大資料技術的基礎是由( )首先提出的。
谷歌 (答案)
阿里巴巴
百度
微軟

在使用MapReduce程式WordCount進行詞頻統計時,對於文字行“hello hadoop hello world”,經過WordCount程式的Map函式處理後直接輸出的中間結果,應該是下面哪種形式:
<"hello",2>、<"hadoop",1>和<"world",1>
<"hello",1>、<"hello",1>、<"hadoop",1>和<"world",1> (答案)
<"hello",1,1>、<"hadoop",1>和<"world",1>
<"hello",<1,1>>、<"hadoop",1>和<"world",1>

所謂( )過程,是指對Map輸出結果進行分割槽、排序、合併等處理,並交給Reduce的過程。
combine
merge
shuffle (答案)

以下關於雲端計算、大資料和物聯網之間的關係,論述錯誤的是:
雲端計算側重於資料分析 (答案)(側重於儲存、處理和分析
物聯網可以藉助於大資料實現海量資料的分析
物聯網可以藉助於雲端計算實現海量資料的儲存
雲端計算、大資料和物聯網三者緊密相關,相輔相成

name為fs.defaultFS的值,表示()。
nameNode的物理名稱
nameNode的邏輯名稱
hdfs路徑的物理名稱
hdfs路徑的邏輯名稱 (答案)

以下對Hadoop的說法錯誤的是
Hadoop是基於Java語言開發的,只支援Java語言程式設計 (答案)
Hadoop MapReduce是針對谷歌MapReduce的開源實現,通常用於大規模資料集的平行計算
Hadoop的核心是HDFS和MapReduce
Hadoop2.0增加了NameNode HA和Wire-compatibility兩個重大特性

HDFS的名稱空間不包含

目錄
位元組 (答案)
檔案

( )就是把記憶體中的物件,轉換成位元組序列(或其他資料傳輸協議)以便於儲存(持久化)和網路傳輸。
反序列化
序列化 (答案)

Hadoop 作者
Kent Beck
Doug cutting (答案)
Martin Fowler

HBase三層結構的順序是
-ROOT-表,Zookeeper檔案,.MEATA.表
Zookeeper檔案,.MEATA.表,-ROOT-表
.MEATA.表,Zookeeper檔案,-ROOT-表
Zookeeper檔案,-ROOT-表,.MEATA.表 (答案)

Hive是建立在__之上的一個資料倉儲()
HBase
mysql
hadoop (答案)
mysql

下面哪種型別是不被Hive查詢語言所支援的()
String
Array
Varchar (答案)
Map

HBase是一種()資料庫
關聯式資料庫
行式資料庫
列式資料庫 (答案)(列族
文件資料庫

NoSQL資料庫的三大理論基石不包括
BASE
ACID (答案)
最終一致性
CAP

Hive 自定義的一些配置一般儲存在(install-dir)/conf/__()
hive-default.xml
hive-lib.xml
hive-site.xml (答案)
hive-core.xml

對於HBase資料庫而言,每個Region的建議最佳大小是
2GB-4GB
100MB-200MB
500MB-1000MB
1GB-2GB (答案)

客戶端是透過()級定址來定位Region



三 (答案)

以下對各類資料庫的理解錯誤的是
HBase資料庫是列族資料庫,可擴充套件性強,支援事務一致性 (答案)
文件資料庫的資料是鬆散的,XML和JSON文件等都可以作為資料儲存在文件資料庫中
圖資料庫靈活性高,支援複雜的圖演算法,可用於構建複雜的關係圖譜
鍵值資料庫的鍵是一個字串物件,值可以是任意型別的資料,比如整型和字元型等



多選

大資料的四種主要計算模式包括:
查詢分析計算 (答案)
批處理計算 (答案)
圖計算 (答案)
流計算 (答案)

所謂Shuffle,是指對Map輸出結果進行( )、( )、( )等處理,並交給Reduce的過程。
合併 (答案)
分割槽 (答案)
序列化
排序 (答案)

大資料帶來思維方式的三個轉變是:
精確而非全面
效率而非精確 (答案)
相關而非因果 (答案)
全樣而非抽樣 (答案)

對Hadoop中JobTacker的工作角色,以下說法正確的是()。
監控CPU執行效率
監控任務執行進度 (答案)
分配任務 (答案)
作業排程 (答案)

HDFS與傳統資料儲存對比,主要特點包含()。
流式的資料訪問 (答案)
適合儲存大量小檔案
適合儲存大量大檔案 (答案)
資料冗餘,硬體容錯 (答案)

雲端計算的典型服務模式包括三種:
PaaS (答案)
SaaS (答案)
IaaS (答案)
MaaS

HADOOP兩大核心是什麼?
Oracle
HDFS (答案)
HBase
MapReduce (答案)

Hadoop核心組成部份包含()
HDFS儲存系統 (答案)
Hive資料倉儲
MapReduce運算框架 (答案)
HBase分散式資料庫

Hadoop生態系統的優勢包含()
低成本 (答案)
大型關聯式資料庫系統
開源工具成熟 (答案)
高擴充套件 (答案)

大資料的資料型別有哪些( )
半結構化資料
非結構化資料 (答案)
以上全不是
結構化資料 (答案)

大資料的特徵
Value(資料價值密度低) (答案)
Velocity(資料產生的速度快) (答案)
Variety(資料型別繁多) (答案)
Volume(資料體量大) (答案)

以下對資料節點理解正確的是
資料節點用來儲存具體的檔案內容 (答案)
資料節點在名稱節點的統一排程下進行資料塊的建立、刪除和複製等操作 (答案)
資料節點通常只有一個
資料節點的資料儲存在磁碟中 (答案)

以下哪些工具屬於Hadoop生態系統的開源工具。()
Hive (答案)
HBase (答案)
Zookerper (答案)
Mysql

HDFS只設定唯一一個名稱節點帶來的侷限性包括
名稱空間的限制 (答案)
隔離問題 (答案)
叢集的可用性 (答案)
效能的瓶頸 (答案)

對HDFS內的檔案進行操作,以下說法正確的是()。
檔案操作命令與Linux相似 (答案)
採用Windows系統對檔案進行操作
不允許對檔案進行列表檢視
HDFS提供了Shell的操作介面 (答案)

HDFS的適用性和侷限性,以下說法正確的是()
不支援多使用者併發寫相同檔案 (答案)
不適合互動式應用,低延遲很難滿足 (答案)
適合一次寫入多次讀取、順序讀寫 (答案)
適合資料批次讀寫、吞吐量高 (答案)

以下對名稱節點理解正確的是
名稱節點通常用來儲存後設資料 (答案)
名稱節點的資料儲存在記憶體中 (答案)
名稱節點用來負責具體使用者資料的儲存
名稱節點作為中心伺服器,負責管理檔案系統的名稱空間及客戶端對檔案的訪問 (答案)

hadoop序列化機制(Writable),特點:
互操作 (答案)
可擴充套件 (答案)
快速 (答案)
緊湊 (答案)

下列哪個是Hadoop 執行的模式
以上全不是
完全分散式 (答案)
單機版 (答案)
偽分散式 (答案)

HDFS中的NameNode節點用於存放後設資料,資料內容包含()。
客戶端硬體配置資料
資料塊與資料節點的對映表 (答案)
每個資料塊的內容
檔案與資料塊的對映表 (答案)

關於Flume的架構中,理解正確的是?
一個channel對應多個sink
一個channel對應一個sink (答案)
一個sink對應一個channel (答案)
一個Source可以對應多個Channel (答案)

關於Hive嵌入模式說法正確的有?
一般用於測試使用 (答案)
只允許建立一個連線 (答案)
一般用於生產環境
後設資料儲存在Derby中 (答案)

HBase和傳統關係型資料庫的區別在於哪些方面:
資料索引 (答案)
可伸縮性 (答案)
儲存模式 (答案)
資料操作 (答案)

zookeeper在kafka中的作用
傳送到topic的資料需要經過zookeeper
kafka使用zookeeper來實現動態的叢集擴充套件 (答案)
kafka的producer、consumer、topic、partition都需要依賴zookeeper
kafka 將後設資料資訊維護在zookeeper上 (答案)

關於Hive的描述正確的是?
Hive可以使用類SQL語句進行查詢 (答案)
Hive可以用來建立資料倉儲 (答案)
Hive低延遲進行查詢
Hive依賴Hadoop (答案)

NoSQL資料庫的BASE特性是指
基本可用 (答案)
軟狀態 (答案)
最終一致性 (答案)
持續性

NoSQL資料庫的型別包括
文件資料庫 (答案)
鍵值資料庫 (答案)
列族資料庫 (答案)
圖資料庫 (答案)

Hive的後設資料能夠儲存在哪些位置?
文字檔案
derby (答案)
oracle (答案)
mysql (答案)

Hive提供了哪些訪問介面來進行查詢?
命令列 (答案)
JDBC/ODBC (答案)
web介面 (答案)
java api (答案)

關於NoSQL資料庫和關聯式資料庫,下列說法正確的是:
大多數NoSQL資料庫很難實現資料完整性 (答案)
NoSQL資料庫可以支援超大規模資料儲存,具有強大的橫向擴充套件能力 (答案)
關聯式資料庫有關係代數理論作為基礎,NoSQL資料庫沒有統一的理論基礎 (答案)
NoSQL資料庫和關聯式資料庫各有優缺點,但隨著NoSQL的發展,終將取代關聯式資料庫

Flume的資料來源有哪些?
syslogtcp (答案)
thrift (答案)
spooldir (答案)
exec (答案)

sqoop連線mysql檢視資料庫和表資訊,都需要做哪些操作?
mysql的lib下,必須有mysql jdbc連線jar包 (答案)
mysql必須可訪問 (答案)
.hadoop相關經常必須啟動
mysql必須啟動 (答案)

Flume中,sink的輸出都有哪些?
elasticsearch (答案)
hdfs (答案)
hbase (答案)
null (答案)

Hive的安裝模式有哪些?
偽分佈模式
本地模式 (答案)
嵌入模式 (答案)
遠端模式 (答案)

Flume中,有哪些channel型別?
file (答案)
僅memory和File
jdbc (答案)
memory (答案)

Hive中HQL語句執行,會經歷哪些過程?
執行器 (答案)
直譯器 (答案)
最佳化器 (答案)
編譯器 (答案)

關於sqoop版本問題,描述正確的有?
sqoop2還不完善盡量選擇sqoop1 (答案)
儘量選擇較為穩定的版本 (答案)
可選擇Sqoop1.4.6 (答案)
越新的越好選擇Sqoop2

以下哪個命令,可以查詢Hive表結構?
describe tableName (答案)
show tables
show table tableName
desc tableName (答案)

Kafka的特性
容錯性 (答案)
高吞吐量、低延遲 (答案)
高併發 (答案)
可擴充套件性、永續性、可靠性 (答案)

下列說法正確的是
HiveQL語法與傳統的SQL語法很相似 (答案)
Hive本身不儲存和處理資料,依賴HDFS儲存資料,依賴MapReduce處理資料 (答案)
Hive、HDFS、HBase等工具可以統一部署在一個Hadoop平臺上 (答案)
資料倉儲Hive不需要藉助於HDFS就可以完成資料的儲存



判斷

sqoop1預設支援將資料從HDFS匯入到mysql()
正確 (答案)
錯誤



填空

Hadoop的創始人
Doug Cutting


同時啟動HDFS和YARN的命令
start-all.sh


Hadoop的執行模式
本地模式,偽分散式,完全分散式


大資料的計算模式和使用工具
批處理:MapReduce
流計算:Storm
圖計算:Pregel
查詢分析計算:Hive


分散式檔案系統是谷歌GFS的開源線上


流計算的框架
storm和spark streaming


Flume中,有哪些channel型別?
memory,file,jdbc



簡答


大資料的定義及特徵
定義:大資料是具有數量巨大,來源多樣,生成極快且多變等特徵,難以用傳統資料體系結構有效處理的包含大量資料集的資料。
特徵:多樣性,速度快,資料量大,價值密度低。


大資料中的資料單位
Byte、KB、MB、GB、TB、PB、EB、ZB、YB、DB、NB


多副本冗餘的優勢
容易檢查資料錯誤
加快資料傳輸速度
保證資料可靠性


HDFS的體系結構
(1)HDFS Client(客戶端)

    1)檔案分割為Block(塊);

    2)與NameNode互動,獲取位置資訊;

    3)與DataNode互動,讀寫操作;

    4)提供管理HDFS的命令;

    5)透過命令訪問HDFS。

(2)DataNode(Slave從節點-執行者)

    1)儲存實際的資料塊;

    2)執行資料塊的讀/寫操作。

(3)NameNode(Master主節點-管理者)

    1)管理HDFS的名稱空間(儲存FsImage和EditLog);

    2)管理資料塊(Block)對映資訊;

    3)配置副本策略;

    4)處理客戶端讀寫請求。

(4)Secondary NameNode(輔助者)

    1)輔助NameNode,分擔其工作量;

    2)定期合併Fsimage和Edits,並推送給NameNode;

    3)在緊急情況下,可輔助恢復NameNode。

資料節點的正確理解
資料節點的資料儲存在磁碟中
資料節點用來儲存具體的檔案內容
資料節點在名稱節點的統一排程下進行資料塊的建立、刪除和複製等操作

資料節點通常只有一個(錯誤)


MapReduce的計算理念
計算向資料靠攏


Hadoop中JobTracker的工作角色
作業排程,分配任務,監控任務執行進度


shuffle的定義,解釋map端的shuffle過程和reduce端的shuffle過程

定義:所謂Shuffle,是指對Map輸出結果進行分割槽、排序、合併等處理,並交給Reduce的過程。

Map端:
①輸入資料和執行Map任務
②寫入快取
③溢寫(分割槽、排序和合並)
④檔案歸併

Reduce端:
①“領取”資料
②歸併資料
③把資料輸入給Reduce任務


非關係型資料庫的分類
鍵值資料庫Redis,列組資料庫Hbase,圖資料庫Neo4j,文件資料庫MongoDB


NoSQL的三大理論基石
CAP,BASE(基本可用,軟狀態,最終一致性),最終一致性


Hbase定址的三層結構及其作用

第一層,Zookeeper檔案,記錄了-ROOT-表的位置資訊
第二層,-ROOT-表,記錄了.META.表的Region位置資訊;-ROOT-表只能有一個Region,絕對不會再進行分裂。透過-ROOT-表,就可以訪問.META.表中的資料
第三層,.META.表,記錄了使用者資料表的Region位置資訊,.META.表可以有多個Region,


Hbase系統架構及其作用
1. 客戶端 •客戶端包含訪問HBase的介面,同時在快取中維護著已經訪問過的Region位置資訊,用來加快後續資料訪問過程
2. Zookeeper伺服器 •Zookeeper可以幫助選舉出一個Master作為叢集的總管,並保證在任何時刻總有唯一一個Master在執行,這就避免了Master的“單點失效”問題。
3. Master •主伺服器Master主要負責表和Region的管理工作: –管理使用者對錶的增加、刪除、修改、查詢等操作 –實現不同Region伺服器之間的負載均衡 –在Region分裂或合併後,負責重新調整Region的分佈 –對發生故障失效的Region伺服器上的Region進行遷移
4. Region伺服器 –Region伺服器是HBase中最核心的模組,負責維護分配給自己的Region,並響應使用者的讀寫請求


Flume,Kafka,Sqoop,Storm四個工具簡介
Flume:分散式日誌收集系統,用於收集、聚合和移動大量日誌資料。
Kafka:高吞吐量的分散式訊息佇列系統,適用於構建實時資料管道和流處理應用。
Sqoop:資料遷移工具,用於在Hadoop和結構化資料儲存之間高效地傳輸資料。
Storm:一個開源、分散式、實時大資料處理框架。


zookeeper在Kafka中的作用
kafka 將後設資料資訊維護在zookeeper上
kafka使用zookeeper來實現動態的叢集擴充套件


Hive的系統架構
1.使用者介面:Client。提供Hive對外訪問的介面。
2.後設資料:Metastore。儲存後設資料包括:表名、表所屬的資料庫(預設是default)、表的擁有者、列/分割槽欄位、表的型別(是否是外部表)、表的資料所在目錄等。
3.Hadoop:使用HDFS進行儲存,使用MapReduce進行計算
4.驅動器:Driver。
(1)解析器(SQL Parser):將SQL字串轉換成抽象語法樹AST。
(2)編譯器(Physical Plan):將AST編譯生成邏輯執行計劃。
(3)最佳化器(Query Optimizer):對邏輯執行計劃進行最佳化。
(4)執行器(Execution):把邏輯執行計劃轉換成可以執行的物理計劃。對於Hive來說,就是MR/Spark。


要編寫MapReduce程式統計每門課程學生平均成績。請寫出MapReduce程式設計思路。學生的成績清單格式如下所示,各欄位意思分別為學號、性別、數學成績、語文成績、計算機成績,每一行代表一個學生的資訊,各欄位之間用空白符隔開。

Mapper階段:
(1)從輸入檔案中讀取每行資料。
(2)每行資料進行分詞,提取課程名稱和成績。
(3)對於每條記錄,透過context.write(key,value)輸出一個鍵值對。鍵是課程名稱,值是該條記錄的成績。
Reducer階段:
(1)接收鍵值對:按照鍵(即課程名稱)進行分組。
(2)計算平均值:對於每個課程名稱分組,Reducer遍歷該組內的所有成績值,計算平均值。這通常涉及到對成績進行累加和計數,然後相除得到平均值。
(3)輸出結果:透過context.write(key,value)輸出一個鍵值對,其中鍵是課程名稱,值是計算得到的平均成績。


按要求寫出以下操作命令
(1)為hadoop使用者在HDFS中建立使用者目錄“/user/hadoop”
(2)在HDFS的目錄“/user/hadoop”下,建立test資料夾,並檢視檔案列表
(3)將Linux系統本地的“~/word.txt”檔案上傳到HDFS的test資料夾中,並檢視test資料夾中word.txt檔案內容
(4)將HDFS資料夾test複製到Linux系統本地檔案系統的“/usr/local/hadoop”目錄下
(5)將HDFS資料夾test中的word.txt檔案許可權修改成只有檔案所有者可讀寫執行,其它使用者不可讀寫執行。

hadoop fs -mkdir -p /user/hadoop
hadoop fs -mkdir /user/hadoop/test
hadoop fs -ls /user/hadoop
hadoop fs -put ~/word.txt /user/hadoop/test
hadoop fs -cat /user/hadoop/test/word.txt
hadoop fs -get /user/hadoop/test /usr/local/hadoop
hadoop fs -chmod 600 /user/hadoop/test/word.txt


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

(1)建立新表,表名:student,列族名:infos
create 'student', 'infos'
(2)向student表中插入以下資料。
put 'student', '20230101', 'infos:name', '張三'
put 'student', '20230101', 'infos:age', '20'
put 'student', '20230102', 'infos:name', '李四'
put 'student', '20230102', 'infos:age', '22'
(3)獲取student表中RowKey="20230101"行的資料。
get 'student', '20230101'
(4)修改student表中RowKey="20230101"行的name為“王五”。
put 'student', '20230101', 'infos:name', '王五'
(5)統計student表有多少行。
count 'student'
(6)獲取student表中所有資料。
scan 'student'
(7)獲取student表中RowKey="20230101"行,name列的資料。
get 'student', '20230101', 'infos:name'
(8)檢視資料庫中有哪些表。
list
(9)修改Student表中的name列名為user。
alter 'student', {NAME=>'infos:name', NEW_NAME=>'infos:user'}
(10)刪除student表。
disable 'student'
drop 'student'


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

(1)建立教師表。
CREATE TABLE teacher (
id STRING,
name STRING,
age INT,
department STRING,
school STRING
)
row format delimited fields terminated by ','
LINES terminated by '\n'
stored as textfile;
(2)向教師表中匯入資料。
LOAD DATA INPATH '/datas/teacher.txt' INTO TABLE teacher;
(3)查詢教師表中的所有資料。
SELECT * FROM teacher;
(4)求教師的平均年齡。
SELECT AVG(age) FROM teacher;
(5)求教師的總人數。
SELECT COUNT(*) FROM teacher;
(6)查詢所有年齡大於30歲的教師資訊。
SELECT * FROM teacher WHERE age > 30;
(7)修改教師表結構,插入新列sex,資料型別boolean。
ALTER TABLE teacher ADD COLUMNS (sex BOOLEAN);
(8)檢視當前資料庫中包含哪些表。
SHOW TABLES;
(9)查詢教師資訊按年齡降序排列。
SELECT * FROM teacher ORDER BY age DESC;
(10)刪除教師表。
DROP TABLE teacher;


相關文章