نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعد Hapi.js إطار عمل Node.js ثريًا وقويًا وقويًا مصممًا لبناء تطبيقات الويب في النظام البيئي Node.js. تصميمه البسيط يجعل من السهل البدء به. يستخدم Hapi العديد من أحدث ميزات JavaScript ES6 في جوهرها ، مثل وعود ES6. بالنسبة لأولئك منكم الذين استخدموا Express من قبل ، يتيح لك Hapi تجربة شيء جديد ، وتجربة جميع ميزات JavaScript الأخيرة.
في هذا البرنامج التعليمي ، سيكون هدفنا هو إعداد صفحة ويب Hapi.js الأساسية ، والتي يتم استضافتها من Vultr VPS ، على Ubuntu 16.04 LTS. بالنسبة لأولئك الذين لديهم مجال لموقعهم ، سوف نستخدم وكيل عكسي لربط نطاقنا بموقعنا. أخيرًا ، سنتعلم كيفية إدارتها باستخدام مدير العمليات. الآن بعد أن ابتعدنا عن الطريق ، فلنبدأ.
سنحتاج إلى تثبيت Node.js. للقيام بذلك على Ubuntu 16.04 LTS ، اتبع هذه التعليمات.
سنحتاج إلى إضافة مستودع NodeSource APT ، الذي يحتوي على أحدث إصدار LTS من Node.js.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
نقوم بتنزيل برنامج نصي سنستخدمه لإضافة المستودع إلى قائمة مصادرنا ، بالإضافة إلى تثبيت Node.js من مستودع NodeSource.
بالإضافة إلى تثبيت Node.js نفسه ، سنحتاج أيضًا إلى تثبيت بعض أدوات البناء الضرورية ، والتي ستساعد في بناء أي وحدات قد نحتاج إلى تثبيتها.
sudo apt-get install -y build-essential
يؤدي هذا ببساطة إلى تنزيل أدوات الإنشاء وتثبيتها من المستودع.
من الممارسات الجيدة تعيين مجلد سنستخدمه لتطبيقنا ، والذي سيحتوي على جميع بيانات تطبيقنا ، مثل ملفات التكوين ونصوص بدء التشغيل. قم بإنشاء مجلد ، وقم بتسميته كما تريد. من أجل هذا البرنامج التعليمي ، سأفترض أنك قمت بتسميته site
.
mkdir site
بمجرد الانتهاء من إنشاء المجلد ، يمكننا الآن تغييره. تأكد من أنك في الدليل الذي أنشأته للتو ، ابدأ تشغيل معالج حزمة NPM.
npm init
سيطلب منك إدخال بعض الأشياء المختلفة ، مثل اسم التطبيق الخاص بك ، ملف البداية ، الترخيص وما إلى ذلك. يمكنك ترك معظم الحقول افتراضيًا ، باستثناء الحقول الأكثر وضوحًا ، مثل اسم التطبيق الخاص بك. في النهاية ، ستبدو كما يلي:
{
"name": "site",
"version": "1.0.0",
"description": "Hapi.js site",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "rich",
"license": "MIT"
}
بمجرد أن تكون راضيًا عن النتيجة ، انقر ENTERلحفظ الملف.
الآن بعد أن تم إنشاء الدليل الخاص بك بنجاح ، يمكننا الآن المتابعة لتثبيت Hapi.js. كما ذكرنا سابقًا ، سوف نستخدم NPM لتنزيل Hapi.js ، فضلاً عن تبعياته ، لمشروعنا. في دليل المشروع ، قم بتشغيل ما يلي.
npm install hapi.js
يؤدي هذا إلى تنزيل Hapi.js من NPM وتثبيته في دليل مشروعنا. في نفس التشغيل ، يتم أيضًا تنزيل أي تبعيات قد يعتمد عليها Hapi.js لراحتنا.
حان الوقت الآن لإعداد ملف تطبيق Hapi.js الأساسي. سيحتوي هذا على جميع التعليمات البرمجية الخاصة بالتطبيق. أبعد من ذلك ، يمكننا التوسع في رمز التطبيق الخاص بنا ، وإضافة المزيد من الأشياء إليه ، كما نراه مناسبًا.
بعد ذلك ، سنقوم بإنشاء ملف البداية. ارجع إلى main
قسم package.json
الملف ، لتحديد كيفية تسمية الملف بالضبط. نظرًا لأنني استخدمت نظام التسمية الافتراضي ، فسيتم استدعاء ملفنا index.js
.
nano index.js
بمجرد أن تكون داخل محرر نص nano ، قم بإنشاء كود التطبيق الأساسي الخاص بك ، مثل ذلك.
const Hapi=require('hapi');
const server=Hapi.server({
host:'localhost',
port: 3000
});
server.route({
method:'GET',
path:'/',
handler:((request,h)) => {
return 'Sample Hapi.js Application';
}
});
async function start() {
try {
await server.start();
} catch (err) {
console.log(err);
process.exit(1);
}
console.log(`Our server is running! ${server.info.uri}`);
};
start();
أولاً ، نقوم باستيراد وحدة Hapi. بعد ذلك ، نقوم بتهيئة مُنشئ الخادم الخاص بنا ، والذي يحتوي على المضيف الذي نريد تشغيل الخادم عليه ، وكذلك المنفذ ، 3000
لهذا البرنامج التعليمي. بعد ذلك ، قمنا بإعداد جهاز توجيه أساسي ، والذي يشير إلى أنه عندما يقوم شخص ما بزيارة الموقع ، فسيتم استقباله برسالة بسيطة. على رأس كل شيء ، لدينا وظيفة غير متزامنة ، لبدء تشغيل خادمنا ، والذي سيتم تسجيل الدخول إلى وحدة التحكم التي يعمل عليها الخادم الخاص بنا. عند الانتهاء ، احفظ وأغلق الملف ( CTRL+ X)
الآن بعد أن تم إعداد ملفنا الرئيسي ، نحن على استعداد لبدء تطبيقنا.
node index.js
إذا رأيت " Our server is running!
" في وحدة التحكم ، فعندئذ بدأ تشغيل الخادم بنجاح.
نظرًا لأن Nginx متوفر في مستودعات Ubuntu الافتراضية ، فإن التثبيت بسيط. ما عليك سوى تحديث قوائم حزمك وتثبيتها.
sudo apt update
sudo apt install nginx -y
بعد تحديث قوائم الحزم ، سيتم تثبيت Nginx وتبعياته.
لكي يقوم Nginx بعكس الخادم الوكيل لتطبيقنا ، سنحتاج إلى إنشاء ملف تكوين. سيحتوي ملف التكوين هذا على معلومات حول تطبيقنا ، والتي ستستخدمها Nginx للوكيل العكسي.
احذف التهيئة الافتراضية التي أنشأها Nginx ، حيث سنقوم باستبدالها بتكويننا فيما بعد.
sudo rm /etc/nginx/sites-enabled/default
قم بإنشاء ملف جديد في sites-available
المجلد. أما بالنسبة للتسمية ، فيمكننا الالتزام ببساطة من site
أجل البساطة.
sudo nano /etc/nginx/sites-available/site
في الملف ، الصق ما يلي ، ثم احفظه.
server {
listen 80;
location / {
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host
$http_host;
proxy_set_header
X-NginX-Proxy true; proxy_pass
http://127.0.0.1:3000/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade
$http_upgrade;
proxy_set_header Connection
"upgrade";
proxy_redirect off;
proxy_set_header
X-Forwarded-Proto $scheme;
}
}
في هذا الملف ، نطلب من Nginx الاستماع على المنفذ 80
. نقوم أيضًا بتعيين مرور الوكيل على localhost
العنوان والمنفذ 3000
، وهو نفس المنفذ مثل تطبيق Hapi الخاص بنا.
الآن يمكنك العودة إلى دليل التطبيق الخاص بك ، وبدء الموقع. بمجرد بدء الموقع ، انتقل ببساطة إلى http://yourdomain.com
أو http://yourip
، وسترى النص " Hello World
".
يمكن العثور على PM2 في مستودع NPM ، ويمكنك تثبيته عالميًا بحيث يمكن الوصول إليه من أي مكان ، مثل ذلك.
sudo npm install pm2 -g
تشير -g
العلامة في النهاية إلى أننا نريد تثبيت الوحدة النمطية في مجلد الوحدات النمطية العامة ، مما سيسمح لنا باستخدامها خارج دليل مشروعنا. يتم استخدام هذا من أجل أن يتصرف مشروعنا مثل تطبيق النظام العادي.
بمجرد تثبيت PM2 ، انتقل مرة أخرى إلى دليل المشروع الخاص بك. ستكون الصيغة لبدء تطبيقنا مختلفة قليلاً الآن. هذه هي الطريقة التي سنقوم بها مع PM2.
pm2 start index.js --name site
نحن نستخدم وظيفة بدء PM2 ، التي تقوم بشكل أساسي بإنشاء ملف تعريف لتطبيقنا ، تحت الاسم site
. بعد تشغيل هذا الأمر ، سيبدأ موقع الويب الخاص بك ، ولكن ستلاحظ أن السجلات لن تظهر. ذلك لأن طريقة عرض السجلات الآن مختلفة.
pm2 logs site
يمكنك أيضًا تحديد عدد سطور السجلات التي تريد رؤيتها باستخدام --lines
الوسيطة.
لقد نجحت في إعداد خادم ويب Hapi.js ، وعكسه باستخدام Nginx ، وتعلمت كيفية إدارته بشكل أفضل مع PM2. مع هذه المعرفة ، يمكنك التوسع في هذا البرنامج التعليمي وإنشاء تطبيق Hapi.js متقدم جدًا. لمعرفة المزيد حول إمكانيات هابي ، قم بزيارة وثائقهم الرسمية . إذا كنت ترغب في معرفة المزيد حول إمكانيات PM2 ، فراجع دليل البدء السريع الخاص بهم .
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد