Büyük Veri Dostu Apache Accumulo NoSQL Veritabanının Ubuntu 14.04 Üzerine Kurulumu
Giriş: Apache Accumulo ve Büyük Veri Ekosistemi
Büyük veri dünyasında, yüksek performanslı, ölçeklenebilir ve güvenli veritabanı çözümlerine olan ihtiyaç her geçen gün artmaktadır. Apache Accumulo, bu ihtiyaçları karşılamak üzere tasarlanmış, dağıtık bir anahtar-değer depolama sistemidir. Google’ın Bigtable tasarımına dayanan Accumulo, Apache Hadoop’un HDFS (Hadoop Distributed File System) üzerinde çalışır ve Apache ZooKeeper ile dağıtık koordinasyon sağlar. Accumulo’yu diğer NoSQL veritabanlarından ayıran en önemli özelliklerinden biri, hücre düzeyinde (cell-level) güvenlik sunmasıdır. Bu, farklı kullanıcıların aynı tabloda farklı verilere erişim yetkilerinin ayrı ayrı belirlenebilmesini sağlar ki bu, özellikle hassas verilerin yönetildiği senaryolarda kritik bir avantajdır.
Ubuntu 14.04, uzun süreli destek (LTS) sunan ve birçok kurumsal ortamda hala kullanılan bir işletim sistemi sürümüdür. Bu makalede, Apache Accumulo’nun bu spesifik Ubuntu sürümü üzerine nasıl kurulacağını adım adım, detaylı bir şekilde ele alacağız. Amacımız, okuyuculara hem tek düğümlü (pseudo-distributed) bir kurulum için pratik bir rehber sunmak hem de Accumulo’nun temel bileşenleri ve konfigürasyonları hakkında derinlemesine bilgi vermektir. Bu kurulum, üretim ortamları için bir başlangıç noktası olabilir veya geliştirme ve test amaçlı kullanılabilir.
Apache Accumulo’nun kurulumu, genellikle üç ana bileşenin doğru bir şekilde yapılandırılmasını gerektirir:
1. Apache Hadoop: Accumulo’nun verilerini depoladığı dağıtık dosya sistemi (HDFS) ve kaynak yönetimi (YARN) katmanını sağlar.
2. Apache ZooKeeper: Accumulo kümesindeki düğümler arasında dağıtık koordinasyon, durum yönetimi ve yapılandırma bilgilerinin tutulması için kullanılır.
3. Apache Accumulo: Veritabanının kendisi, veri depolama, sorgulama ve güvenlik özelliklerini sunar.
Bu makale, her bir bileşenin ayrı ayrı kurulumunu ve ardından Accumulo’nun bu bileşenlerle entegrasyonunu kapsayacaktır. Kurulum sürecinde karşılaşabilecek olası sorunlara ve çözüm önerilerine de değinilecektir.
Ön Gereksinimler
Apache Accumulo’yu Ubuntu 14.04 üzerine kurmadan önce, sisteminizin belirli gereksinimleri karşıladığından emin olmanız gerekir. Bu gereksinimler, sorunsuz bir kurulum ve stabil bir çalışma ortamı için kritik öneme sahiptir.
Sistem Gereksinimleri
* İşletim Sistemi: Ubuntu 14.04 (64-bit önerilir).
* Bellek (RAM): En az 4 GB RAM önerilir, ancak büyük veri setleriyle çalışmak veya üretim ortamı için daha fazlası (8 GB veya üzeri) gereklidir.
* Disk Alanı: En az 50 GB boş disk alanı önerilir. Hadoop HDFS’nin veri depolama ihtiyaçları ve log dosyaları için bu alan önemlidir.
* İşlemci (CPU): Çok çekirdekli bir işlemci tercih edilir.
Yazılım Bağımlılıkları
* Java Geliştirme Kiti (JDK): Apache Accumulo, Java sanal makinesi (JVM) üzerinde çalışır. OpenJDK 7 veya OpenJDK 8 sürümü önerilir. Bu makalede OpenJDK 7 kullanacağız.
* SSH Sunucusu: Hadoop ve Accumulo bileşenlerinin düğümler arasında şifresiz iletişim kurabilmesi için SSH sunucusunun kurulu ve yapılandırılmış olması gerekir. Tek düğümlü (pseudo-distributed) kurulumda bile, yerel makineye şifresiz SSH erişimi gereklidir.
* rsync: Dosya senkronizasyonu için kullanılan bir araçtır ve Hadoop bileşenleri tarafından kullanılabilir.
Temel Linux Bilgisi
* Temel komut satırı (CLI) bilgisi.
* sudo komutunu kullanarak yönetici ayrıcalıklarını kullanma becerisi.
* Metin düzenleyicileri (nano, vi veya gedit) ile dosya düzenleme bilgisi.
Adım 1: Sistem Güncelleme ve Temel Bağımlılıkların Kurulumu
Kuruluma başlamadan önce, sisteminizin güncel olduğundan ve gerekli temel araçların yüklü olduğundan emin olmalıyız.
Sistem Güncelleme
İlk olarak, paket listesini güncelleyin ve yüklü paketleri yükseltin:
sudo apt-get update
sudo apt-get upgrade -y
SSH Sunucusu ve rsync Kurulumu
Hadoop ve Accumulo’nun düzgün çalışabilmesi için openssh-server ve rsync paketlerini yükleyin:
sudo apt-get install openssh-server rsync -y
Şifresiz SSH Erişimi Yapılandırması
Hadoop ve Accumulo, kendi süreçlerini başlatmak için şifresiz SSH bağlantılarına ihtiyaç duyar. Bu, tek düğümlü kurulumda bile geçerlidir.
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
Bu komutlar, yeni bir SSH anahtar çifti oluşturur ve genel anahtarı yetkili anahtarlar dosyasına ekleyerek yerel makineye şifresiz erişimi mümkün kılar. Doğrulamak için aşağıdaki komutu kullanabilirsiniz:
ssh localhost
İlk bağlantıda bir onay isteği gelebilir, yes yazarak devam edin. Şifre sormadan bağlanabiliyorsanız, yapılandırma başarılıdır. Çıkış yapmak için exit yazın.
Adım 2: Java Geliştirme Kiti (JDK) Kurulumu
Apache Accumulo ve tüm Hadoop ekosistemi Java tabanlıdır. Bu nedenle, bir Java Geliştirme Kiti (JDK) kurulu olması zorunludur. Bu makalede OpenJDK 7’yi tercih edeceğiz, zira Ubuntu 14.04 için yaygın ve uyumlu bir seçenektir.
OpenJDK 7 Kurulumu
Aşağıdaki komutla OpenJDK 7’yi yükleyin:
sudo apt-get install openjdk-7-jdk -y
Java Sürümünü Doğrulama
Kurulumdan sonra Java sürümünü kontrol ederek doğru bir şekilde yüklendiğinden emin olun:
java -version
Çıktı, java version "1.7.0_XX" veya benzeri bir şey olmalıdır.
JAVA_HOME Ortam Değişkenini Ayarlama
Hadoop, ZooKeeper ve Accumulo’nun Java’yı bulabilmesi için JAVA_HOME ortam değişkeninin ayarlanması gerekir. Java’nın yüklü olduğu yolu bulmak için:
sudo update-alternatives --config java
Buradan Java 7’nin yolunu kopyalayın (genellikle /usr/lib/jvm/java-7-openjdk-amd64 gibi bir yoldur).
Ardından, bu değişkeni .bashrc dosyanıza ekleyin:
echo "export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64" >> ~/.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
source ~/.bashrc
Değişkenin doğru ayarlandığını kontrol edin:
echo $JAVA_HOME
Adım 3: Apache Hadoop Kurulumu
Accumulo, verilerini depolamak için Hadoop HDFS’yi kullanır ve kaynak yönetimi için YARN’a dayanır. Bu nedenle, Accumulo’dan önce Hadoop’un kurulması ve yapılandırılması gerekmektedir. Ubuntu 14.04 ile uyumlu bir Hadoop sürümü olarak 2.7.x serisini tercih edeceğiz.
Hadoop İndirme ve Çıkarma
Hadoop’u Apache web sitesinden indirin. Örneğin, hadoop-2.7.7.tar.gz sürümünü kullanabiliriz.
cd /tmp
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
sudo tar -xvzf hadoop-2.7.7.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-2.7.7 /usr/local/hadoop
Ardından, Hadoop için bir kullanıcı ve grup oluşturun (isteğe bağlı ama iyi bir uygulamadır):
sudo addgroup hadoop
sudo adduser --ingroup hadoop hduser
sudo chown -R hduser:hadoop /usr/local/hadoop
Bu adımlardan sonra, hduser kullanıcısına geçiş yapabilir veya mevcut kullanıcınızla devam edebilirsiniz. Bu rehberde mevcut kullanıcınızla devam ettiğinizi varsayıyoruz, ancak hduser kullanıcısına geçmek daha güvenli bir yaklaşımdır. Eğer hduser kullanıcısına geçerseniz, tüm komutları bu kullanıcı altında çalıştırmanız ve SSH anahtarlarını da bu kullanıcı için oluşturmanız gerekecektir.
Hadoop Ortam Değişkenlerini Ayarlama
Hadoop’un doğru çalışabilmesi için ortam değişkenlerini ayarlayın:
echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc
echo "export HADOOP_INSTALL=\$HADOOP_HOME" >> ~/.bashrc
echo "export HADOOP_MAPRED_HOME=\$HADOOP_HOME" >> ~/.bashrc
echo "export HADOOP_COMMON_HOME=\$HADOOP_HOME" >> ~/.bashrc
echo "export HADOOP_HDFS_HOME=\$HADOOP_HOME" >> ~/.bashrc
echo "export YARN_HOME=\$HADOOP_HOME" >> ~/.bashrc
echo "export HADOOP_COMMON_LIB_NATIVE_DIR=\$HADOOP_HOME/lib/native" >> ~/.bashrc
echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> ~/.bashrc
source ~/.bashrc
Hadoop Yapılandırması (Tek Düğümlü Pseudo-Distributed Mod)
Hadoop’u tek bir makinede dağıtık modda çalıştırmak için bazı yapılandırma dosyalarını düzenlememiz gerekir. Bu dosyalar /usr/local/hadoop/etc/hadoop dizininde bulunur.
1. hadoop-env.sh
JAVA_HOME değişkenini ayarlayın:
sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
Dosyada export JAVA_HOME= satırını bulun ve aşağıdaki gibi güncelleyin (başına # koyarak yorum satırından çıkarın):
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
2. core-site.xml
HDFS’nin varsayılan dosya sistemini ve portunu tanımlayın:
sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml
İçeriği aşağıdaki gibi güncelleyin:
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
/usr/local/hadoop_tmp
hadoop_tmp dizinini oluşturun ve izinlerini ayarlayın:
sudo mkdir -p /usr/local/hadoop_tmp
sudo chown -R $(whoami):$(whoami) /usr/local/hadoop_tmp
3. hdfs-site.xml
HDFS’nin NameNode ve DataNode dizinlerini ve replikasyon faktörünü ayarlayın. Tek düğümlü kurulum için replikasyon faktörü 1 olmalıdır.
sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
İçeriği aşağıdaki gibi güncelleyin:
dfs.replication
1
dfs.namenode.name.dir
file:///usr/local/hadoop_tmp/dfs/name
dfs.datanode.data.dir
file:///usr/local/hadoop_tmp/dfs/data
4. mapred-site.xml
Bu dosya varsayılan olarak mapred-site.xml.template olarak bulunur. Kopyalayıp düzenleyin:
sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
sudo nano /usr/local/hadoop/etc/hadoop/mapred-site.xml
İçeriği aşağıdaki gibi güncelleyin:
mapreduce.framework.name
yarn
5. yarn-site.xml
YARN’ın NodeManager ve ResourceManager ayarlarını yapın:
sudo nano /usr/local/hadoop/etc/hadoop/yarn-site.xml
İçeriği aşağıdaki gibi güncelleyin:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.hostname
localhost
HDFS Formatlama
Hadoop HDFS’yi ilk kez kullanmadan önce formatlamanız gerekir. Bu işlem yalnızca bir kez yapılmalıdır, aksi takdirde mevcut veriler silinir!
hdfs namenode -format
Çıktıda “successfully formatted” mesajını görmelisiniz.
Hadoop Servislerini Başlatma
Şimdi Hadoop NameNode, DataNode, ResourceManager ve NodeManager servislerini başlatın:
start-dfs.sh
start-yarn.sh
Servislerin düzgün bir şekilde çalıştığını doğrulamak için jps komutunu kullanın:
jps
Çıktıda NameNode, DataNode, ResourceManager ve NodeManager süreçlerini görmelisiniz.
Adım 4: Apache ZooKeeper Kurulumu
Apache ZooKeeper, dağıtık sistemler için merkezi bir koordinasyon hizmetidir. Accumulo, ZooKeeper’ı küme üyelerinin durumunu, yapılandırma bilgilerini ve lider seçimini yönetmek için kullanır. Ubuntu 14.04 ile uyumlu bir ZooKeeper sürümü olarak 3.4.x serisini tercih edeceğiz.
ZooKeeper İndirme ve Çıkarma
ZooKeeper’ı Apache web sitesinden indirin. Örneğin, zookeeper-3.4.14.tar.gz sürümünü kullanabiliriz.
cd /tmp
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
sudo tar -xvzf zookeeper-3.4.14.tar.gz -C /usr/local/
sudo mv /usr/local/zookeeper-3.4.14 /usr/local/zookeeper
ZooKeeper dizininin sahibini değiştirin:
sudo chown -R $(whoami):$(whoami) /usr/local/zookeeper
ZooKeeper Ortam Değişkenlerini Ayarlama
echo "export ZOOKEEPER_HOME=/usr/local/zookeeper" >> ~/.bashrc
echo "export PATH=\$PATH:\$ZOOKEEPER_HOME/bin" >> ~/.bashrc
source ~/.bashrc
ZooKeeper Yapılandırması
ZooKeeper için bir veri dizini oluşturun ve yapılandırma dosyasını hazırlayın.
mkdir -p /usr/local/zookeeper/data
Yapılandırma dosyasını şablondan kopyalayın ve düzenleyin:
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
sudo nano /usr/local/zookeeper/conf/zoo.cfg
dataDir özelliğini oluşturduğunuz veri dizinine işaret edecek şekilde güncelleyin:
# the directory where the snapshot files are stored.
dataDir=/usr/local/zookeeper/data
the port at which the clients will connect
clientPort=2181
Tek düğümlü kurulum için başka bir değişiklik yapmaya gerek yoktur.
ZooKeeper Servisini Başlatma
ZooKeeper servisini başlatın:
zkServer.sh start
Servisin durumunu kontrol edin:
zkServer.sh status
Çıktıda Mode: standalone veya Mode: follower (eğer bir küme lideri seçildiyse) görmelisiniz.
Adım 5: Apache Accumulo Kurulumu
Hadoop ve ZooKeeper başarıyla kurulduktan ve yapılandırıldıktan sonra, artık Apache Accumulo’yu kurmaya hazırız. Ubuntu 14.04, Hadoop 2.7.x ve ZooKeeper 3.4.x ile uyumlu bir Accumulo sürümü olarak 1.7.x veya 1.8.x serisini tercih edebiliriz. Bu makalede Accumulo 1.7.0’ı kullanacağız.
Accumulo İndirme ve Çıkarma
Accumulo’yu Apache web sitesinden indirin. Örneğin, accumulo-1.7.0-bin.tar.gz sürümünü kullanabiliriz.
cd /tmp
wget https://archive.apache.org/dist/accumulo/1.7.0/accumulo-1.7.0-bin.tar.gz
sudo tar -xvzf accumulo-1.7.0-bin.tar.gz -C /usr/local/
sudo mv /usr/local/accumulo-1.7.0 /usr/local/accumulo
Accumulo dizininin sahibini değiştirin:
sudo chown -R $(whoami):$(whoami) /usr/local/accumulo
Accumulo Ortam Değişkenlerini Ayarlama
echo "export ACCUMULO_HOME=/usr/local/accumulo" >> ~/.bashrc
echo "export PATH=\$PATH:\$ACCUMULO_HOME/bin" >> ~/.bashrc
source ~/.bashrc
Accumulo Yapılandırması
Accumulo’nun yapılandırma dosyaları /usr/local/accumulo/conf dizininde bulunur.
1. accumulo-env.sh
Bu dosya, Accumulo’nun Java, Hadoop ve ZooKeeper yollarını bilmesini sağlar.
sudo nano /usr/local/accumulo/conf/accumulo-env.sh
Aşağıdaki satırları bulun ve güncelleyin (başına # koyarak yorum satırından çıkarın ve doğru yolları belirtin):
# General Hadoop configuration
export HADOOP_HOME=/usr/local/hadoop
Point to your Java installation
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
Point to your ZooKeeper installation
export ZOOKEEPER_HOME=/usr/local/zookeeper
Set Accumulo log directory (optional, but good practice)
export ACCUMULO_LOG_DIR=/usr/local/accumulo/logs
Log dizinini oluşturun:
mkdir -p /usr/local/accumulo/logs
2. accumulo-site.xml
Bu dosya, Accumulo örneğinin temel yapılandırmasını içerir.
sudo nano /usr/local/accumulo/conf/accumulo-site.xml
İçeriği aşağıdaki gibi güncelleyin:
instance.zookeeper.host
localhost:2181
Comma separated list of zookeeper servers and ports
instance.secret
YOUR_ACCUMULO_SECRET
A secret unique to a given instance of Accumulo.
All servers in the same instance must share the same secret.
Changing this property will cause the Accumulo instance to become
unusable. This value should be a UUID (alphanumeric characters
and hyphens). It is recommended that you generate a new secret
when you first configure Accumulo.
tserver.memory.maps.max
256M
The maximum amount of memory that can be used for in-memory maps
before flush to disk is forced.
tserver.cache.data.size
128M
The maximum amount of memory that can be used for caching data.
tserver.cache.index.size
64M
The maximum amount of memory that can be used for caching indices.
YOUR_ACCUMULO_SECRET kısmını güvenli, rastgele bir dize ile değiştirin. Bu, Accumulo örneğiniz için benzersiz bir sır olmalıdır. Örneğin, bir UUID oluşturabilirsiniz.
Bellek ayarlarını (tserver.memory.maps.max, tserver.cache.data.size, tserver.cache.index.size) sisteminizin RAM miktarına göre ayarlayabilirsiniz. Yukarıdaki değerler tek düğümlü test kurulumu için makul başlangıç değerleridir.
3. JAR Dosyalarını Kopyalama
Accumulo’nun Hadoop ve ZooKeeper ile iletişim kurabilmesi için gerekli JAR dosyalarını Accumulo’nun lib/ext dizinine kopyalamanız gerekir. Bu adım çok önemlidir ve sıklıkla unutulur.
cp /usr/local/hadoop/share/hadoop/client/*.jar /usr/local/accumulo/lib/ext/
cp /usr/local/hadoop/share/hadoop/common/*.jar /usr/local/accumulo/lib/ext/
cp /usr/local/hadoop/share/hadoop/hdfs/*.jar /usr/local/accumulo/lib/ext/
cp /usr/local/hadoop/share/hadoop/mapreduce/*.jar /usr/local/accumulo/lib/ext/
cp /usr/local/hadoop/share/hadoop/yarn/*.jar /usr/local/accumulo/lib/ext/
cp /usr/local/zookeeper/lib/*.jar /usr/local/accumulo/lib/ext/
Önemli Not: Bu komutlar, Hadoop ve ZooKeeper’ın tüm JAR dosyalarını kopyalar. Bazı durumlarda, çakışan JAR’lar sorunlara neden olabilir. Eğer sorun yaşarsanız, sadece gerekli olan JAR’ları (örneğin, hadoop-common-.jar, hadoop-hdfs-.jar, zookeeper-*.jar) kopyalamayı deneyebilirsiniz. Ancak genellikle bu geniş kopyalama tek düğümlü kurulumlarda sorun çıkarmaz.
Accumulo Örneğini Başlatma
1. Accumulo’yu Başlatma (Initialize)
Accumulo’yu ilk kez çalıştırmadan önce başlatmanız gerekir. Bu işlem, HDFS üzerinde Accumulo’nun meta verilerini oluşturur.
accumulo init
Sizden bir “Instance Name” (Örnek Adı) girmenizi isteyecektir. Örneğin, test_instance yazabilirsiniz.
Ardından bir “Root Password” (Root Şifresi) belirlemeniz istenecektir. Güçlü bir şifre girin ve onaylayın.
2. Accumulo Servislerini Başlatma
Şimdi Accumulo servislerini başlatın:
start-all.sh
Bu komut, Master, Garbage Collector, Monitor ve Tablet Server süreçlerini başlatır.
Servislerin düzgün çalıştığını doğrulamak için jps komutunu kullanın:
jps
Çıktıda Master, TServer, GC, Monitor süreçlerini görmelisiniz.
Accumulo Web Arayüzünü Kontrol Etme
Accumulo’nun durumunu ve performansını izlemek için bir web arayüzü bulunur. Tarayıcınızdan http://localhost:9995 adresine giderek bu arayüze erişebilirsiniz. Kullanıcı adı root ve Accumulo’yu başlatırken belirlediğiniz şifreyi kullanın.
Adım 6: Accumulo Kabuğunu Kullanma
Accumulo başarıyla kurulduktan ve servisler çalışmaya başladıktan sonra, veritabanıyla etkileşim kurmak için Accumulo kabuğunu kullanabiliriz.
Accumulo Kabuğuna Bağlanma
accumulo shell -u root -p YOUR_ROOT_PASSWORD
YOUR_ROOT_PASSWORD yerine Accumulo’yu başlatırken belirlediğiniz root şifresini yazın. Başarılı bir şekilde bağlanırsanız, root@test_instance> gibi bir komut istemi göreceksiniz.
Temel Accumulo Kabuğu Komutları
* Yardım: help
* Tablo Oluşturma: createtable mytable
* Veri Ekleme:
insert mytable row1 colfam1 colqual1 value1
insert mytable row2 colfam1 colqual2 value2
* Veri Tarama: scan mytable
Bu, tablodaki tüm verileri gösterecektir.
* Tablo Listeleme: tables
* Tablo Silme: deletetable mytable
* Çıkış: exit
Örnek bir etkileşim:
root@test_instance> createtable mytable
root@test_instance> insert mytable row1 colfam1 colqual1 value1
root@test_instance> insert mytable row2 colfam1 colfam2 value2
root@test_instance> scan mytable
row1 colfam1:colqual1 [] value1
row2 colfam1:colfam2 [] value2
root@test_instance> tables
accumulo !METADATA !METADATA_OLD !SECURITY mytable
root@test_instance> deletetable mytable
Are you sure you want to delete mytable (yes|no)? yes
root@test_instance> tables
accumulo !METADATA !METADATA_OLD !SECURITY
root@test_instance> exit
Adım 7: Güvenlik ve İyileştirmeler (Kısa Bahsetme)
Bu rehber, tek düğümlü bir kurulum için temel adımları içerir. Üretim ortamları için ek güvenlik ve performans iyileştirmeleri yapılması gerekir:
* Güvenlik Duvarı (Firewall): ufw gibi bir güvenlik duvarı kullanarak yalnızca gerekli portlara (SSH, Accumulo, Hadoop, ZooKeeper) erişime izin verin.
* Kaynak Limitleri (ulimit): Açık dosya tanımlayıcıları ve süreçler için sistem limitlerini artırın.
* Bellek Ayarları: accumulo-env.sh ve accumulo-site.xml dosyalarındaki JVM bellek ayarlarını (örneğin, tserver.memory.maps.max, tserver.cache.data.size, tserver.cache.index.size) sistem kaynaklarınıza ve iş yükünüze göre optimize edin.
* Günlükleme: Günlük dosyalarının boyutunu ve saklama süresini yönetmek için log4j yapılandırmasını gözden geçirin.
* Çok Düğümlü Kurulum: Üretim ortamları için, her bileşeni (Hadoop NameNode/DataNode, ZooKeeper Ensemble, Accumulo Master/TServer) ayrı fiziksel veya sanal makinelerde çalıştıran çok düğümlü bir kurulum gereklidir.
Sorun Giderme İpuçları
Kurulum sırasında veya sonrasında sorunlarla karşılaşmanız olasıdır. İşte bazı yaygın sorunlar ve çözüm önerileri:
* Servisler Başlamıyor:
* Log Dosyalarını Kontrol Edin: Hadoop, ZooKeeper ve Accumulo’nun logs dizinlerindeki (örneğin, /usr/local/hadoop/logs, /usr/local/zookeeper/logs, /usr/local/accumulo/logs) günlük dosyalarını inceleyin. Hata mesajları genellikle sorunun kaynağını gösterir.
* jps Çıktısını Kontrol Edin: Hangi Java süreçlerinin çalıştığını görmek için jps komutunu kullanın. Eksik süreçler, ilgili bileşenin başlamadığını gösterir.
* Ortam Değişkenlerini Kontrol Edin: echo $JAVA_HOME, echo $HADOOP_HOME, echo $ZOOKEEPER_HOME, echo $ACCUMULO_HOME komutlarıyla ortam değişkenlerinin doğru ayarlandığından emin olun. source ~/.bashrc komutunu çalıştırdığınızdan emin olun.
* SSH Erişimi: ssh localhost komutuyla şifresiz SSH erişiminin çalıştığını doğrulayın.
* Accumulo Kabuğu Bağlantı Sorunları:
* ZooKeeper ve Hadoop servislerinin çalıştığından emin olun.
* accumulo-site.xml dosyasındaki instance.zookeeper.host ayarının doğru olduğundan emin olun.
* accumulo init komutunu doğru bir şekilde çalıştırdığınızdan emin olun.
* HDFS Formatlama Hatası:
* Eğer hdfs namenode -format komutu hata veriyorsa, /usr/local/hadoop_tmp dizininin boş olduğundan ve doğru izinlere sahip olduğundan emin olun. Gerekirse dizini silip yeniden oluşturun ve izinleri ayarlayın.
* JAR Çakışmaları veya Sınıf Yolu Sorunları:
* accumulo-env.sh dosyasındaki CLASSPATH ayarlarını ve ACCUMULO_HOME/lib/ext dizinine kopyaladığınız JAR dosyalarını dikkatlice kontrol edin. Bazen farklı sürümlerden gelen JAR’lar çakışmalara neden olabilir.
* Bellek Yetersizliği:
* Eğer sistemde bellek yetersizliği nedeniyle servisler kapanıyorsa, accumulo-site.xml ve hadoop-env.sh içindeki bellek ayarlarını düşürmeyi deneyin veya sisteminize daha fazla RAM ekleyin.
* Port Çakışmaları:
* Eğer başka bir uygulama aynı portu kullanıyorsa (örneğin, 9000, 2181, 9995), bu durum Hadoop, ZooKeeper veya Accumulo servislerinin başlamasını engelleyebilir. netstat -tulnp | grep komutunu kullanarak portların durumunu kontrol edebilirsiniz.
Sonuç
Bu makalede, Apache Accumulo NoSQL veritabanının Ubuntu 14.04 işletim sistemi üzerine tek düğümlü (pseudo-distributed) modda nasıl kurulacağını adım adım ele aldık. Kurulum sürecinde Apache Hadoop (HDFS ve YARN) ve Apache ZooKeeper gibi temel bağımlılıkların nasıl yapılandırılacağını detaylı bir şekilde gösterdik. Accumulo’nun güçlü hücre düzeyinde güvenlik özellikleri ve dağıtık mimarisi, onu büyük veri uygulamaları için cazip bir seçenek haline getirmektedir.
Başarılı bir kurulumun ardından, Accumulo kabuğu aracılığıyla veritabanıyla etkileşime geçme ve temel komutları kullanma yeteneği kazandınız. Bu kurulum, bir geliştirme veya test ortamı için sağlam bir temel oluşturmaktadır. Üretim ortamları için ise, çok düğümlü bir küme kurulumu, daha fazla güvenlik önlemi ve performans optimizasyonları gerekecektir.
Apache Accumulo’nun sunduğu ölçeklenebilirlik, esneklik ve güvenlik yetenekleri, özellikle büyük ve hassas veri setleriyle çalışan kurumlar için değerli bir araçtır. Bu rehber, Accumulo dünyasına adım atmanız için gerekli bilgi ve pratik adımları sağlamıştır. Artık Accumulo’nun sunduğu olanakları keşfetmeye ve kendi büyük veri çözümlerinizi oluşturmaya hazırsınız.
