نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
Apache OpenMeetings هو تطبيق مفتوح المصدر لعقد المؤتمرات عبر الإنترنت. هو مكتوب بلغة جافا ويدعم خوادم قاعدة بيانات متعددة. يوفر العديد من الميزات ، مثل مؤتمرات الصوت والفيديو ، ومشاركة الشاشة ، ومستكشف الملفات ، ونظام الإشراف على المستخدم ، والرسائل وجهات الاتصال الخاصة ، وتقويم متكامل لخطط الاجتماعات وغيرها الكثير. يمكنك أيضًا تسجيل جلسة مؤتمر. يوفر SOAP / REST API ومكونات إضافية متعددة للتكامل بسهولة مع Moodle و Jira و Joomla و Confluence والمزيد.
في هذا البرنامج التعليمي ، سوف نستخدم 192.168.1.1
كعنوان IP عام meetings.example.com
ولكونه اسم النطاق الموجه نحو مثيل Vultr. يرجى التأكد من استبدال كل تكرارات مثال عنوان IP واسم المجال بالحدث الفعلي.
قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث CentOS 7 . بمجرد تحديث نظامك ، تابع تثبيت Java.
OpenMeetings مكتوب بلغة Java ، وبالتالي يتطلب Java Runtime Environment (JRE) للعمل. قم بتنزيل أحدث حزمة Oracle SE JDK 8 RPM المتاحة ، والتي تتضمن كلاً من JRE و JDK.
wget --header 'Cookie: oraclelicense=a' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
قم بتثبيت الحزمة التي تم تنزيلها.
sudo rpm -Uvh jdk-8u161-linux-x64.rpm
إذا تم تثبيت Java بنجاح ، فستتمكن من التحقق من إصدارها.
java -version
سترى الناتج التالي.
[user@vultr ~]$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
قبل أن يتسنى لنا مواصلة المضي قدما، فإننا سوف تحتاج إلى إعداد JAVA_HOME
و JRE_HOME
متغيرات البيئة. ابحث عن المسار المطلق لـ JAVA القابل للتنفيذ في نظامك.
readlink -f $(which java)
سترى مخرجات مماثلة.
[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/java
الآن، تعيين JAVA_HOME
و JRE_HOME
متغيرات البيئة وفقا لمسار دليل جافا.
echo "export JAVA_HOME=/usr/java/jdk1.8.0_161" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_161/jre" >> ~/.bash_profile
تنفيذ bash_profile
الملف.
source ~/.bash_profile
يمكنك الآن تشغيل echo $JAVA_HOME
الأمر للتأكد من تعيين متغير البيئة.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_161
قم بتثبيت مكتبات ImageMagick و GhostScript.
sudo yum -y install epel-release
sudo yum -y install ImageMagick ghostscript
يوفر ImageMagick الدعم لتحميل الصور واستيرادها إلى السبورة. يمكّنك GhostScript من تحميل ملفات PDF إلى السبورة.
تحقق من إصدار ImageMagick و GhostScript للتأكد من تثبيتها بنجاح.
[user@vultr ~]$ identify -version
Version: ImageMagick 6.7.8-9 2016-06-16 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
[user@vultr ~]$ ghostscript -v
GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
فورثور ، سنحتاج أيضًا إلى تثبيت Apache OpenOffice أو LibreOffice على النظام. سوف تثبيت أي من هذه تمكين OpenMeetings لاستيراد الملفات في تنسيقات المستندات Office مثل .doc
، .docx
، .ppt
، .pptx
، أو .xlx
. في هذا البرنامج التعليمي ، سنقوم بتثبيت Apache OpenOffice.
انتقل إلى الدليل المؤقت وقم بتنزيل Apache OpenOffice RPM.
cd /tmp
wget https://downloads.sourceforge.net/project/openofficeorg.mirror/4.1.5/binaries/en-US/Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gz
استخرج الأرشيف وقم بتثبيت جميع حزم RPM.
tar xf Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gz
cd en-US/RPMS
sudo rpm -Uvh *.rpm
sudo rpm -Uvh desktop-integration/openoffice4.1.5-redhat-menus-*.rpm
للتحقق مما إذا كان OpenOffice مثبتًا بشكل صحيح ويعمل ، اكتب openoffice4 -h
سطر الأوامر. ستطبع نسختها ومساعدة قصيرة.
[user@vultr ~]$ openoffice4 -h
OpenOffice 4.1.5 415m1(Build:9789)
Usage: soffice [options] [documents...]
Options:
-minimized keep startup bitmap minimized.
...
قم بتثبيت مستودع RPMFusion في نظامك لأنه يوفر حزم مُصممة مسبقًا لـ FFmpeg و Sound eXchange (SoX).
sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
قم بتثبيت FFmpeg و SoX.
sudo yum -y install ffmpeg sox
سيتيح FFmpeg و SoX تسجيل الاجتماع. كما أنها سوف تساعد في وسائل الإعلام استيراد ملفات مثل .avi
، .flv
، .mov
و .mp4
إلى السبورة. تحقق من التثبيت عن طريق التحقق من إصدارات كل من FFmpeg و SoX.
[user@vultr ~]$ sox --version
sox: SoX v14.4.1
[user@vultr ~]$ ffmpeg -version
ffmpeg version 2.8.13 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11)
يدعم OpenMeetings أنواعًا متعددة من خوادم قواعد البيانات ، مثل MySQL و PostgreSQL و Apache و Derby و Oracle. في هذا البرنامج التعليمي ، سنستخدم خادم PostgreSQL لاستضافة قاعدة بيانات OpenMeeting.
PostgreSQL هو نظام قاعدة بيانات علائقية للكائنات ومعروف باستقراره وسرعته. yum
يحتوي المستودع الافتراضي على إصدار قديم من PostgreSQL ، لذا أضف مستودع PostgreSQL لأحدث إصدار من التطبيق في النظام.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
قم بتثبيت خادم قاعدة بيانات PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
تهيئة قاعدة البيانات.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
قم بتشغيل خادم PostgreSQL وتمكينه من البدء تلقائيًا في وقت التمهيد.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
قم بتغيير كلمة المرور لمستخدم PostgreSQL الافتراضي.
sudo passwd postgres
قم بتسجيل الدخول باسم مستخدم PostgreSQL.
sudo su - postgres
قم بإنشاء مستخدم PostgreSQL جديد لمستخدم OpenMeetings.
createuser openmeetings
يمكنك استخدام أي اسم مستخدم بدلاً من openmeetings
. قم بالتبديل إلى غلاف PostgreSQL.
psql
قم بتعيين كلمة مرور للمستخدم الذي تم إنشاؤه حديثًا لقاعدة بيانات OpenMeetings.
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';
استبدلها DBPassword
بكلمة مرور آمنة. إنشاء قاعدة بيانات جديدة لتثبيت OpenMeetings.
CREATE DATABASE openmeetings OWNER openmeetings;
اخرج من psql
القشرة.
\q
قم بالتبديل إلى sudo
المستخدم.
exit
قم بتحرير pg_hba.conf
الملف لتمكين المصادقة المستندة إلى MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
ابحث عن الأسطر التالية وقم بتغيير القيم في METHOD
العمود من ident
إلى md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
بمجرد التحديث ، سيبدو التكوين على هذا النحو.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
احفظ الملف واخرج من المحرر. أعد تشغيل PostgreSQL حتى تصبح التغييرات سارية المفعول.
sudo systemctl restart postgresql-10
حيث يتم تثبيت كافة التبعيات المطلوبة. قم بإنشاء مستخدم جديد لـ OpenMeetings. يوصى باستخدام مستخدم غير جذري لتشغيل OpenMeetings من أجل أمان الخادم.
sudo adduser -b /var -s /sbin/nologin openmeetings
سيقوم الأمر أعلاه أيضًا بإنشاء الدليل الرئيسي openmeetings
للمستخدم في /var/openmeetings
.
تحقق من صفحة تنزيل Apache OpenMeetings للحصول على رابط لأحدث إصدار متوفر. قم بتنزيل أرشيف OpenMeetings.
cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gz
استخرج الأرشيف في /var/openmeetings
الدليل.
sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetings
وفر ملكية الملفات لمستخدم OpenMeetings الذي أنشأناه سابقًا.
sudo chown -R openmeetings:openmeetings /var/openmeetings
قبل أن نبدأ التطبيق ، سنحتاج إلى تعديل جدار الحماية للسماح بالمنافذ 5080
و 1935
.
sudo firewall-cmd --zone=public --permanent --add-port=5080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1935/tcp
sudo firewall-cmd --reload
يمكنك الآن بدء التطبيق.
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
يمكنك الآن الوصول http://192.168.1.1:5080/openmeetings
في متصفحك المفضل. سترى شاشة الترحيب مع تعليمات لتثبيت GhostScript.
نظرًا لأننا قمنا بالفعل بتثبيت GhostScript ، تابع الأمر أكثر. في الواجهة التالية ، سيُطلب منك تقديم تفاصيل خادم قاعدة البيانات. حدد نوع قاعدة البيانات " PostgreSql
" وقدم تفاصيل خادم قاعدة البيانات التي قمت بتكوينها أثناء تثبيت PostgreSQL.
اضغط على Check
زر " " وستحصل على الرسالة: " Database check was successful
". قدِّم تفاصيل حساب المشرف واسم المجموعة في الواجهة التالية.
تكوين الإعدادات الأساسية للتثبيت الخاص بك ؛ مثل السماح بالتسجيل الذاتي والتحقق من البريد الإلكتروني واللغة الافتراضية. أيضًا ، قدم تفاصيل خادم SMTP. إذا لم يكن لديك خادم SMTP جاهزًا ، فيمكنك أيضًا تقديم تفاصيل SMTP لاحقًا في لوحة تحكم المشرف.
سيطلب منك المسار إلى ثنائيات التطبيقات المختلفة. تقديم /usr/bin
كمسار لـ ImageMagick و FFmpeg و SoX. إذا كان التطبيق يوفر أخطاء للمسار الذي تم إدخاله ، فيمكنك استخدامه which <binary_name>
للعثور على المسار المطلق إلى الثنائي. على سبيل المثال ، which ffmpeg
يجب أن تعطيك /usr/bin/ffmpeg
كمخرج. استخدم /opt/openoffice4
كمسار إلى ثنائيات OpenOffice.
يمكنك تخطي التكوين على الواجهة التالية لأننا سنستخدم القيم الافتراضية. أخيرًا ، انقر فوق Finish
الزر " " لتثبيت التطبيق وكتابة قاعدة البيانات.
تم تثبيت OpenMeetings الآن على الخادم الخاص بك. لجعله أكثر سهولة في الإنتاج ، سنقوم بإعداد Systemd لإدارة خادم OpenMeetings. سنقوم أيضًا بتهيئة Nginx باستخدام Let's Encrypt SSL باعتباره الوكيل العكسي الآمن لخدمة التطبيق.
على الرغم من أنه يمكننا بسهولة بدء التطبيق وإيقافه باستخدام الأمر أعلاه ، فمن المستحسن إعداد وحدة خدمة Systemd لإدارة التطبيق. سيضمن هذا أيضًا بدء تشغيل الخدمة تلقائيًا في وقت التمهيد والفشل.
قم بإيقاف خادم OpenMeetings إما بالضغط على " Ctrl+C
" أو بقتل غلاف openmeetings
المستخدم.
sudo pkill -KILL -u openmeetings
قم بإنشاء ملف وحدة Systemd جديد لـ OpenMeetings Server.
sudo nano /etc/systemd/system/openmeetings.service
تعبئة الملف.
[Unit]
Description=OpenMeeting Service
After=network.target
[Service]
Type=simple
User=openmeetings
WorkingDirectory=/var/openmeetings
ExecStart=/var/openmeetings/red5.sh
Restart=always
[Install]
WantedBy=multi-user.target
قم بتشغيل خادم OpenMeetings وتمكينه من البدء تلقائيًا في وقت التمهيد.
sudo systemctl start openmeetings
sudo systemctl enable openmeetings
للتحقق من حالة الخدمة ، يمكنك تشغيل ما يلي.
sudo systemctl status openmeetings
سترى مخرجات مماثلة.
[root@vultr openmeetings]# sudo systemctl status openmeetings
● openmeetings.service - OpenMeeting Service
Loaded: loaded (/etc/systemd/system/openmeetings.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-01-31 15:40:56 UTC; 38s ago
Main PID: 10522 (java)
CGroup: /system.slice/openmeetings.service
└─10522 /bin/java -Dred5.root=/var/openmeetings -Djava.security.debug=failure -Xms256m...
Jan 31 15:41:29 vultr.guest red5.sh[10522]: [INFO] [Loader:/openmeetings] org.red5.server.Serv...ngs
Jan 31 15:41:29 vultr.guest red5.sh[10522]: [INFO] [Loader:/openmeetings] org.red5.server.Serv...ngs
Jan 31 15:41:29 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:29.431 16603 343 o.a.o.c.r.Scope...se]
Jan 31 15:41:29 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:29.531 16703 124 o.a.o.c.r.Scope...ngs
Jan 31 15:41:34 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:34.421 21593 82 o.a.o.u.Version ...] -
Jan 31 15:41:34 vultr.guest red5.sh[10522]: ##################################################...###
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # Openmeetings is up ... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # 4.0.1 3795f14 2017-12-05T16... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # and ready to use ... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: ##################################################...###
Hint: Some lines were ellipsized, use -l to show in full.
بشكل افتراضي ، يستمع OpenMeetings إلى المنفذ 5080
. إذا لم يتم تشفير الاتصال بين المتصفح والخادم باستخدام SSL ، فسيتم إرسال تسجيلات الدخول والمعلومات الأخرى باستخدام نص عادي. قد يكون هذا تهديدًا محتملاً لأن شخصًا ما يتنصت على الشبكة قد يحصل على المعلومات. للتخفيف من هذه المشكلة ، سنقوم بإعداد Nginx باعتباره الوكيل العكسي الذي سيستمع إلى منفذ HTTPS الافتراضي وسيرسل جميع الطلبات إلى خادم OpenMeetings.
قم بتثبيت Nginx.
sudo yum -y install nginx
قم بتشغيل Nginx وتمكينه من البدء تلقائيًا في وقت التمهيد.
sudo systemctl start nginx
sudo systemctl enable nginx
قم بتثبيت Certbot ، وهو تطبيق العميل لـ Let's Encrypt CA.
sudo yum -y install certbot
قبل أن تتمكن من طلب الشهادات، سوف تحتاج للسماح الموانئ 80
و 443
أو معيار HTTP
و HTTPS
الخدمات من خلال جدار الحماية.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
ملاحظة: للحصول على شهادات من Let's Encrypt CA ، يجب توجيه النطاق الذي سيتم إنشاء الشهادات من أجله إلى الخادم. إذا لم يكن الأمر كذلك ، قم بإجراء التغييرات اللازمة على سجلات DNS للمجال وانتظر DNS للنشر قبل إجراء طلب الشهادة مرة أخرى. يتحقق Certbot من سلطة المجال قبل تقديم الشهادات.
إنشاء شهادات SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d meetings.example.com
من المرجح أن يتم تخزين الشهادات التي تم إنشاؤها /etc/letsencrypt/live/meetings.example.com/
. سيتم تخزين شهادة SSL كـ وسيتم تخزين fullchain.pem
المفتاح الخاص كـ privkey.pem
.
تنتهي صلاحية شهادات التشفير في غضون 90 يومًا ، وبالتالي يوصى بإعداد التجديد التلقائي للشهادات باستخدام وظائف Cron.
افتح ملف مهمة كرون.
sudo crontab -e
أضف السطر التالي في نهاية الملف.
30 5 * * * /usr/bin/certbot renew --quiet
سيتم تشغيل وظيفة cron المذكورة أعلاه كل يوم الساعة 5:30 صباحًا. إذا كانت الشهادة ستنتهي صلاحيتها ، فسيتم تجديدها تلقائيًا.
الآن ، قم بتغيير ملف التكوين الافتراضي لـ Nginx لإزالة default_server
الخط.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
قم بإنشاء ملف تكوين جديد لـ OpenMeetings Server.
sudo nano /etc/nginx/conf.d/meetings.example.com.conf
تعبئة الملف.
server {
listen 80;
server_name meetings.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name meetings.example.com;
ssl_certificate /etc/letsencrypt/live/meetings.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meetings.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/openmeetings.access.log;
location / {
proxy_pass http://localhost:5080;
proxy_set_header host $host;
proxy_http_version 1.1;
proxy_set_header upgrade $http_upgrade;
proxy_set_header connection "upgrade";
}
}
تحقق من وجود أخطاء في ملف التكوين الجديد.
sudo nginx -t
إذا رأيت الإخراج التالي ، فإن التكوين خالي من الأخطاء.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
إذا تلقيت خطأ ما ، فتأكد من التحقق من المسار إلى شهادات SSL. أعد تشغيل خادم الويب Nginx لتنفيذ التغيير في التكوين.
sudo systemctl restart nginx
قبل أن تتمكن من البدء في استخدام التطبيق على موقع SSL الآمن ، ستحتاج إلى إجراء تغيير في التكوين في OpenMeetings. قم بتسجيل الدخول إلى لوحة التحكم الإدارية لـ OpenMeetings وانتقل إلى " Administration >> Configuration
". في جدول الهوية والمفتاح والقيمة ؛ تجد application.base.url
. قم بتغيير قيمته https://meetings.example.com
وفقًا لاسم المجال الخاص بك. احفظ التكوين بالنقر فوق أيقونة الحفظ أعلاه.
أعد تشغيل خدمة OpenMeetings.
sudo systemctl restart openmeetings
الآن ، يمكنك التصفح https://meetings.example.com
باستخدام متصفح الويب المفضل لديك وتسجيل الدخول لاستخدام التطبيق.
تهانينا ، تم تثبيت Apache OpenMeetings على الخادم الخاص بك. يمكنك دعوة أصدقائك والبدء في استخدام OpenMeetings للمؤتمرات عبر الإنترنت.
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد