26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Meteor.js, Node.js düşünülerek yazılmış açık kaynaklı bir JavaScript çerçevesidir. Saf JavaScript'te web uygulamaları oluşturma görünümü nedeniyle popülerdir. Meteor, web tarayıcısında çalışan ön uç JavaScript desteğinin yanı sıra ana sunucuda çalışacak arka uç JavaScript'i de içerir. React ve Angular.js gibi ön uç JavaScript çerçeveleri ve popüler bir NoSQL veritabanı olan MongoDB ile çok iyi bütünleşir. Meteor.js'yi seçmek için birkaç büyük neden şöyledir:
Meteor.js tam bir yığın çerçevedir. Böylece, ihtiyacınız olan her şeyi elde edersiniz: Veritabanı, ön uç, arka uç. Meteor hepsini birbirine bağlamak için inanılmaz bir iş çıkarıyor.
Hız. Meteor'un sezgisel paket sistemi, uygulamanızı mükemmelleştirmek için ihtiyaç duyabileceğiniz birçok araç sunar.
Meteor Developer Group'un yanı sıra onu kullanan diğer geliştiricilerden de iyi bir desteği var. Karşılaşabileceğiniz sorunları kolayca çözebilir ve hızlı bir şekilde çözebilirsiniz.
Bu derste Ubuntu 16.04 ile ilgili aşağıdaki hedeflere ulaşacağız:
Node.js
Javascript çalışma zamanımızı yükleyin .
Yükleyin Meteor.js
.
MongoDB
Meteor'un tercih ettiği veritabanını kurun .
Apache
Ters proxy sunucumuzu yükleyin ve varsa alanımızı ayarlayın.
Web sitemizi test edin.
Web sitemizi üretim için hazırlayın.
Öncelikle JavaScript yorumcumuz olan Node.js'yi ve Meteor'un çekirdeğini yüklemeniz gerekir. Meteor'u ve gelecekte sahip olabileceğimiz diğer Node.js uygulamalarını çalıştırmamıza izin verecektir. Bu durumda, Node.js 8'i kuracağız. İndirmeyi başlatmak için terminalinizde aşağıdakileri yapmanız yeterlidir.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
İndirme ve kurulumun tamamlanmasını bekleyin.
Sonra, veritabanımızı yükleyeceğiz: MongoDB. MongoDB ücretsiz, açık kaynaklı bir NoSQL belge veritabanı ve Meteor'un tercih ettiği veritabanıdır. Geleneksel bir SQL veritabanındaki yapılandırılmış tabloların aksine, belgeleri için JSON benzeri bir biçim kullanır.
APT
(Advanced Packaging Terminal) tarafından kullanılan MongoDB genel anahtarını içe aktarın . Bu APT'nin paketi doğrulamasına izin verir; bu durumda, MongoDB.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Ubuntu 16.04 için gerekli liste dosyasını oluşturun.
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
MongoDB kurulumunu başlatın ve kurulumun tamamlanmasını bekleyin.
sudo apt update && sudo apt install mongodb-org -y
Düzenlemek için systemd hizmetini açın.
sudo nano /etc/systemd/system/mongodb.service
Systemd hizmetini tamamlamak için aşağıdakileri kopyalayıp yapıştırın.
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
Control-O
Kaydetmek için " Control-X
" ve çıkmak için " " tuşlarını kullanın .
sudo systemctl start mongodb
Terminalinize yazarak MongoDB systemd hizmetini çalıştırın .
Başarıyla başlatıldığını doğrulamak için aşağıdakileri yazın.
sudo systemctl status mongodb
Hizmetin etkin olduğunu göreceksiniz.
Ardından, Apache'yi kuracağız. Apache, bu öğreticide kullanacağımız şey olan ters proxy olarak da işlev gören ücretsiz ve açık kaynaklı bir web sunucusu yazılımıdır. Meteor.js Başvurumuzu bağlamak için ters bir proxy gereklidir port 80
. Node.js, kök erişim olmadan uygulamaların bu bağlantı noktasında çalışmasını engeller. Apache root
otomatik olarak çalıştığı gibi bağlanır port 80
, bu nedenle web sitemizi çalıştırma zamanı geldiğinde endişelenmemize gerek kalmaz.
Apache'yi yükleyin.
sudo apt update && sudo apt install apache2
Gibi web bağlantı noktalarına erişime izin vermek port 80
için güvenlik duvarımızı Apache için yapılandırmamız gerekiyor. Bunu UFW
(Karmaşık Güvenlik Duvarı) ile yapıyoruz .
sudo ufw allow 'Apache Full'
Bu, " Apache Full
" profiline erişime izin verecektir . Bu bize gelen trafiği verir port 80
, bu da uygulamamızın üzerinde çalışacağı şeydir.
Şimdi web çerçevemizi kuracağız: Meteor.js. Yüklemek için Meteor ekibi tarafından sağlanan basit bir bash betiği kullanacağ��z.
curl https://install.meteor.com/ | sh
Kurulumun bitmesini bekleyin. Temelde komut dosyasının yaptığı şey, Meteor'u resmi web sitesinden indirir ve global olarak yükler, böylece her yerden kullanabiliriz. Tamamlandığında, uygulama dizinimizi oluşturabiliriz. Meteor'un bunu yapmak için kullanmamız için kullanışlı küçük bir aracı var meteor create
. Uygulama dizininizi oluşturmak için aşağıdakileri yazın.
meteor create <projectname>
Klasör, belirtilen adla ( <projectname>
) oluşturulacaktır.
Artık uygulama dizinimizi kurduk, ters proxy'imizi kurmaya devam edebiliriz. Apache, Apache için bir mod_proxy
proxy uygulayan adlı bir modül kullanır .
sudo apt-get install libapache2-mod-proxy-html libxml2-dev -y
Bu, modülü kuracak ve Apache'nin kullanabilmesini sağlayacaktır.
Ardından, Apache'nin çalışması için gereken tüm modülleri etkinleştirmemiz gerekecek. Bunu a2enmod
Apache için modüller sağlayan bir araçla yapacağız . Bu modüller, ters proxy'den faydalanmamızı sağlayacaktır. Bu komutları terminalinize yazmanız yeterlidir.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
Bundan sonra, varsayılan Apache sitesinin başlatılmasını devre dışı bırakmamız gerekecek, böylece kendi sitemizi başlatabiliriz. Aksi takdirde, varsayılan Apache uygulaması bizimkini geçersiz kılacaktır. Varsayılan siteyi devre dışı bırakmak için aşağıdakileri yapmanız yeterlidir.
sudo a2dissite 000-default
Şimdi sanal ana bilgisayar dosyamızı oluşturacağız. Bunu yapmak için bir metin editörü açmanız yeterlidir.
sudo nano /etc/apache2/sites-available/<projectname>
Aşağıdakileri kopyalayıp yapıştırın.
<VirtualHost *:80>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
# Servers to proxy the connection, or
# List of application servers Usage
ProxyPass / http://0.0.0.0:3000/
ServerName localhost
</VirtualHost>
VirtualHost *:80
: Apache'ye web uygulamamız için istediğimiz port 80'e bağlanmasını söyler.
ProxyPass
: Ters proxy'ye iletmek istediğiniz sitenin IP adresi. Bu büyük olasılıkla VPS'nizin IP'si olacaktır
ServerName
: Sunucunuzun adı (varsayılan ad genellikle localhost
).
Gerekli ayarları yapılandırmayı tamamladıktan sonra Control-O
kaydetmek için " Control-X
" ve çıkmak için " " tuşlarını kullanın.
Test etmek ve web sitesinin çalıştığından emin olmak için proje dizinine aşağıdakileri yazın.
meteor
Sitenizin başarıyla başlatıldığını gösteren aşağıdaki çıktıyı göreceksiniz.
=> App running at: http://localhost:3000/
Meteor'un varsayılan olarak dinlediğini unutmayın port 3000
.
Uygulamamızın çalışmaya devam edebildiğinden emin olmak için bir systemd hizmeti kullanacağız. Yukarıda MongoDB ile yaptığımız gibi, bu sistem hizmeti de web sitemizin sistemimiz her başladığında çalışmaya başlamasını ve çalışmaya devam etmesini sağlayacaktır. Ayrıca, herhangi bir nedenle çökmesi durumunda uygulamamızı yeniden başlatacaktır. Sistem hizmetimizi ayarlamak için terminalinize aşağıdakileri yazın.
sudo nano /etc/systemd/system/<projectname>.service
Dosyanızın nasıl görünmesini istediğiniz aşağıda açıklanmıştır.
[Service]
WorkingDirectory=/home/<yourusername>/<projectname>
ExecStart=/usr/local/bin/meteor --production
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<projectName>
User=<yourusername>
Environment=NODE_ENV=production
Environment=PWD=/home/<yourusername>/<projectname>
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1
Not : Projenin adı ve VPS kullanıcı adı ile değiştirmeyi unutmayın .projectname
yourusername
Aklınızda bulundurmanız gereken bazı önemli satırlar.
WorkingDirectory
: Uygulamanızın dizini.
Restart
: Uygulamanın yeniden başlatılıp başlatılmayacağı herhangi bir nedenle durur.
User
: Kullanıcı adınızı.
Environment=PWD
: Özdeş WorkingDirectory
.
Environment=PORT
: Uygulamanızın çalıştığı bağlantı noktası. Varsayılan değer 3000
.
Dosyayı kaydedip kapatın.
Şimdi hizmeti etkinleştirip başlatacağız.
sudo systemctl enable <projectname>.service
<projectname>
Oluşturduğumuz hizmet dosyasının adı nerede .
Sonra hizmeti başlatacağız.
sudo systemctl start <projectname>.service
Başvurunuz başlayacaktır. Başlatıldığını doğrulamak için aşağıdakileri çalıştırın.
sudo systemctl status <projectname>
Hizmetin başarıyla başlatıldığını doğrulayarak etkin olduğunu göreceksiniz.
Sonra, web sitemizi kontrol edeceğiz. Tercih ettiğiniz web tarayıcınızda IP adresinize gidin.
http://your-server-ip/
Her şeyi doğru şekilde yaptığınızı doğrulayan Meteor örnek ekranını göreceksiniz.
Şimdi uygulamamızı başlattığımıza göre, onu yönetmemiz gerekecek.
sudo systemctl restart <projectname>
sudo systemctl stop <projectname>
sudo systemctl status <projectname>
journalctl -u <projectname>
Artık MongoDB, Apache ve Meteor'u başarıyla yapılandırdınız ve üretim için bir Meteor.js web sunucusu oluşturdunuz. Web sitenizi ön uçta ve arka uçta tasarlamak artık gerisi size kalmış. İhtiyacınız olabilecek verileri depolamak için MongoDB'ye ve NPM
arka ucunuzu daha da güçlendirmek için Düğüm Paketi Yöneticisi ( ) aracılığıyla çeşitli modüller sunan Node.js'ye erişebilirsiniz . Daha fazla dokümantasyon için, web sitenizi beğeninize göre nasıl özelleştireceğinizi daha fazla öğrenebileceğiniz Meteor sitesini ziyaret etmekten çekinmeyin . Ayrıca, veritabanı işlemleri ile uğraşırken MongoDB belgelerine başvurabilirsiniz .
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun