Table of Contents

הגידול צריך לעיבוד נתונים מתקדם בהנדסה סביבתית

הנדסה סביבתית היא משמעת המשפיעה ישירות על בריאות הציבור ועל קיימות אקולוגית.מעקב אחר חומר חלקיקים באוויר העירוני לנתח מפלט כימי בנהרות, המקצוע מסתמך רבות על נתונים.רשתות ניטור סביבתי מודרני לייצר קטבים של נתונים מדי יום מלוויינים, חיישנים נייחים, צגים ניידים, ותקני IoT.

Apache Spark התפתחה כפתרון טרנספורמטיבי. שפותח במקור ב- UC Berkeley's AMPLab, Spark היא כעת מסגרת קוד בוגר ופתוח המאפשרת להפיץ, עיבוד תוך-זיכרון על פני אשכולות של חומרה של סחורות.עבור מהנדסים סביבתיים, Spark מציעה את היכולת להפעיל ניתוח מורכב על הזרמה ונתונים היסטוריים עם תגובה בזמן אמת.

מה זה Apache Spark?

Apache Spark הוא מנוע ניתוח קוד פתוח אחיד לעיבוד נתונים בקנה מידה גדול.זה מספק ממשק עבור אשכולות שלמים תכנות עם מקבילות נתונים בלתי פתירה וסובלנות תקלות.בניגוד לפרדיגמה MapReduce המבוססת על הדיסק, Spark שומרת נתונים בזיכרון על פני הזיהומים, מה שהופך אותו אידיאלי עבור למידת וניתוח אינטראקטיבי.

המונחים:

  • (FLT:0Spark Core:FLT:1) מספק תכונות בסיסיות כמו לוח זמנים משימה, ניהול זיכרון, התאוששות לקויה ואינטראקציה עם מערכות אחסון (HDFS, S3, קבצים מקומיים).
  • (FLT:0Spark SQL:FLT:1) Enables הפעלת שאילתות SQL על נתונים מובנים באמצעות נתונים והנתונים, שילוב עם Hive ו- JDBC.
  • (FLT:0Sparkסטרימינג: FLT:1) מעבד זרם נתונים בזמן אמת ממקורות כמו קפקא, Kinesis, או TCP sockets באמצעות מיקרו-batch או עיבוד מתמשך.
  • (FLT:0)MLlib:FLT:1 A Classable Machine Learning Library withאלגוריתמים לסיוג, רגרסיה, קידוד שיתופי, והנדסת תכונות.
  • (FLT:0)GraphX:FLT:1 Handles גרף חישוב דומה לניתוח רשת, שימושי עבור מודלים של תחבורה מזוהמת או נתיבי הגירה מינים.

Spark ניתן לפרוס את Standalone, על Apache Hadoop YARN, או בסביבת ענן כגון אמזון EMR, Azure HDInsight ו-Google Dataproc. התמיכה הטבעית שלה ב- Python (PySpark), R (SparkR), Scala, ו- Java מורידה את מחסום הכניסה למהנדסים סביבתיים שאולי כבר מכירים את מערכות האקולוגיות מדעיות כמו NumPy ו- pandas.

מדוע ספארקס הוא חיוני להנדסת הסביבה

נתונים סביבתיים מאתגרים באופן מהותי: הם גדולים, מבוזרים, רועשים, ולעתים קרובות רגישים לזמן. Spark מטפל באתגרים אלה ישירות.

מהירות ו- In-Memory Processing

מסורתי Hadoop MapReduce כותב תוצאות ביניים לדיסק לאחר כל מפה ולהפחית את הצעד. Spark שומרת נתונים בזיכרון, השגת שיפור מהירות של 10-100x עבור אלגוריתמים הרציפים המשמשים באיור (למשל, k-means עבור דפוס זיהום) זיהוי ותגובה (למשל, תחזית PM2.5). מהירות זו מאפשרת מעקב קרוב בזמן אמתי לוח זמנים כי כל כמה שניות.

