Bagaimana cara menginstal Hadoop?


26

Saya mencoba menginstal Hadoop di versi Ubuntu 12.04. Mengikuti instruksi dari http://michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ , saya menginstal java-6-openjdkdari pusat perangkat lunak Ubuntu. Aku telah menetapkan java_homedi .bashrc. Juga diatur java_homedi Hadoop conf/env.sh. Saat memformat namenode, saya mendapatkan kesalahan berikut:

usr/lib/jvm/java-6-openjdk/bin/java no such file or directory.

Terima kasih. Tapi itu adalah OS 64bit.


1
Mengapa ada hadiah ketika pengguna menemukan solusinya? Jawaban seperti apa yang diharapkan?
hijau

1
@ green7 Tujuannya adalah untuk menemukan jawaban yang benar-benar ditandai sebagai diterima, sangat rinci, dan suka. Karena sepertinya tidak ada satu, saya bisa mengerti Jorge menambahkan karunia.
Thomas Ward

@TheLordofTime Jawaban terinci akan paling banyak berisi 5 baris karena pertanyaannya terlalu lokal. Dan jika jawaban yang berisi instruksi instalasi untuk Hadoop diharapkan, itu akan menjadi berlebihan karena tautan yang disebutkan dalam pertanyaan menjelaskannya dengan luar biasa. Apalagi karena jawabannya, dengan suara terbanyak, diposting oleh si penanya sendiri, sangat kecil kemungkinan dia akan menerima jawaban lain.
hijau

@ green7 jika pertanyaan terlokalisasi kemudian pilih untuk menutupnya?
Thomas Ward

Jawaban:


39

Panduan yang saya ikuti ketika saya memiliki 12,04 adalah:

Saya sebenarnya menentang MyLearning satu karena hal pertama yang direkomendasikan adalah Oracle Java 7 bukan OpenJDK 7, tetapi saya memiliki beberapa masalah dengan OpenJDK 7 ketika mencoba ini jadi saya harus pergi dengan Oracle.

