nodes on other nodes. The JobTracker receives heartbeats from
TaskTrackers. If a TaskTracker fails to communicate with the
JobTracker for a preset period of time, TaskTracker expiry interval,
the JobTracker assumes failure and schedules all map/reduce tasks
of the failed node on other TaskTrackers. This approach is different
from most parallel databases which abort unfinished queries upon a
node failure and restart the entire query processing (using a replica
node instead of the failed node).
By inheriting the scheduling and job tracking features of
Hadoop, HadoopDB yields similar fault-tolerance and straggler
handling properties as Hadoop.
To test the effectiveness of HadoopDB in failure-prone and heterogeneous
environments in comparison to Hadoop and Vertica,
we executed the aggregation query with 2000 groups (see Section
6.2.4) on a 10-node cluster and set the replication factor to two for
all systems. For Hadoop and HadoopDB we set the TaskTracker
expiry interval to 60 seconds. The following lists system-specific
settings for the experiments.
Hadoop (Hive): HDFS managed the replication of data. HDFS
replicated each block of data on a different node selected uniformly
at random.
HadoopDB (SMS): As described in Section 6, each node contains
twenty 1GB-chunks of the UserVisits table. Each of these
20 chunks was replicated on a different node selected at random.
Vertica: In Vertica, replication is achieved by keeping an extra copy
of every table segment. Each table is hash partitioned across the
nodes and a backup copy is assigned to another node based on a
replication rule. On node failure, this backup copy is used until the
lost segment is rebuilt.
For fault-tolerance tests, we terminated a node at 50% query
completion. For Hadoop and HadoopDB, this is equivalent to failing
a node when 50% of the scheduled Map tasks are done. For
Vertica, this is equivalent to failing a node after 50% of the average
query completion time for the given query.
To measure percentage increase in query time in heterogeneous
environments, we slow down a node by running an I/O-intensive
background job that randomly seeks values from a large file and
frequently clears OS caches. This file is located on the same disk
where data for each system is stored.
We observed no differences in percentage slowdown between
HadoopDB with or without SMS and between Hadoop with or without
Hive. Therefore, we only report results of HadoopDB with SMS
and Hadoop with Hive and refer to both systems as HadoopDB and
Hadoop from now on.
The results of the experiments are shown in Fig. 11. Node failure
caused HadoopDB and Hadoop to have smaller slowdowns than
Vertica. Vertica’s increase in total query execution time is due to
the overhead associated with query abortion and complete restart.
In both HadoopDB and Hadoop, the tasks of the failed node are
distributed over the remaining available nodes that contain replicas
of the data. HadoopDB slightly outperforms Hadoop. In Hadoop
TaskTrackers assigned blocks not local to them will copy the data
first (from a replica) before processing. In HadoopDB, however,
processing is pushed into the (replica) database. Since the number
of records returned after query processing is less than the raw size of
data, HadoopDB does not experience Hadoop’s network overhead
on node failure.
In an environment where one node is extremely slow, HadoopDB
and Hadoop experience less than 30% increase in total query execution
time, while Vertica experiences more than a 170% increase
in query running time. Vertica waits for the straggler node to complete
processing. HadoopDB and Hadoop run speculative tasks on
TaskTrackers that completed their tasks. Since the data is chunked
(HadoopDB has 1GB chunks, Hadoop has 256MB blocks), multiple
TaskTrackers concurrently process different replicas of unprocessed
blocks assigned to the straggler. Thus, the delay due to processing
those blocks is distributed across the cluster.
In our experiments, we discovered an assumption made by
Hadoop’s task scheduler that contradicts the HadoopDB model.
In Hadoop, TaskTrackers will copy data not local to them from
the straggler or the replica. HadoopDB, however, does not move
PostgreSQL chunks to new nodes. Instead, the TaskTracker of the
redundant task connects to either the straggler’s database or the
replica’s database. If the TaskTracker connects to the straggler’s
database, the straggler needs to concurrently process an additional
query leading to further slowdown. Therefore, the same feature
that causes HadoopDB to have slightly better fault tolerance
than Hadoop, causes a slightly higher percentage slow down in
heterogeneous environments for HadoopDB. We plan to modify
the current task scheduler implementation to provide hints to
speculative TaskTrackers to avoid connecting to a straggler node
and to connect to replicas instead.
7.1 Discussion
It should be pointed out that although Vertica’s percentage
slowdown was larger than Hadoop and HadoopDB, its total query
time (even with the failure or the slow node) was still lower than
Hadoop or HadoopDB. Furthermore, Vertica’s performance in the
absence of failures is an order of magnitude faster than Hadoop and
HadoopDB (mostly because its column-oriented layout of data is a
big win for the small aggregation query). This order of magnitude
of performance could be translated to the same performance as
Hadoop and HadoopDB, but using an order of magnitude fewer
nodes. Hence, failures and slow nodes become less likely for
Vertica than for Hadoop and HadoopDB. Furthermore, eBay’s
6.5 petabyte database (perhaps the largest known data warehouse
worldwide as of June 2009) [4] uses only 96 nodes in a sharednothing
cluster. Failures are still reasonably rare at fewer than 100
nodes.
We argue that in the future, 1000-node clusters will be commonplace
for production database deployments, and 10,000-node
clusters will not be unusual. There are three trends that support
this prediction. First, data production continues to grow faster than
Moore’s law (see Section 1). Second, it is becoming clear that
from both a price/performance and (an increasingly important)
power/performance perspective, many low-cost, low-power servers
are far better than fewer heavy-weight servers [14]. Third, there
โหนดที่โหนดอื่น ๆ ได้รับการ jobtracker Heartbeats จาก
tasktrackers . ถ้า tasktracker ล้มเหลวที่จะสื่อสารกับ
jobtracker ในช่วงเวลาที่ตั้งไว้ล่วงหน้าของเวลา tasktracker หมดอายุช่วง
jobtracker ถือว่าความล้มเหลวและตารางเวลาทั้งหมดแผนที่ / ลดงาน
ของโหนดใน tasktrackers ล้มเหลวอื่น ๆ วิธีการนี้จะแตกต่างจากส่วนใหญ่ขนาน
ฐานข้อมูลซึ่งยกเลิกแบบสอบถามเสร็จเมื่อ
ความล้มเหลวของโหนดและเริ่มต้นการประมวลผลแบบสอบถามทั้งหมด ( โดยใช้แบบจําลอง
ปมแทนที่จะล้มเหลวโหนด ) .
โดยรับจัดงานและติดตามคุณสมบัติของ
Hadoop hadoopdb ผลผลิต , ความอดทนความผิดคล้ายกัน และคนล้าหลัง
การจัดการคุณสมบัติเป็น Hadoop .
เพื่อทดสอบประสิทธิภาพของ hadoopdb ในความล้มเหลวมักจะแตกต่างกัน
และสภาพแวดล้อมในการเปรียบเทียบ และ Hadoop ฐาน
,เราจัดการกับการสอบถามกลุ่ม 2000 ( ดูมาตรา
6.2.4 ) ในกลุ่ม 10 โหนดและปัจจัยที่สองสำหรับการตั้งค่า
ทุกระบบ และสำหรับ Hadoop hadoopdb เราตั้ง tasktracker
หมดอายุช่วง 60 วินาที รายชื่อระบบเฉพาะ
การตั้งค่าการทดลอง
Hadoop ( รังผึ้ง ) : hdfs จัดการการจำลองแบบของข้อมูล hdfs
ซ้ำแต่ละบล็อกของข้อมูลในโหนดที่แตกต่างกันโดยการสุ่มเลือก
.
hadoopdb ( SMS ) : ตามที่ระบุไว้ในมาตรา 6 , แต่ละโหนดประกอบด้วย
ยี่สิบ 1GB chunks ของ uservisits ตาราง แต่ละเหล่านี้
20 ชิ้น เป็นจำนวนที่แตกต่างกันของโหนดที่เลือกแบบสุ่ม
ฐาน : ในฐาน การจําลองแบบได้โดยรักษาสำเนาพิเศษ
ของตารางทุกเซ็กเมนต์แต่ละตาราง hash พาร์ติชันข้าม
โหนดและสำเนาสำรองจะถูกมอบหมายไปยังอีกโหนดตาม
ซ้ำกฎ ในต่อมความล้มเหลวนี้รองไว้ใช้จนกว่าจะหาย ส่วนจะสร้างใหม่
.
สำหรับการทดสอบความอดทนความผิดเรายุติปมที่สมบูรณ์สอบถาม
50% และสำหรับ Hadoop hadoopdb นี้จะเทียบเท่ากับความล้มเหลว
โหนดเมื่อ 50% ของราคางาน กำหนดเสร็จ ฐานสำหรับ
,นี้จะเทียบเท่ากับความล้มเหลวโหนดหลัง 50% ของจำนวนแบบสอบถามเพื่อให้เสร็จทัน
สอบถาม เพื่อวัดเปอร์เซ็นต์เพิ่มในแบบสอบถามเวลาในสภาพแวดล้อมที่แตกต่างกัน
เราช้าลงโหนด โดยวิ่งเป็น I / o-intensive
พื้นหลังงานที่สุ่มและค่าจากไฟล์ขนาดใหญ่และ
บ่อยล้าง OS แคช . ไฟล์นี้จะอยู่ในดิสก์เดิมที่ข้อมูล
แต่ละระบบจะถูกเก็บไว้เราพบว่าไม่มีความแตกต่างในอัตราระหว่างร้อยละ
hadoopdb ที่มีหรือไม่มี SMS และระหว่าง Hadoop กับหรือไม่
รังผึ้ง ดังนั้น เราจะรายงานผล hadoopdb กับ SMS
Hadoop กับรังและหมายถึงระบบทั้ง hadoopdb Hadoop และ
จาก ผลการทดลองแสดงในรูปที่ 11 ต่อมความล้มเหลว
ทำให้ hadoopdb Hadoop จะชะลอตัวและมีขนาดเล็กกว่า
ฐาน .ฐานเพิ่มในแบบสอบถามเวลาประหารทั้งหมด เนื่องจากค่าใช้จ่ายที่เกี่ยวข้องกับการทำแท้ง
สอบถามและให้เริ่มต้นใหม่ ทั้งในและ hadoopdb Hadoop งานของโหนดล้มเหลว
แจกที่เหลือของโหนดที่ประกอบด้วยแบบจำลอง
ของข้อมูล hadoopdb เล็กน้อยโปรย Hadoop . ใน Hadoop
tasktrackers มอบหมายบล็อกไม่ท้องถิ่นเพื่อพวกเขาจะคัดลอกข้อมูล
แรก ( จำลอง ) ก่อนการประมวลผล ใน hadoopdb , อย่างไรก็ตาม ,
การประมวลผลถูกดันเข้าไปใน ( Replica ) ฐานข้อมูล ตั้งแต่หมายเลข
บันทึกกลับมาหลังจากการประมวลผลแบบสอบถามน้อยกว่าขนาดดิบของ
ข้อมูล hadoopdb ไม่พบ Hadoop เป็นค่าใช้จ่ายในความล้มเหลวโหนดเครือข่าย
.
ในสภาพแวดล้อมหนึ่งโหนดจะช้ามาก hadoopdb
,และประสบการณ์ Hadoop น้อยกว่า 30% เพิ่มแบบสอบถามเวลาปฏิบัติการ
รวม ในขณะที่ฐานประสบการณ์มากกว่า 170 เพิ่มขึ้น
ในแบบสอบถามใช้เวลา เวอร์ทิคารอให้คนล้าหลังโหนดที่จะเสร็จสมบูรณ์
การประมวลผล hadoopdb Hadoop และวิ่งงานเก็งกำไรบน
tasktrackers ที่เสร็จงานของพวกเขา เนื่องจากเป็นข้อมูล chunked
( hadoopdb มีชิ้น , 1GB Hadoop มีบล็อกหลาย
256MB )tasktrackers โดยกระบวนการแบบจําลองที่แตกต่างกันของ
บล็อกยังไม่ได้มอบหมายให้หลงทาง . ดังนั้น ความล่าช้าเนื่องจากการประมวลผล
บล็อกเหล่านั้นกระจายทั่วกลุ่ม
ในการทดลองของเรา เราพบว่า สมมติฐานโดย
Hadoop เป็นกำหนดการงานที่ตรงข้ามกับ hadoopdb รูปแบบ .
ใน Hadoop tasktrackers จะคัดลอกข้อมูล , ไม่ท้องถิ่นจาก
หลงทาง หรือ แบบจําลองhadoopdb , อย่างไรก็ตาม , ไม่ได้ย้าย
ชิ้น PostgreSQL ให้โหนดใหม่ แทน tasktracker ของ
งานซ้ำซ้อนเชื่อมต่อกับทั้งของคนล้าหลังฐานข้อมูลหรือฐานข้อมูล
ของแบบจําลอง ถ้า tasktracker เชื่อมต่อกับฐานข้อมูลของ
คนล้าหลัง , กระจัดกระจายต้องควบคู่กันไปกระบวนการเพิ่มเติม
สอบถามนำไปสู่การชะลอตัวเพิ่มเติม ดังนั้น ,
คุณลักษณะเดียวกันที่ทำให้ hadoopdb มีเล็กน้อยดีกว่าความผิดความอดทน
กว่า Hadoop ทำให้สูงขึ้นเล็กน้อยร้อยละช้าลงในสภาพแวดล้อมที่แตกต่างกันสำหรับ hadoopdb
. เราวางแผนที่จะปรับเปลี่ยนการใช้งานปัจจุบัน
tasktrackers เก็งให้คำแนะนำเพื่อหลีกเลี่ยงการเชื่อมต่อกับคนล้าหลัง และเชื่อมต่อกับปม
7.1 การจําลองแทนมันควรจะชี้ให้เห็นว่าแม้ว่าฐานเป็นร้อยละ
ชะลอตัวมากกว่า และ hadoopdb Hadoop , เวลา query
รวมของมัน ( แม้จะมีความล้มเหลวหรือโหนดช้า ) ก็ยังต่ำกว่า
Hadoop หรือ hadoopdb . นอกจากประสิทธิภาพของฐานใน
ไม่มีความล้มเหลวเป็นคำสั่งของขนาดเร็วกว่า Hadoop และ
hadoopdb ( เนื่องจากส่วนใหญ่ของคอลัมน์ที่มุ่งเน้นรูปแบบของข้อมูลเป็น
ชนะใหญ่สำหรับการรวมขนาดเล็ก ) ใบนี้ขนาด
การปฏิบัติอาจจะแปลผล และ hadoopdb
Hadoop เหมือนกัน แต่ใช้คำสั่งของขนาดน้อยลง
โหนด ดังนั้น ความล้มเหลวและโหนดช้ากลายเป็นน้อยมาก
ฐานกว่าและ Hadoop hadoopdb . นอกจากนี้ อีเบย์สำหรับฐานข้อมูลของ
6.5 ( บางทีที่ใหญ่ที่สุดเป็นที่รู้จัก
โกดังข้อมูลทั่วโลก ณมิถุนายน 2552 ) [ 4 ] ใช้เฉพาะใน sharednothing
96 โหนดคลัสเตอร์ ความล้มเหลวยังหายากพอสมควรที่น้อยกว่า 100
, .
เราเถียงว่า ในอนาคตกลุ่ม 1000 โหนดจะธรรมดา
ฐานข้อมูลการผลิต ) และ 10 , 000 โหนด
กลุ่มจะไม่ได้ผิดปกติ มี 3 แนวโน้มการสนับสนุน
นี้พยากรณ์ แรก , ข้อมูลการผลิตยังคงเติบโตเร็วกว่า
กฎของมัวร์ ( ดูส่วนที่ 1 ) ประการที่สองมันเป็นที่ชัดเจนว่า
จากทั้งราคา / ประสิทธิภาพ และ ( สำคัญยิ่งขึ้น )
/ การแสดงมุมมอง มากมาย - -
เป็นเซิร์ฟเวอร์กว่าน้อยกว่าเซิร์ฟเวอร์หนัก [ 14 ] สาม มี
การแปล กรุณารอสักครู่..