סקאביה להגדלת רשתות החיישנים

כאשר ערים מקיימות יותר חיישני איכות אוויר ומעקב מים, נפח הנתונים בקנה מידה ליניארית. Spark אשכולs יכול להרחיב אופקית על ידי הוספת צמתים ללא צינורות היררכיה מחדש.לדוגמה, את נפח הנתונים של FLT:0EPA של מערכת איכות האוויר איכות האוויר של EPAFLT:1 ingests נתונים מ אלפי צגים; צינור הזרמה יכול לטפל בדלקת, אימות, ו aggregation in מקבילה.

עיבוד בזמן אמת עבור התראות

סיכונים סביבתיים דורשים תשובות מיידיות.S Spark הזרמת תהליכים רשומות במיקרו-קרבים (למשל, כל 1-10 שניות), המאפשר למהנדסים לעורר התראות כאשר סף רעילים הם מעלים. בשילוב עם קפקא להפחתה של נתונים, צינור זה תומך אמין, בדיוק על סימנטיקה.

Bitch and Stream Processing

זרימת עבודה סביבתית רבים משלבים ניתוח היסטורי (למשל, דיווח מגמה) עם ניטור בזמן אמת.מנוע מאוחדים של Spark מאפשר למהנדסים להשתמש באותו קוד עבור עבודות אצווה וסטרימינג, צמצום תחזוקה מעל פני השטח ולהבטיח עקביות בין השקפות העבר וההווה.

Advanced Analytics עם MLlib

למידת מכונה משמשת יותר ויותר בהנדסה סביבתית עבור זיהוי אנומלי, מחיאות כפיים, ומודלים חיזויים. MLlib מספק יישום מדרגי של אלגוריתמים משותפים, כגון יערות אקראיים עבור סיווג מקורות זיהום ו-K-means עבור דפוסי מזג אוויר מקובצים.אלה יכולים לרוץ ישירות על Spark DataFrames ללא העברת נתונים לפלטפורמת ML נפרדת.

שימוש במקרים מרכזיים עבור Spark בהנדסה סביבתית

פיקוח איכות אוויר ותחזיות

רשתות חיישן בעלות נמוכה מספקות כעת נתונים באיכות אווירית היפרלופית. A Spark tube יכול לצטט מקרי קריאה של PM2.5, PM10, NO2, O3, ומשתנים מטאורולוגיים.עם Spark SQL, מהנדסים יכולים ליישר ממוצעים מתגלגלים, לזהות עלייה בדגמים של למידת מכונה, אשר חיזוי רמות 24 עד שעות קדימה מודלים יכול להיות מאומנים מחדש על נתונים חדשים, עונתיים כדי להתאים שינויים חדשים.

ניתוח איכות המים

נתונים איכותיים כוללים פרמטרים כגון pH, זעזוע, חמצן מומס, מתכות כבדות וספירות חיידקיות. ספירת ה-DFrame API של Spark מפשטת מעל חלונות זמן (למשל, ממוצעים יומיים לתחנת ניטור) לניתוח בקנה מידה מים, GraphX יכול מודל לפיזור חד-פעמי לאורך רשתות הנהר.

ניהול פסולת אופטימיזציה

פסולת חכמה עם חיישנים ברמת מלא לייצר נתוני הזרמת מידע. Spark יכול לנתח את שערי מילוי מסלולים איסוף אופטימיזציה, צמצום צריכת דלק ופליטות.מידע היסטורי ניתן להשתמש כדי לחזות תקופות ייצור שיא של פסולת הדור, המאפשר לרשויות המקומיות להתאים את לוח הזמנים של מיקום בינארי.אלגוריתם Graph יכול למקם נתיבים קצרים ביותר עבור משאיות איסוף תוך התחשבות בדפוסי תנועה.

ניתוח נתונים מטאורולוגי

