Workflow Engine Comparison

I was looking at different options for workflow engines. I have some experience in Oozie, little experience in Luigi and no experience in Azkaban. In this post, I will try to give an overview of these engines in terms of their advantages and disadvantages. Take my word with a grain of salt(based on the experience I have with these tools), though.

Crons do not scale(Surprise!)

If you have a lot of processes which manipulate, transform and write data to database, you will sooner or later will face the limitations of the cron jobs. You want to be able to handle failures, debug processes and rerun the failed jobs. You want to have multiple scripts to run based on data availability, data dependency and time-based scheduling. You may want to also share the data workflow with many people where you cannot do any of the items with cron jobs.

What is sufficient?

  • Regular scheduling (depending on data availability and time-based)
  • Workflow of multiple jobs
  • You should be able to write workflows in the same way that you are writing programs
  • You should handle the errors and failures gracefully
  • Communication between cluster and client should be secure
  • Community support should be very good
  • Continuous integration(whenever you push to the master, it should adapt the changes(woohoo!))
  • Testing should be supported out of the box
  • Let’s cut to the chase; pretty much anything that you want to expect from a decent library or framework in terms of software quality and practices

Let’s write our own workflow engine

  • Resources are limited(time, effort, human resources)
  • Is your usage is too specific or could you make it work in one of the available tools?
  • No need to reinvent the wheel

What do we want from the workflow engines?

  • First and foremost: resilient to failures
  • Debugging is necessary and important advantage over cron jobs
  • If we have similar workflows, we should not write too much boilerplate code to make it all work
  • Support for databases, HDFS and common file formats
  • You should be able to write workflows in the same way that you are writing programs
  • You should handle the errors and failures gracefully
  • Communication between cluster and client should be secure
  • Community support should be very good
  • Continuous integration(whenever you push to the master, it should adapt the changes(woohoo!))
  • Testing should be supported out of the box
  • Default logging would be icing on the cake
  • Let’s cut to the chase; pretty much anything that you want to expect from a decent library or framework in terms of software quality and practices

Oozie

Advantages

  • Mature
  • Support from Hadoop community is strong
  • Documentation
  • Default support for Pig, ssh, java, filesystem
  • Coordinators: when data is available, do the computation. For recurring jobs, you do not need to explicitly configure the job flow.
  • Security
  • Built in authentication
  • It has own testing suite(Mini Oozie)

Disadvantages

  • XML(Verbose)
  • Control flow is somehow restrictive
  • Directed Acyclic Graph(Hard to rerun only a component after failure, perfectly goes along with Pig, though; Pig scripts also define DAG)
  • User Interface

Luigi

Advantages

  • Python!
  • Control flow is advanced as tasks are code
  • Dependencies between flows
  • Customization and code reuse through object-oriented programming

Disadvantages

  • Visualizer is not as good as Azkaban
  • No default support for Pig, Hive
  • No storage of history and generally persistent storage is lacking

Azkaban

Advantages

  • If you are using Voldemort, it supports out of the box
  • Visualizations for tasks (svg, interactive) is advanced
  • Authentication and Authorization
  • History of tasks(which are completed and which are not)
  • Plugins for Pig, Hive and many more
  • Web deployment

Disadvantages

  • Support is not as good as Oozie.
  • Scheduling is only time based. AFAIK, no data availability scheduling
  • Workflow is somehow limited and restrictive comparing to Luigi and even Oozie.

Source : http://bugra.github.io/work/notes/2014-04-13/workflow-engine-comparison-first-impressions/

Advertisements

TDS and Coffee

What is TDS?

To make a great cup of coffee you not only want the best coffee beans available but also the best water. One of the most important aspects to look at when rating the quality of water is the TDS. TDS stands for Total Dissolved Solids. A TDS measurement represents the total concentration of dissolved substances in the water, which can include minerals, salts, and other solids (1). The amount and type of solids that are dissolved in the water will affect its flavor. Because coffee is about 96 percent water, the TDS of water used in the brewing process will greatly affect the quality of the finished product.

TDS readings vary greatly between different kinds of water. Most distilled water has a TDS of 0 ppm (parts per million). During the distillation process steam is condensed from boiling water and the result is pure water with no dissolved solids. Spring water on the other hand has a relatively high TDS, which can range from 50 to 450 ppm (2). This is because the water picks up different minerals and salts on its journey through underground rock passages and cracks in the earth on its way to the spring. The result is water with a high level of dissolved solids. Tap water is somewhere in between these two. Ideal tap water ranges from 100-150 ppm while average tap water can range from 100-400 ppm (2). So what does this all have to do with coffee?

The TDS of water not only can affect the initial flavor of a cup of coffee but it can also affect the extraction process. The idea is that low TDS waters tend to over extract coffee. There are little to no solids dissolved in these waters so they have a greater ability to absorb coffee material from the ground beans. This will lead to a coffee that is bitter and dry. On the other hand, high TDS waters often have high mineral contents and tend to under extract coffee. These waters already have a high level of solids dissolved in them and will have less capacity to absorb coffee material from the coffee grounds. This may lead to a coffee that is sour or lacking sweetness. According to the Specialty Coffee Association of America (SCAA) the ideal TDS range for the water used to brew coffee is 75-250 ppm. The target TDS is 150 ppm (3). The target TDS of 150 ppm should lead to a properly extracted cup of coffee with balanced flavors and acidity.

TDSScale


After some test here are the conclusion

While the SCAA sets a target TDS range of 75-250 ppm and an ideal value of 150 ppm these are simply guidelines. It is important to note that while two waters may have the exact same TDS values they can have totally different flavor profiles. An extreme example would be if we dissolved 10 grams of salt into a liter of water and 10 grams of sugar into another liter of water. These waters might end up having the same TDS values but they would obviously taste completely different.The idea is that the TDS alone affects the extraction process. Low TDS waters tend to over extract coffee. There are little to no solids dissolved in these waters so they have a greater ability to absorb coffee material from the ground beans. This will lead to a coffee that is bitter and dry. On the other hand, high TDS waters often have high mineral contents and tend to under extract coffee. These waters already have a high level of solids dissolved in them and will have less capacity to absorb coffee material from the coffee grounds. This may lead to a coffee that is sour or lacking sweetness.

This being said, what exactly is dissolved in the water will definitely affect its flavor and the flavor of a cup of coffee brewed with that water. This is why we saw differences in coffee brewed with each type of water. Even thought the city waters were fairly close in TDS values (R-120, CH-125, D-132), they each presented different aromas and flavor profiles because of the different kinds of solids dissolved in each water.

We were very surprised at the differences in flavor between coffee made with water from Raleigh, Durham, and Chapel Hill. The coffees brewed with the bottled waters also presented a wide variety of flavors and aromas compared to each other. We would like to point out that we did use the exact same brewing methods for each water during our tasting at HQ Raleigh. We mention this because while this method may have brought out certain qualities in the Durham or Chapel Hill waters we could have easily tweaked some aspects of the brewing to dial in anyone of the waters. So in this way the TDS serves as a useful guideline that a barista or coffee connoisseur can use to help dial in their particular cup of coffee.

References

http://www.safewater.org/

http://www.tdsmeter.com/

http://www.scaa.org/

 source : https://www.raleighcoffeecompany.com

Panduan Seduh Vietnam Drip

Masyarakat Vietnam terkenal suka minum kopi tanpa mengenal waktu dan tempat. Persis seperti di Indonesia, kopi hitam pekat disajikan dengan gula atau susu kental manis untuk mengurangi rasa pahit.

Berikut panduan seduh kopi ala Vietnam, negara saingan utama Indonesia dalam hal ekspor kopi.

Alat dan Bahan

Vietnam Dripper
Penggiling kopi
Timbangan
Termometer
Sendok pengaduk
10 gram kopi
Susu kental manis sesuai selera
250 ml air panas

Langkah 1

Siapkan dripper, gelas saji, susu kental manis, dan sendok pengaduk.

Langkah 2

Timbang kopi sebanyak 10 gram. Disarankan untuk menimbang kopi lebih banyak 1-2 gram dari yang akan digunakan, karena seringkali berat kopi berkurang setelah digiling.

Jika menyukai kopi yang pekat, Anda bisa menggunakan sampai 12 gram kopi. Tapi jika menginginkan yang ringan, 8 gram kopi sudah mencukupi.

Langkah 3

Giling kopi. KopiDewa menggunakan Porlex dengan setelan 7-8 klik dari titik 0 untuk mendapatkan tingkat kehalusan pasir kasar. Sambil menggiling mulailah memanaskan air.

Dengan menggunakan Vietnam Dripper, waktu kontak air dan kopi berlangsung cukup lama. Gunakan gilingan kasar agar kopi tidak over-extracted karena kopi menetes lebih lama.

Langkah 4

Masukkan kopi yang sudah digiling ke dalam dripper, lalu ratakan dengan menepuk-nepuk dripper.

Langkah 5

Tekan kopi dengan tamper, tapi jangan terlalu padat. Tekanan yang terlalu kuat akan membuat hasil akhir terasa burnt karena kopi over-extracted.

Jika dripper Anda menggunakan baut sebagai pengunci tamper, jangan terlalu kencang memutar baut.

Langkah 6

Tuang air bersuhu 90°C sampai dripper hampir penuh. Lalu tunggu hingga kopi menetes perlahan.

Langkah 7

Proses seduh bisa terjadi selama 10 menit. Bila air menetes terlalu cepat, gunakan gilingan yang lebih halus atau tekan kopi lebih padat. Bila terlalu lama, lakukan sebaliknya.

Setelah selesai, gunakan tutup dripper sebagai alas agar tetesan kopi tidak mengotori meja.

Langkah 8

Di Vietnam kopi biasa disajikan dengan gorengan, sama seperti di Indonesia.

Dari : http://kopidewa.com

Panduan Seduh Kalita Drip

Kalita Drip adalah salah satu penyeduh pour over pertama di dunia. Diciptakan tahun 1959, dengan desain yang sebenarnya “mencontek” dripper Melitta, namun disempurnakan dengan hadirnya 3 lubang untuk menghasilkan ekstraksi kopi yang lebih merata.

Penyeduh ini mempunyai tingkat toleransi kesalahan yang tinggi sehingga cocok untuk yang baru mempelajari teknik pour over. Berikut panduannya.

Alat dan Bahan

Kalita Drip ukuran 1-2 cup
Filter trapesium Kalita
Penggiling kopi
Timbangan
Termometer
Teko leher angsa
Stopwatch
25 gram kopi
350 ml air panas

Langkah 1

Lipat filter bagian bawah ke depan dan bagian samping ke belakang.
Letakkan filter yang sudah dilipat ke dalam dripper.

Langkah 2

Timbang kopi sebanyak 25-27 gram. Disarankan untuk menimbang kopi lebih banyak 1-2 gram dari yang akan digunakan, karena seringkali berat kopi berkurang setelah digiling.

Penyeduh pour over apa pun bekerja di titik optimal saat volume kopi mencapai setengah sampai duapertiga kapasitas maksimalnya. Jika kopi terlalu sedikit penyeduhan akan cenderung under-extracted karena kurangnya tekanan. Jika kopi terlalu banyak, air akan mudah meluap saat proses seduh.

Langkah 3

Giling kopi. KopiDewa menggunakan Porlex dengan setelan 7-8 klik dari titik 0 untuk mendapatkan konsistensi seperti pasir kasar. Sambil menggiling mulailah memanaskan air.

Alas Kalita Drip yang rata cenderung mengendapkan air lebih lama. Hal ini dapat diimbangi dengan tingkat gilingan kopi yang agak kasar agar hasil akhir tidak over-extracted.

Langkah 4

Bilas filter dengan air panas untuk menghilangkan bau dan aroma kertas. Pembilasan juga membantu menghangatkan dripper sehingga proses seduh lebih maksimal.

Masukkan kopi yang sudah digiling sebanyak 25 gram ke dalam filter dan dripper yang sudah dibilas. Timbang ulang untuk memastikan beratnya sudah tepat. Ratakan gundukan kopi dengan menepuk-nepuk dripper.

Langkah 5

Nyalakan stopwatch dan kucurkan air bersuhu 85°C sebanyak 50 ml secara perlahan dan merata ke gundukan kopi lalu tunggu 45 detik agar proses blooming terjadi. Usahakan agar tetesan air tidak langsung terkena dinding filter.

Langkah 6

Setelah blooming 45 detik, kucurkan air secara perlahan dengan dengan gerakan melingkar dari dalam ke luar seperti obat nyamuk. Kucurkan air sebanyak 30 ml dan tunggu sampai permukaan air telah turun sebelum mengucurkan 30 ml berikutnya.

Kucurkan air di gundukan yang terlihat gelap dan kering agar proses ektraksi merata.

Langkah 7

Tuang air sampai 250ml dan usahakan untuk menyelesaikan penyeduhan dalam 3-4 menit.

Desain flat bottom dan 3 lubang Kalita Drip membuat alat ini mempunyai toleransi tinggi terhadap kesalahan. Cocok bagi mereka yang baru mempelajari teknik pour over.

Langkah 8

Kopi Anda telah selesai diseduh. Segera singkirkan filter dan ampas kopi lalu bilas dripper dengan sisa air panas. Hal ini bertujuan agar dripper tidak berwarna keruh karena minyak kopi yang menempel.

Langkah 9

Sajikan dengan gelas kecil agar aroma dan rasa lebih terjaga.

Dari : http://kopidewa.com

Barokah

 **
Al Kisah.., pada suatu hari Syeikh al-Imam Syaqiq al-Balkhi membeli buah semangka untuk istrinya. Saat disantapnya ternyata buah semangka tersebut terasa hambar.

.

Dan sang isteri pun marah.
Syeikh al-Imam Syaqiq menanggapi dengan tenang amarah istrinya itu, setelah selesai di dengarkan amarahnya, beliau bertanya dengan halus: 
“Kepada siapakah kau marah wahai istriku?

Kepada pedagang buahnya kah? atau kepada pembelinya? atau kepada petani yang menanamnya?

ataukah kepada yang Menciptakan Buah Semangka itu?”

Tanya Syeikh al-Imam Syaqiq

Istri beliau terdiam.

Sembari tersenyum., Syeikh Syaqiq melanjutkan perkataannya:

“Seorang pedagang tidak menjual sesuatu kecuali yang terbaik…

Seorang pembeli pun pasti membeli sesuatu yang terbaik pula..!

Begitu pula seorang petani, tentu saja ia akan merawat tanamannya agar bisa menghasilkan yang terbaik..!

*Maka sasaran kemarahanmu berikutnya yang tersisa, tidak lain hanya kepada yang Menciptakan Semangka itu..!”*

Pertanyaan Syeikh al-Imam Syaqiq menembus ke dalam hati sanubari istrinya. Terlihat butiran air mata menetes perlahan di kedua pelupuk matanya…

Syeikh al-Imam Syaqiq al-Balkhi pun melanjutkan ucapannya :

“Bertaqwalah wahai istriku…Terimalah apa yang sudah menjadi Ketetapan-Nya. Agar Allah memberikan keberkahan pada kita”

Mendengar nasehat suaminya itu… Sang istri pun sadar, menunduk dan menangis mengakui kesalahannya dan ridho dengan apa yang telah Allah Subhanallohu Wa Ta’ala tetapkan.”

Pelajaran terpenting buat kita adalah bahwa 

*Setiap keluhan yg terucap sama saja kita tidak ridho dengan ketetapan Allah SWT, sehingga barokah Allah jauh dari kita.*

Karena Barokah bukanlah serba cukup dan mencukupi saja, akan tetapi 

*barokah ialah bertambahnya ketaatan kita kepada Allah dengan segala keadaan yang ada, baik yang kita sukai atau sebaliknya.*

Barokah itu: 

*”… bertambahnya ketaatanmu kepada Alloh SWT.*

*Makanan barokah* itu bukan yang komposisi gizinya lengkap, tapi makanan yang mampu membuat yang memakannya menjadi lebih taat setelah memakannya.
*Hidup yang barokah* bukan hanya sehat, tapi kadang sakit itu justru barokah sebagaimana Nabi Ayyub, sakitnya menjadikannya bertambah taat kepada Allah SWT.
*Barokah itu tak selalu panjang umur,* ada yang umurnya pendek tapi dahsyat taatnya layaknya Musab bin Umair.

*Tanah yang barokah* itu bukan karena subur dan panoramanya indah, karena tanah yang tandus seperti Makkah punya keutamaan di hadapan Allah…tiada banding….tiada tara.

*Ilmu yang barokah* itu bukan yang banyak riwayat dan catatan kakinya, akan tetapi yang barokah ialah ilmu yang mampu menjadikan seorang meneteskan keringat dan darahnya dalam beramal & berjuang untuk agama Allah.

*Penghasilan barokah* juga bukan gaji yg besar dan berlimpah, tetapi sejauh mana ia bisa jadi jalan rejeki bagi yang lainnya dan semakin banyak orang yang terbantu dengan penghasilan tersebut.

*Anak² yang barokah* bukanlah saat kecil mereka lucu dan imut atau setelah dewasa mereka sukses bergelar & mempunyai pekerjaan & jabatan yang hebat, tetapi anak yang barokah ialah yang senantiasa taat kepada Robb-Nya dan kelak mereka menjadi lebih shalih dari kita & tak henti²nya mendo’akan kedua Orangtuanya.

Semoga kita semua selalu dianugrahi kekuatan untuk senantiasa bersyukur padaNYA, agar kita me ndapatkan keberkahan Nya.

Aamiin..

Profesor yang meramalkan keruntuhan AS pada 2020

Liputan6.com, Washington, DC – Pernyataan mengejutkan meluncur dari mulut seorang sejarawan. Menurut Peter Turchin, dalam satu dekade ke depan masyarakat Amerika Serikat (AS) akan runtuh karena gejolak politik yang melanda negara-negara Barat.

Prediksi suram dari seorang ahli yang menggunakan matematika untuk meramalkan jalan sejarah seperti halnya yang dilakukan Turchin belum pernah terjadi.

Turchin merupakan seorang profesor dari departemen ekologi dan biologi evolusioner di University of Connecticut.Sosok Turchin adalah ahli terkemuka dari disiplin ilmu cliodynamics, yang percaya bahwa peristiwa sejarah seperti pertumbuhan dan runtuhnya kerajaan atau agama diikuti dengan pola yang dapat didefinisikan dengan jelas.

Dan ia sendiri meyakini bahwa masa depan yang suram tengah menghantui Amerika. Bahkan prediksinya, Negeri Paman Sam akan menghadapi keruntuhannya.

Jika AS runtuh, maka Eropa dan Barat secara keseluruhan akan mengalami nasib serupa.

Dalam sebuah artikel yang ditulis akhir tahun lalu dan dilansir belum lama ini di Phys.Org, Turchin menyebutkan bahwa pada tahun-tahun mendatang akan terjadi kekacauan politik. Puncaknya ada pada tahun 2020-an.

“Tapi ini adalah prediksi yang berbasis ilmu pengetahuan, bukan ‘ramalan.’ Ini didasarkan pada ilmu sosial yang solid,” tegas Turchin seperti dikutip dari News.com.au, Kamis, (5/1/2017).