Panduan ini sebagian besar lurus ke depan dan ini dia:

  1. Instal Java

    sudo add-apt-repository ppa:webupd8team/java  
    sudo apt-get update && sudo apt-get upgrade  
    sudo apt-get install oracle-java7-installer  
    
  2. Buat pengguna Hadoop

    sudo addgroup hadoop  
    sudo adduser --ingroup hadoop hduser
    

    Di mana hduser adalah pengguna Hadoop yang Anda inginkan.

  3. Mengkonfigurasi SSH

    su - hduser   
    ssh-keygen -t rsa -P ""
    cat .ssh/id_rsa.pub >> .ssh/authorized_keys
    

    Untuk memastikan bahwa instalasi SSH berjalan dengan baik, Anda dapat membuka terminal baru dan mencoba membuat sesi ssh menggunakan hduserperintah berikut:

    ssh localhost
    

    instal ulang ssh jika localhost tidak terhubung (Anda mungkin perlu menambahkan hdusersudo seperti langkah di bawah ini)

    sudo apt-get install openssh-server
    
  4. Edit Sudoers

    sudo visudo
    
  5. Tambahkan di akhir baris untuk menambahkan hduser ke sudoers

    hduser ALL=(ALL:ALL) ALL
    

    Untuk menyimpan tekan CTRL+ X, ketik Ydan tekanENTER

  6. Nonaktifkan IPv6

    sudo gedit /etc/sysctl.conf
    

    atau

    sudo nano /etc/sysctl.conf
    

    Salin baris berikut di akhir file:

    #disable ipv6  
    net.ipv6.conf.all.disable_ipv6 = 1  
    net.ipv6.conf.default.disable_ipv6 = 1   
    net.ipv6.conf.lo.disable_ipv6 = 1  
    

    Jika Anda menghadapi masalah saat memberi tahu Anda, Anda tidak memiliki izin, jalankan perintah sebelumnya dengan akun root (Dalam kasus sudo tidak cukup. Bagi saya itu)

  7. Sekarang reboot.

    Anda juga dapat melakukannya sudo sysctl -ptetapi saya lebih suka reboot.

    Setelah reboot, periksa untuk memastikan IPv6 tidak aktif:

    cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    

    seharusnya tertulis 1 . Jika tertulis 0 , Anda melewatkan sesuatu.

  8. Menginstal Hadoop

    Ada beberapa cara untuk melakukan ini, yang disarankan oleh Panduan adalah mengunduh dari situs Apache Hadoop dan mendekompres file di hduserfolder rumah Anda . Ubah nama folder yang diekstraksi menjadi hadoop.

    Cara lain adalah dengan menggunakan PPA yang diuji untuk 12,04:

    sudo add-apt-repository ppa:hadoop-ubuntu/stable  
    sudo apt-get update && sudo apt-get upgrade  
    sudo apt-get install hadoop  
    

    CATATAN: PPA mungkin berfungsi untuk beberapa orang dan bagi yang lain tidak. Yang saya coba adalah mengunduh dari situs resmi karena saya tidak tahu tentang PPA.

  9. Memperbarui $HOME/.bashrc

    Anda perlu memperbarui .bashrcuntuk hduser(dan untuk setiap pengguna yang Anda butuhkan untuk mengelola Hadoop). Untuk membuka .bashrcfile, Anda harus membukanya sebagai root:

    sudo gedit /home/hduser/.bashrc  
    

    atau

    sudo nano /home/hduser/.bashrc  
    

    Kemudian Anda akan menambahkan konfigurasi berikut di akhir .bashrcfile

    # Set Hadoop-related environment variables   
    export HADOOP_HOME=/home/hduser/hadoop  
    
    # Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)`
    export JAVA_HOME=/usr/lib/jvm/java-7-oracle  
    

    Sekarang, jika Anda memiliki OpenJDK7, akan terlihat seperti ini:

    export JAVA_HOME=/usr/lib/java-7-openjdk-amd64  
    

    Hal yang harus diperhatikan di sini adalah folder tempat Java berada dengan versi AMD64. Jika hal di atas tidak berhasil, Anda dapat mencoba mencari di folder tertentu atau mengatur Java yang akan digunakan dengan:

    sudo update-alternatives --config java  
    

    Sekarang untuk beberapa alias bermanfaat:

    # Some convenient aliases and functions for running Hadoop-related commands  
    unalias fs &> /dev/null   
    alias fs="hadoop fs"    
    unalias hls &> /dev/null  
    alias hls="fs -ls"  
    
    # Add Hadoop bin/ directory to PATH  
    export PATH=$PATH:$HADOOP_HOME/bin  
    
  10. Mengkonfigurasi Hadoop

    Berikut ini adalah file konfigurasi yang dapat kita gunakan untuk melakukan konfigurasi yang tepat. Beberapa file yang akan Anda gunakan dengan Hadoop adalah (Informasi lebih lanjut di situs ini ):

    start-dfs.sh- Mulai daemon Hadoop DFS, namenode dan datanode. Gunakan ini sebelum start-mapred.sh

    stop-dfs.sh - Menghentikan daemon Hadoop DFS.

    start-mapred.sh - Memulai Hadoop Map / Reduce daemon, jobtracker dan tasktrackers.

    stop-mapred.sh - Hentikan Peta Hadoop / Kurangi daemon.

    start-all.sh- Mulai semua daemon Hadoop, namenode, datanode, jobtracker, dan tasktracker. Usang; gunakan start-dfs.sh lalu start-mapred.sh

    stop-all.sh- Hentikan semua daemon Hadoop. Usang; gunakan stop-mapred.sh lalu stop-dfs.sh

    Tetapi sebelum kita mulai menggunakannya, kita perlu memodifikasi beberapa file di /conffolder.

    hadoop-env.sh

    Cari file hadoop-env.sh, kita hanya perlu memperbarui variabel JAVA_HOME dalam file ini:

    sudo gedit /home/hduser/hadoop/conf/hadoop-env.sh
    

    atau

    sudo nano /home/hduser/hadoop/conf/hadoop-env.sh
    

    atau dalam versi terbaru itu akan masuk

    sudo nano /etc/hadoop/conf.empty/hadoop-env.sh
    

    atau

    sudo nano /etc/hadoop/hadoop-env.sh
    

    Kemudian ubah baris berikut:

    # export JAVA_HOME=/usr/lib/j2sdk1.5-sun
    

    Untuk

    export JAVA_HOME=/usr/lib/jvm/java-7-oracle
    

    Catatan: jika Anda mendapatkan Error: JAVA_HOME is not setKesalahan saat memulai layanan, Anda lupa untuk membatalkan komentar pada baris sebelumnya (cukup hapus #).

    core-site.xml

    Sekarang kita perlu membuat direktori temp untuk kerangka kerja Hadoop. Jika Anda memerlukan lingkungan ini untuk pengujian atau prototipe cepat (misalnya, mengembangkan program hadoop sederhana untuk pengujian pribadi Anda ...), saya sarankan untuk membuat folder ini di bawah /home/hduser/direktori, jika tidak, Anda harus membuat folder ini di tempat bersama di bawah folder bersama ( seperti / usr / local ...) tetapi Anda mungkin menghadapi beberapa masalah keamanan. Tetapi untuk mengatasi pengecualian yang mungkin disebabkan oleh keamanan (seperti java.io.IOException), saya telah membuat folder tmp di bawah ruang hduser.

    Untuk membuat folder ini, ketikkan perintah berikut:

    sudo mkdir /home/hduser/tmp   
    

    Harap dicatat bahwa jika Anda ingin membuat pengguna admin lain (mis. Hduser2 dalam grup hadoop), Anda harus memberinya izin baca dan tulis pada folder ini menggunakan perintah berikut:

    sudo chown hduser:hadoop /home/hduser/tmp  
    sudo chmod 755 /home/hduser/tmp  
    

    Sekarang, kita dapat membuka hadoop/conf/core-site.xmluntuk mengedit entri hadoop.tmp.dir. Kami dapat membuka core-site.xml menggunakan editor teks:

    sudo gedit /home/hduser/etc/hadoop/core-site.xml  
    

    atau

    nano /home/hduser/etc/hadoop/core-site.xml
    

    Kemudian tambahkan konfigurasi berikut antara <configure>elemen xml :

    <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/hduser/tmp</value>
      <description>A base for other temporary directories.</description>
    </property>
    
    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:54310</value>
      <description>The name of the default file system.  A URI whose
      scheme and authority determine the FileSystem implementation.  The
      uri's scheme determines the config property (fs.SCHEME.impl) naming
      the FileSystem implementation class.  The uri's authority is used to
      determine the host, port, etc. for a filesystem.</description>
    </property>
    

    Sekarang edit mapred-site.xml

    <property>
      <name>mapred.job.tracker</name>
      <value>localhost:54311</value>
      <description>The host and port that the MapReduce job tracker runs
      at.  If "local", then jobs are run in-process as a single map
      and reduce task.
      </description>
    </property>
    

    Sekarang edit hdfs-site.xml

    <property>
      <name>dfs.replication</name>
      <value>1</value>
      <description>Default block replication.
      The actual number of replications can be specified when the file is created.
      The default is used if replication is not specified in create time.
      </description>
    </property> 
    
  11. Memformat NameNode

    Sekarang Anda dapat mulai bekerja pada Node. Format pertama:

    ~/hduser/hadoop/bin/hadoop namenode -format
    

    atau

    ./home/hduser/hadoop/bin/hadoop namenode -format
    

    Anda harus memformat NameNode di HDFS Anda. Anda seharusnya tidak melakukan langkah ini ketika sistem sedang berjalan. Biasanya dilakukan sekali saat pertama kali instalasi Anda.

  12. Mulai Hadoop Cluster

    Anda perlu menavigasi ke direktori hadoop / bin dan menjalankan ./start-all.shskrip.

    cd ~/hduser/hadoop/bin/  
    start-all.sh  
    

    Jika Anda memiliki versi yang berbeda dari yang ditunjukkan dalam panduan (Yang kemungkinan besar akan Anda miliki jika melakukan ini dengan PPA atau versi yang lebih baru) maka cobalah dengan cara ini:

    cd ~/hduser/hadoop/bin/   
    start-dfs.sh  
    start-mapred.sh   
    

    Ini akan memulai Namenode, Datanode, Jobtracker dan Tasktracker di mesin Anda.

  13. Memeriksa apakah Hadoop sedang berjalan

    Ada alat bagus yang disebut jps. Anda dapat menggunakannya untuk memastikan bahwa semua layanan sudah habis. Dalam jenis folder hadoop bin Anda:

    jps
    

    Seharusnya menunjukkan semua proses terkait Hadoop.

    CATATAN: Karena ini dilakukan sekitar 6 bulan yang lalu untuk saya, jika ada bagian yang tidak berfungsi, beri tahu saya.

Hadoop Menggunakan Juju (Pesona Juju untuk Hadoop)

Diambil dari Charming Hadoop

Saya akan menganggap yang berikut ini sudah diatur:

  • Anda memiliki server dengan Juju yang sudah ditetapkan
  • Anda memiliki akses ke server (Lokal atau jarak jauh)
  • Anda telah mengonfigurasi Juju dan siap untuk mulai menambahkan jimat
  • Anda menggunakan 12,04 (Ini karena saya menguji semua ini dengan 12,04)
  • Anda telah mengkonfigurasi ~/.juju/environments.yamldengan informasi mengenai server yang akan Anda gunakan termasuk asal PPA.

Oke sekarang ikuti langkah-langkah ini untuk menjalankan layanan Hadoop:

  1. Bootstrap lingkungan untuk Hadoop

    juju bootstrap
    

    Tunggu sampai selesai, lalu periksa untuk melihat apakah terhubung dengan benar:

    juju status
    
  2. Menyebarkan Hadoop (Master dan Budak)

    juju deploy --constraints="instance-type=m1.large" hadoop hadoop-master   
    
    juju deploy --constraints="instance-type=m1.medium" -n 5 hadoop hadoop-slave
    
  3. Buat Hubungan

    juju add-relation hadoop-master:namenode hadoop-slave:datanode  
    
    juju add-relation hadoop-master:jobtracker hadoop-slave:tasktracker
    
  4. Expose Hadoop (Karena Anda sudah menyebarkan dan membuat hubungan, layanan harus berjalan)

    juju expose hadoop-master
    

    Dan periksa status untuk melihat apakah itu berfungsi dengan benar:

    juju status hadoop-master
    

Hingga kini Anda memiliki Hadoop yang sedang berjalan. Ada banyak lagi hal yang dapat Anda lakukan yang dapat ditemukan di tautan yang disediakan atau di Juju Charm resmi untuk Hadoop

Untuk JuJu Charms terkini (Pengaturan, panduan langkah demi langkah, dan lainnya) Anda dapat mengunjungi: JuJu Charms dan membuat Lingkungan JuJu Anda sendiri dan melihat bagaimana setiap file diatur dan bagaimana setiap layanan terhubung.



hduser (ALL)=(ALL:ALL) ALL melempar kesalahan sintaks ...
tutuca

coba dengan hduser ALL=(ALL:ALL) ALL, lepaskan pasangan kurung pertama
ssoto

1
@ssoto baru saja diperiksa dan ya. Mungkin mereka mengubahnya di versi terbaru.
Luis Alvarado

1
.bachrc- tunggu sampai Johann Sebastian mendengarnya. Oh, tunggu, dia tidak bisa ... karena dia tuli. :-D
David Foerster

6

Saya berhasil menginstal Hadoop dengan menetapkan path JAVA_HOMEsebagai usr/lib/jvm/java-6-openjdk-amd64.


Bisakah Anda menjadi sedikit lebih deskriptif?
Panther

3

Berasal dari jawaban @Luis Alvarado , ini adalah versi saya untuk Ubuntu 14.04 dan Hadoop 2.5.1

Secara singkat

  1. Instal Java
  2. Persiapkan pengguna eksekutif untuk Hadoophduser
  3. Beralih ke hdusermulai sekarang
  4. Izinkan hduseruntuk remote melalui ssh dengan pass-phrase-less
  5. Nonaktifkan IPv6
  6. Unduh dan konfigurasi paket Hadoop
  7. Siapkan jalur sistem $ HADOOP_HOME dan $ JAVA_HOME
  8. Layanan Config Hadoop
  9. Mulai layanan Hadoop

Selesai Semoga berhasil!

Langkah-langkah detail

Instal Java

Unduh dan pasang

$ sudo add-apt-repository ppa:webupd8team/java    
$ sudo apt-get update && sudo apt-get upgrade    
$ sudo apt-get install oracle-java7-installer

Pastikan Anda telah menginstal Java7

$ which java
$ ls -l /usr/bin/java
$ ls -l /etc/alternatives/java

kita harus javamenunjuk/usr/lib/jvm/java-7-oracle/jre/bin/java

Persiapkan pengguna eksekutif untuk Hadoophduser

Buat pengguna hduserdalam gruphadoop

$ sudo addgroup hadoop  
$ sudo adduser --ingroup hadoop hduser

Memberikan hduseryang sudo hak istimewa

Edit sudo

$ sudo visudo

Tambahkan ke akhir baris ini

hduser ALL=(ALL:ALL) ALL

Beralih ke hdusermulai sekarang

$ su - hduser

Izinkan hduseruntuk remote melalui ssh dengan pass-phrase-less

Instal openssh

$ sudo apt-get install openssh-server

Hasilkan kunci publik / pribadi RSA untuk koneksi SSH; frasa sandi kosong sebagaiparameter -P ""

$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

Pastikan hduserssh dapat melakukan remote secara lokal tanpa kata sandi

$ ssh localhost

Nonaktifkan IPv6

Edit file konfigurasi

$ sudo nano /etc/sysctl.conf

Salin sampai akhir

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1   
net.ipv6.conf.lo.disable_ipv6 = 1

Pastikan IPv6 dimatikan oleh reboot atau panggilan

$ sudo sysctl -p 

Lalu telepon

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Seharusnya mengatakan 1 yang berarti OK ^^

Unduh dan konfigurasi paket Hadoop

Unduh paket Hadoop 2.5.1 dari situs Apache Hadoop

URL langsung untuk paket ini adalah tautan ini

http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz

Jadi mari kita unduh ke hduserfolder rumah, ekstrak, dan ganti namanya menjadihadoop

$ wget http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
$ tar -xvzf hadoop-2.5.1.tar.gz
$ mv hadoop-2.5.1 hadoop

Pastikan kami menyimpan Hadoop di hduserrumah

$ ls /home/hduser/hadoop

Siapkan jalur sistem $ HADOOP_HOME dan $ JAVA_HOME

Edit hduserfile .bashrc

$ nano .bashrc

Masukkan nilai akhir untuk $HADOOP_HOMEdan$JAVA_HOME

# Set Hadoop-related environment variables   
export HADOOP_HOME=/home/hduser/hadoop  

# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

Tambahkan binaryfolder Hadoop ke sistem$PATH

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

Buka terminal baru, masuk sebagai hduser, dan pastikan Anda memiliki $ HADOOP_HOME dengan perintah yang tersedia

$ echo $HADOOP_HOME
$ which start-all.sh
$ which start-dfs.sh
$ which start-yarn.sh

Kita harus melihat jalur lengkap dari nama-nama itu.

Layanan Config Hadoop

Setiap komponen di Hadoop dikonfigurasi menggunakan file XML.

  • Properti umum masuk dalam core-site.xml

  • Properti HDFS masuk dalam hdfs-site.xml

  • Properti MapReduce masuk dalam mapred-site.xml

masukkan deskripsi gambar di sini

Semua file ini berada di folder $ HADOOP_HOME / etc / hadoop

Tetapkan, sekali lagi, JAVA_HOME hadoop-env.shdengan mengedit baris

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

Tetapkan Hadoop temp folderdan file systemnama di core-site.xml at

<configuration>
  ...
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hduser/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:54310</value>
    <description>The name of the default file system.  A URI whose
    scheme and authority determine the FileSystem implementation.  The
    uri's scheme determines the config property (fs.SCHEME.impl) naming
    the FileSystem implementation class.  The uri's authority is used to
    determine the host, port, etc. for a filesystem.</description>
  </property>
  ...
</configuration>

Kita perlu menyiapkan ini temp foldersebagaimana dikonfigurasi di/home/hduser/tmp

$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp

Tentukan file system's block replicationdi HDFS-site.xml

<configuration>
  ...
  <property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>Default block replication.
    The actual number of replications can be specified when the file is created.
    The default is used if replication is not specified in create time.
    </description>
  </property>
  ...
</configuration>

Tentukan map-reduce jobdi mapred-site.xml

<configuration>
  ...
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:54311</value>
    <description>The host and port that the MapReduce job tracker runs
    at.  If "local", then jobs are run in-process as a single map
    and reduce task.
    </description>
  </property>
  ...
</configuration>

Format name node

$ hdfs namenode -format

Mulai layanan Hadoop

Panggilan

$ start-dfs.sh && start-yarn.sh

kedua perintah ini terletak di $ HADOOP_HOME / sbin yang telah kami tambahkan ke sistem $ PATH sebelumnya.

Pastikan layanan Hadoop dimulai dengan benar

$ jps

kita harus lihat

masukkan deskripsi gambar di sini


1
Panduan yang sangat bagus untuk diikuti. Ada kesalahan kecil:mapred-site.xml tidak ada di awal. Itu harus dibuat olehcp mapred-site.xml.template mapred-site.xml
Raptor

1

Agar dapat menginstal sun-javadengan apt-getperintah, Anda perlu menambahkan baris ke file yang disebut sources.list. File ini dapat ditemukan di /etc/apt/sources.list.

Buka file menggunakan perintah ini:

sudo nano /etc/apt/sources.list

Kemudian di bagian paling bawah (bawah) dari file itu, Anda menyalin / menempelkan baris:

deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse

Sekarang tekan Ctrl+ Xuntuk keluar, dan yuntuk menyimpan.


Sekarang ketikkan perintah:

sudo apt-get update 

Dan ketika itu selesai, Anda dapat berhasil menjalankan perintah:

sudo apt-get install sun-java6-jdk

0

Untuk tutorial yang lebih terkini (tidak yakin tentang perbedaan) lihat tutorial video hadoop screencasts . Mereka menyediakan video dan perintah sebenarnya untuk menginstal di bawahnya. Juga jika Anda mengirim email kepada penulis, ia sangat senang untuk merespons dan membantu Anda jika Anda terjebak dengan apa pun.

Instruksi ini sebagian besar mirip dengan yang dibalas @Luis.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.