מודלים אקלים מייצרים מסדי נתונים ענקיים. Spark יכול לקרוא קבצי NetCDF ו- HDF5 באמצעות פורמטי קלט Hadoop, לבצע מפגשים מרחביים עם גבולות אזוריים, וסטטיסטיקות מותאמות (למשל, חריגות טמפרטורה ממוצעת למדינה).שימוש בפונקציות חלון Spark SQL, מהנדסים יכולים לחשב ממוצעים נעים או לזהות תנאי גלי חום על רשומות מרובות-adal.

המונחים: sounding

רשתות ניטור רעש עירוני לייצר קוראות ברמה של cibel. Spark יכול לעבד את הזרמים האלה לצד תנועה ונתונים מזג אוויר כדי ליצור מפות רעש. Anomaly זיהוי מזהה התפרצויות בנייה או סירנס רכב חירום. מגמות לטווח ארוך לעזור מתכננים עירוניים להעריך אמצעי הקטנת רעש.

Biodiversity ו- Ecosystem Monitoring

מלכודות מצלמה וחיישנים אקוסטיים מייצרים כמויות גבוהות של תמונות ונתונים אודיו.בעוד Spark אינו מסגרת למידה עמוקה, הוא יכול לעבד נתונים עבור כלים חיצוניים (למשל, תמונות בגודל, תמצית spectrograms) מיצוי תכונה של MLlib משלב עם מודלים סיווג כדי למדוד דינמיקת אוכלוסייה.

יישום טכני: בניית קו נתונים סביבתי אמיתי-זמן

כדי להמחיש את יכולות Spark, לשקול מערכת ניטור איכות אווירית בזמן אמת לאזור מטרופוליטן.הצנרת מורכבת מארבעה שלבים: אי-שיוט, עיבוד זרימה, אחסון ודמיון.

שלב 1: נתונים עם Apache קפקא

אלפי חיישנים זולים מדווחים על PM2.5, טמפרטורה, לחות ו- GPS לתאם כל דקה.הנתונים מגיעים בפורמט JSON באמצעות MQTT או HTTP. A אשכול (סובל לחיישן) פועל כ-buffer, ולהבטיח כי אין נתונים שאבדו אפילו אם הצרכנים במורד הזרם נכשלים. Spark קורא מנושאים קפקא באמצעות ה-FLT:0 API עם מקור.

שלב 2: עיבוד הזרמת עם הזרמת המבנה

(ב) ב[[1924]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]

df = spark.readStream \
 .format("kafka") \
 .option("kafka.bootstrap.servers", "localhost:9092") \
 .option("subscribe", "air-quality") \
 .load()

מכאן, מהנדסים ליישם שינויים: אימות (העברת ערכים לא רגישים כמו PM2.5 שלילי), ממוצעי חלונות (למשל, ממוצע של שעה אחת מתגלגל), וההעשרה הגיאוגרפית (התפרקות הפוכה לשכונת הקרובה ביותר) חלונות אגרורגים באמצעות קונסולות 9 עם FLT:10 אם ראש הממשלה 2.5 עולה על 55 גרם / m3 (EPA שולח התראה סטנדרטית לתקני שידור)

שלב 3: אחסון וניתוח היסטורי

נתונים נקיים ומצטברים כתובים בחנות טוראר כמו Apache Parkt על HDFS או Amazon S3. עבור ניתוח אינטראקטיבי, Spark SQL יכול לשאול את קבצי הפארק ישירות.מודלים למידה מכונה (למשל, יערות אקראיים עבור אישור מקור) מאומן על נתונים היסטוריים באמצעות MLlib ולאחר מכן טעון לתוך העבודה הזרמת כדי לייצר תחזיות בזמן אמת.

שלב 4: חזותיזציה ודשורדות

הפלט של Spark ניתן לכתוב למסד נתונים PostgreSQL עם הרחבה PostGIS או ישירות כלי הדמיה כמו Apache Superset או Grafana. Heatmaps של איכות האוויר בכל רגע נתון, ומאפשרת למחלקת הבריאות הציבורית להטיל אזהרות ממוקדות.

מחקר: גילוי בזמן אמת בעיר חכמה