Ia tak sependapat dengan orang-orang yang histeris dengan kehadiran Donald Trump sebagai presiden terpilih Amerika Serikat. Selama ini Trump kerap dijuluki sebagai satu dari ’empat penunggang kuda pembawa kiamat’ yang dikisahkan dalam Kitab Wahyu.

Namun menurut Turchin, kemenangan Trump ini tidak ada apa-apanya. Karena pada dasarnya, nasib suram tersebut sudah ditakdirkan tak peduli siapa yang berkuasa.

“Masyarakat kita, sama seperti seluruh masyarakat kompleks sebelumnya, berada di rollercoaster. Kekuatan sosial impersonal membawa kita ke atas, kemudian terjun tak terelakkan,” terang Turchin.

Lebih lanjut sang profesor mengatakan, kekacauan akan didorong oleh proses “ledakan elite”. Yang dimaksudnya adalah jumlah orang-orang kaya atau kalangan elite dalam masyarakat tumbuh pesat dan jurang pemisah antara mereka dengan warga miskin kian lebar.

“Ledakan elite pada umumnya akan mengarah ke lebih banyak kompetisi intra-elite yang secara bertahap melemahkan semangat kerja sama, menyebabkan polarisasi ideologi dan fragmentasi kelas politik,” tulisnya.

“Hal ini terjadi karena semakin banyak pesaing, semakin banyak pula yang berakhir di pihak yang kalah. Sebuah kelas besar dari elite yang tidak puas, kebanyakan di antara mereka berpendidikan dan sangat mampu ditolak aksesnya ke posisi elite,” ungkap Turchin.

Akademisi itu juga menyinggung “stagnasi dan penurunan standar hidup serta menurunnya kesehatan fiskal negara sebagai akibat dari jatuhnya pendapatan negara dan meningkatnya biaya” dapat memicu potensi kemerosotan drastis.

Namun bagaimana pun Turchin menegaskan, teorinya ini dapat membantu masyarakat menghindari nasib suram. Caranya dengan mengamati tren dan menghentikannya sebelum menimbulkan masalah bagi masyarakat.

“Kita dapat menghindari yang terburuk, mungkin dengan beralih ke trek yang kurang mengerikan. Mungkin pula dengan jalan mendesain ulang rollercoaster,” pungkasnya

Sqoop 1 or Sqoop 2?

Sqoop1 and Sqoop2 are completely different code paths and, as such, have very different feature sets [1]. So, how do we know when we’re using Sqoop1 or Sqoop2? Here’s a quick list of ways:

Different Usecases

1. Sqoop2 has a UI devoted to it, but Sqoop1 does not

The Hue project has a wonderful UI for using Sqoop2, but nothing specific for Sqoop1.

You can run Sqoop1 jobs from Hue, but it has to be through the Job Designer app or the Oozie app.

2. Sqoop2 has an interactive command line interface, Sqoop1 does not

Sqoop2 and Sqoop1 have slightly different command line interfaces. Since Sqoop2 is service oriented and considers metadata first, there is a sequence of steps that’s necessary to start a job:

sqoop:000> create link --cid 1

Creating link for connector with id 1

Please fill following values to create new link object

Name: hdfs1

New link was successfully created with validation status FINE and persistent id 3

sqoop:000> create link --cid 2

Creating link for connector with id 2

Please fill following values to create new link object

Name: mysql

Link configuration

JDBC Driver Class: com.mysql.jdbc.Driver

JDBC Connection String: jdbc:mysql://solaris.abe.cloudera.com/test

Username: root

Password: ****

JDBC Connection Properties:

There are currently 0 values in the map:

entry#

New link was successfully created with validation status FINE and persistent id 4

sqoop:000> create job --from 4 --to 3

Creating job for links with from id 4 and to id 3

Please fill following values to create new job object

Name: MySQLtoHDFS

From database configuration

Schema name:

Table name: test