עיר אירופית בגודל בינוני פרסה 500 חיישני איכות אוויר נמוכה ב-100 ק"מ קודם לכן, הנתונים נאספו כל שעה וקבוצתי לילה, כלומר ספייק זיהום מכישלון במפעל ידווחו 12 שעות מאוחר מדי.העיר אימצה Spark עם קפקא כדי לעבד נתונים במיקרו-קרבים של 10 שניות.

המערכת זיהתה עלייה של PM2.5 מאתר בנייה ביום ראשון אחר הצהריים. בתוך 30 שניות של חיישן קריאה מעל 100 מיקרוגרם / m3, הודעות SMS נשלחו לסוכנות להגנת הסביבה ומנהל אתר הבנייה.ההה משוב מתמשך הוביל לירידה של 40% בפליטת אבק מחוץ לשעה לאחר שהוצאו קנסות.ה העיר השתמשה גם ב-MLlib כדי לבנות מודל מנבא כי מדי יום 2.5 על פי תחזיות מטאוריולוגיות והשגת דפוסים של תנועה.

מקרה זה מדגים כיצד השילוב של Spark של הזרמת, SQL, ו-ML יכולות להפוך את נתוני החיישן הגולמיים לאינטליגנציה מעשית.

נתחיל עם Spark for Environmental Data

עבור מהנדסים חדשים ל Spark, מפת הדרכים הבאה מאיצה את אימוץ.

שלב 1: הגדרת סביבת פיתוח

התחל עם התקנה של Spark יחיד במחשב נייד באמצעות FLT:0 (Apache Spark Downloadspherph:1 ). השתמש Docker עבור סביבה יעילה: FLT:11 עבור ייצור, לשקול שירותי ענן כגון אמזון EMR (אשר כולל Spark, Hive, HBase) כדי למנוע ניהול אשכול.

שלב 2: Ingest Sample Data

הורד נתונים פתוחים ממקורות כמו FLT:0 EPA איכות האוויר היומית של נתונים באיכות האוויר 1FREFLT 1 , או פורטל איכות המים USGS. לטעון אותם לתוך Spark DataFrames באמצעות FLT:12 או FLT:13 בפועל שינויים בסיסיים: סינון של חריגים, קיבוץ על ידי אתר, ממוצעי מחשוב שבועיים.

שלב 3: כתוב כותרות הזרמת

השתמש ב- Spark Structuredסטרימינג עם מקור פשוט (למשל, קריאה משקעי רשת או תיקיה עם קבצים CSV חדשים) סימסט נתוני חיישן על ידי כתיבת תסריט Python אשר פולט את רשומות JSON לדג' מקומי. בנה הדבקה זורמת המפלטת ספירת ריצה של אירועים לחלון.

שלב 4: Integrate Machine Learning

לאמן מודל רגרסיה פשוט (למשל, נסיגה ליניארית עם MLlib) על נתונים היסטוריים כדי לחזות את PM2.5 מטמפרטורה ולחות.חסוך את המודל ולה לטעון אותו בעבודה זורמת כדי להשיג נתונים נכנסים בזמן אמת.

שלב 5: ויזואליזציה ואוטומטיות

לכתוב תוצאות למסד נתונים MySQL או PostgreSQL. Connect a BI Tool כמו Apache Superset או Grafana למסד הנתונים שלך וליצור לוחות נתונים.זמן עבודות הכשרה עם זרימת האוויר של Apache כדי לרוץ בלילה ולעדכן את מודל הזרמת.

אתגרים ואסטרטגיות מייגציה

בעוד ספארקס מציע יכולות עוצמתיות, מהנדסים סביבתיים צריכים להיות מודעים לאתגרים משותפים.

איכות מידע ויציאה

סחף חושי, רעש תקשורת ונדליזם יכול לייצר לוגיקה בלתי אמינה של אימות בצנרת הזרמה: לדחות ערכים מחוץ לטווחים פיזיים אפשריים, ליישם מסננים וחיישנים דגלים עם אפס שירות.