Table SQL statement:

Table column names:

Partition column name:

Nulls in partition column:

Boundary query:

ToJob configuration

Output format:

0 : TEXT_FILE

1 : SEQUENCE_FILE

Choose: 0

Compression format:

0 : NONE

1 : DEFAULT

2 : DEFLATE

3 : GZIP

4 : BZIP2

5 : LZO

6 : LZ4

7 : SNAPPY

8 : CUSTOM

Choose: 0

Custom compression format:

Output directory: /tmp/sqoop/hdfs

Throttling resources

Extractors:

Loaders:

New job was successfully created with validation status FINE and persistent id 1

sqoop:000> start job --jid 1

Submission details

Job ID: 1

Server URL: http://localhost:12000/sqoop/

Created by: ab

Creation date: 2014-10-21 10:49:24 PDT

Lastly updated by: ab

External ID: job_1412928093521_0015

http://solaris.abe.cloudera.com:8088/proxy/application_1412928093521_0015/

Source Connector schema: Schema{name=test,columns=[

FixedPoint{name=id,nullable=true,byteSize=null,unsigned=null}]}

2014-10-21 10:49:24 PDT: BOOTING - Progress is not available

In Sqoop1, creating a link and job is unnecessary. You just need to specify every thing in the command line:

sqoop import --connect jdbc:oracle:thin:@//localhost/xe --username sqoop --password sqoop --table sqoop --hbase-table sqoop --column-family cf --hbase-row-key id --hbase-create-table --hbase-bulkload

3. Oozie has support for Sqoop1, not Sqoop2 yet

If you want to Sqoop data with Oozie, then you’re going to need to use Sqoop1.

<workflow-app name="test" xmlns="uri:oozie:workflow:0.4">

<start to="MySQL-to-HDFS"/>

<action name="MySQL-to-HDFS">

<sqoop xmlns="uri:oozie:sqoop-action:0.2">

<job-tracker>${jobTracker}</job-tracker>

<name-node>${nameNode}</name-node>

<command>import --connect jdbc:oracle:thin:@//localhost/xe --username sqoop --password sqoop --table sqoop --hbase-table sqoop --column-family cf --hbase-row-key id --hbase-create-table --hbase-bulkload</command>

</sqoop>

<ok to="end"/>

<error to="kill"/>

</action>

<kill name="kill">

<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>

</kill>

<end name="end"/>

</workflow-app>

4. Cloudera Manager manages Sqoop2 service and Sqoop1

Cloudera manager manages both Sqoop versions (as of CM 5.0). The default Sqoop service that’s installed is the Sqoop 2 service (even though it might be named SQOOP-1).

Which am I Using?

A couple of good ways to know which you version of Sqoop you are using are:

1. Check for /usr/lib/sqoop or /usr/lib/sqoop2

Sqoop2 uses the /usr/lib/sqoop2 directory, while Sqoop1 uses the /usr/lib/sqoop directory. These directories should hold the binaries and content necessary for running both versions of Sqoop.

2. Check for /usr/lib/sqoop or /usr/lib/sqoop2

Sqoop2 uses the /var/lib/sqoop2 directory, while Sqoop1 uses the /var/lib/sqoop directory. These directories should hold extra JDBC drivers necessary for connecting to different data sources (such as Teradata and Netezza).

3. Check /var/log/sqoop2

Sqoop2 stores its logs in /var/log/sqoop2. If this files in this directory are being updated, you’re likely using Sqoop2.

When in doubt about anything, check with the Sqoop mailing list.

Summary

It’s good to know when you’re using Sqoop1 versus Sqoop2. Since integration with the rest of the Big Data ecosystem varies (for instance, there’s a Sqoop2 UI in Hue, but not a Sqoop1 UI), it can get confusing to know which version of Sqoop you’re using. Hopfully the above list cleared things up! Now go get Sqooping!

Source : http://ingest.tips/2014/10/21/sqoop-1-or-sqoop-2/