שקיפות מול חתלתול סחר-offs

עיבוד מיקרו-batch (default in Structuredסטרימינג) מציג את הלכידות של 1-10 שניות. עבור תגובה בת שנייה, לשקול עיבוד מתמשך (experimental) או לשלב Spark עם מנוע נמוך של עוצמה כמו Apache Flink עבור התראה תוך שימוש ב- Spark לניתוח עמוק יותר. להעריך אם קצבה של 10 שניות מקובל על השימוש שלך - עבור התראות סביבתיות ביותר, זה.

ניהול עלויות ב-Cloud Deployments

אשכולות Spark יכולים להיות יקרים אם שמאל פועל idle. השתמש במכוניות (למשל, EMR המנוהלת מדרגת) כדי להוסיף צמתים רק במהלך עומסי שיא.עבור משרות אצווה, להשתמש בקובעים אמפיריים שמסתובבים לאחר השלמת מקרים של Spot יכולים להפחית את העלויות באופן משמעותי עבור עומסי עבודה לא-סובלניים.

אבטחה וביטוח

נתונים סביבתיים עשויים להיות כפופים לחוקי הפרטיות (למשל, GDPR אם הנתונים של מיקום מעורבים) או דרישות תאימות (למשל, דיווח EPA) לאבטח את המקבץ שלך עם הצפנה במנוחה ובמעבר. השתמש ב- Spark's FLT:17 כדי להסוות או לאסוף מידע המאפשר זיהוי אישי לפני האחסון.

מגמות עתידיות: Spark, Edge Computing ו-AI

העתיד של ניטור סביבתי יראה שילוב הדוק יותר בין מחשוב Spark ו- Edge. Preprocessing על מכשירי שער (למשל, באמצעות TensorFlow Lite או Apache Edgent) יכול להפחית את נפח הנתונים לפני שהוא מגיע אל אשכול Spark. Spark יתמקד בניתוח חוצה-חישה, זיהוי מגמה ארוך טווח, ואימון מודל.

מודלים למידה עמוקה לניתוח תמונות ו אודיו (למשל, זיהוי מיני ציפורים מקולוניזציה) בדרך כלל דורשים אשכולות GPU. Spark's אינטגרציה עם פרויקט Hydrogen וה Horovod מאפשר הכשרה למידה מבוזרת עמוק על GPUs.בינתיים, התמיכה הטבעית של Spark עבור Kubernetes מפשטת פריסה בסביבות ענן היברידית.

מגמה נוספת היא השימוש ב-FLT:0 (תאומים דיגיטליים של LT:1) - העתקים וירטואליים של מערכות סביבתיות. Spark יכולים לכפות את עמוד השדרה לעיבוד הנתונים המזין בזמן אמת חיישן להאכיל ולהזין אותם למודלים סימולציה (למשל, מודלים של CFD לפיזור אוויר). סימולציות אלה לרוץ במצב אצווה, אבל יכולותיה של Spark's מקטיןות משעות הבאות.

מסקנה

Apache Spark מספקת מהנדסים סביבתיים עם פלטפורמה מאוחדת לעיבוד, לנתח ולפעול על הנפח ההולך וגדל של מידע ניטור.מהירות החדירה, קנה מידה, יכולות הזרמת וספריית למידת מכונה להתמודד עם האתגרים המרכזיים של מדעי הנתונים הסביבתיים המודרניים.מ זיהום בזמן אמתי מזהיר לניתוח טרנדי האקלים לטווח ארוך, Spark מאפשר קבלת החלטות מהירה ומדויקת יותר, המגינה על בריאות האדם והעולם הטבעי.

על ידי אימוץ Spark, צוותי הנדסה סביבתיים יכולים לנוע הרחק מרשתות כלים מפורקים ומחובקים צינור קוהרסיבי המספק תובנות בזמן אמת.התחל עם טייסים קטנים, למנף נתונים פתוחים ולהגדיל את היקף ככל שרשתות החיישן מתרחבות.