What is Apache Spark?

ພາບ​ລວມ: Apache spark is a high performance general engine used to process large scale data. It is an open source framework used for cluster computing. Aim of this framework is to make the data analytic faster – both in terms of development and execution. In this document, I will talk about Apache Spark and discuss the various aspects of this framework.

ການ​ນໍາ​ສະ​ເຫນີ: Apache spark is an open source framework for cluster computing. It is built on top of the Hadoop Distributed File System (HDFS). It doesn’t use the two stage map reduce paradigm. But at the same time it promises up to 100 times faster performance for certain applications. Spark also provides the initial leads for cluster computing within the memory. This enables the application programs to load the data into the memory of a cluster so that it can be queried repeatedly. ນີ້ in-memory computation makes Spark one of the most important component in big data computation world.

Features: Now let us discuss the features in brief. ການເຕັ້ນຣໍາກຸ໊ຍ Spark ຂຶ້ນມາດ້ວຍຄຸນສົມບັດດັ່ງຕໍ່ໄປນີ້:

  • APIs ຂຶ້ນຢູ່ກັບ Java, Scala ແລະ Python.
  • ຂະຫຍາຍລະບົບຕັ້ງແຕ່ 80 to 100 nodes.
  • ຄວາມສາມາດໃນຊຸດຂໍ້ມູນທີ່ cache ພາຍໃນຫນ່ວຍຄວາມຈໍາສໍາລັບການທີ່ກໍານົດໄວ້ຂໍ້ມູນແບບໂຕ້ຕອບ. E.g. ສານສະກັດຈາກທີ່ກໍານົດໄວ້ການເຮັດວຽກ, cache ມັນແລະສອບຖາມມັນຊ້ໍາ.
  • ຫ້ອງສະຫມຸດປະສິດທິພາບສໍາລັບການ ການປຸງແຕ່ງນ້ໍາ.
  • ຫ້ອງສະຫມຸດປະສິດທິພາບສໍາລັບການ ການຮຽນຮູ້ເຄື່ອງ ແລະ ການປຸງແຕ່ງເສັ້ນສະແດງ.

ໃນຂະນະທີ່ເວົ້າກ່ຽວກັບການ Spark ໃນສະພາບການຂອງວິທະຍາສາດຂໍ້ມູນທີ່ມັນແມ່ນສັງເກດເຫັນວ່າ spark ມີຄວາມສາມາດທີ່ຈະຮັກສາຂໍ້ມູນຢູ່ໃນຫນ່ວຍຄວາມຈໍາ. ວິທີການນີ້ຊ່ວຍເພີ່ມປະສິດທິພາບເມື່ອທຽບກັບແຜນທີ່ຫຼຸດຜ່ອນ. ເບິ່ງຈາກດ້ານເທິງ, spark ປະກອບດ້ວຍໂຄງການຄົນຂັບຊຶ່ງເນັ້ນການວິທີການຕົ້ນຕໍຂອງລູກຄ້າແລະການດໍາເນີນການດໍາເນີນງານຕ່າງໆໃນຮູບແບບຂະຫນານໃນສະພາບແວດລ້ອມລັດເຕີ.

spark ໃຫ້ ຊຸດຂໍ້ມູນທີ່ແຈກຢາຍຄວາມຢືດຢຸ່ນ (RDD) ຊຶ່ງເປັນການເກັບກໍາຂອງອົງປະກອບທີ່ມີການແຈກຢາຍໃນທົ່ວຂໍ້ທີ່ແຕກຕ່າງກັນຂອງກຸ່ມ, ດັ່ງນັ້ນວ່າພວກເຂົາເຈົ້າສາມາດໄດ້ຮັບການປະຕິບັດໃນຂະຫນານ. Spark ມີຄວາມສາມາດໃນການເກັບຮັກສາເປັນ RDD ໃນຫນ່ວຍຄວາມຈໍາ, ດັ່ງນັ້ນຈຶ່ງປ່ອຍໃຫ້ມັນໄດ້ຮັບການນໍາກັບມາໃຊ້ປະສິດທິຜົນໃນທົ່ວປະຕິບັດຂະຫນານ. RDDs ຍັງສາມາດຟື້ນຕົວອັດຕະໂນມັດໃນກໍລະນີຂອງຄວາມລົ້ມເຫຼວຂໍ້.

Spark ຍັງໄດ້ສະຫນອງການປ່ຽນແປງທີ່ໃຊ້ຮ່ວມກັນທີ່ໄດ້ຖືກນໍາໃຊ້ໃນການດໍາເນີນງານຂະຫນານ. ໃນເວລາທີ່ spark ເຮັດວຽກໃນຂະຫນານທີ່ກໍານົດໄວ້ຂອງວຽກງານກ່ຽວກັບຂໍ້ທີ່ແຕກຕ່າງກັນ, ມັນໂອນສໍາເນົາຂອງແຕ່ລະຕົວແປກັບວຽກງານທຸກ. ການປ່ຽນແປງເຫລົ່ານີ້ຍັງໃຊ້ຮ່ວມກັນໃນວຽກງານທີ່ແຕກຕ່າງກັນ. ໃນ spark ພວກເຮົາມີສອງປະເພດຂອງການປ່ຽນແປງທີ່ໃຊ້ຮ່ວມກັນ -

  • ອອກອາກາດຕົວແປ – ນໍາໃຊ້ເພື່ອ cache ຄ່າໃນຄວາມຊົງຈໍາ
  • ກອງ – ນໍາໃຊ້ໃນກໍລະນີຂອງວຽກງານຕ້ານການແລະ sums.

ການກໍາຫນົດຄ່າ Spark:

Spark ມີສາມເຂດຕົ້ນຕໍສໍາລັບການຕັ້ງຄ່າ:

  • ຄຸນສົມບັດ spark – ການຄວບຄຸມນີ້ທີ່ສຸດຂອງຄໍາຮ້ອງສະຫມັກແລະສາມາດໄດ້ຮັບການກໍານົດໂດຍບໍ່ວ່າຈະນໍາໃຊ້ SparkConf ວັດຖຸສິ່ງຂອງຫລືມີການຊ່ວຍເຫຼືອຂອງຄຸນສົມບັດລະບົບ Java ໄດ້.
  • ຕົວແປສະພາບແວດລ້ອມ – ເຫຼົ່ານີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອ configure ປັບຄ່າຕາມເຄື່ອງ e.g. ທີ່ຢູ່ IP ມີການຊ່ວຍເຫຼືອຂອງ conf / spark-env.sh script ທຸກຂໍ້ດຽວ.
  • ການຕັດໄມ້ທ່ອນ – ນີ້ສາມາດໄດ້ຮັບການ configured ການນໍາໃຊ້ຄຸນສົມບັດ log4j ມາດຕະຖານ.

ຄຸນສົມບັດ spark: ຄຸນສົມບັດ Spark ຄວບຄຸມສ່ວນໃຫຍ່ຂອງການປັບຄ່າຄໍາຮ້ອງສະຫມັກແລະຄວນຈະໄດ້ຮັບການ configured ການແຍກຕ່າງຫາກສໍາລັບຄໍາຮ້ອງສະຫມັກແຍກຕ່າງຫາກ. ຄຸນສົມບັດເຫຼົ່ານີ້ສາມາດໄດ້ຮັບການກໍານົດການນໍາໃຊ້ວັດຖຸ SparkConf ແລະຖືກສົ່ງຜ່ານໄປຍັງ SparkContext. SparkConf ອະນຸຍາດໃຫ້ພວກເຮົາເພື່ອກໍາຫນົດຄ່າທີ່ສຸດຂອງຄຸນສົມບັດທົ່ວໄປທີ່ຈະເລີ່ມຕົ້ນ. ການນໍາໃຊ້ທີ່ກໍານົດໄວ້ () ວິທີການຂອງລະດັບ SparkConf ພວກເຮົາຍັງສາມາດກໍານົດຄູ່ຄ່າທີ່ສໍາຄັນ. A ຕົວຢ່າງລະຫັດການນໍາໃຊ້ທີ່ກໍານົດໄວ້ () ວິທີການສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້ -

Listing 1: ຕົວຢ່າງສະແດງໃຫ້ເຫັນວິທີການກໍານົດ

ເລືອກ conf = SparkConf ໃຫມ່ ()

. setMaster( “AWS” )

. setAppName( “ຄໍາຮ້ອງສະຫມັກ SPARK ຕົວຢ່າງຂອງຂ້າພະເຈົ້າ” )

. ທີ່ກໍານົດໄວ້( “spark.executor.memory” , “1g” )

sc ການຄັດເລືອກ = SparkContext ໃຫມ່ (conf)

ບາງສ່ວນຂອງຄຸນສົມບັດທົ່ວໄປ –
• spark.executor.memory – ນີ້ສະແດງເຖິງການຈໍານວນເງິນຂອງຄວາມຊົງຈໍາທີ່ຈະນໍາໃຊ້ຕໍ່ຜູ້ປະຕິບັດ. •
• spark.serializer – ລະດັບການນໍາໃຊ້ used ກັບ serialize ສິ່ງທີ່ຈະຖືກສົ່ງຜ່ານເຄືອຂ່າຍ. ນັບຕັ້ງແຕ່ອະນຸກົມ java ໃນຕອນຕົ້ນແມ່ນຂ້ອນຂ້າງຊ້າ, ມັນແມ່ນແນະນໍາໃຫ້ໃຊ້ລະດັບ org.apache.spark.serializer.JavaSerializer ເພື່ອໃຫ້ໄດ້ຮັບການປະຕິບັດດີກວ່າ.
• spark.kryo.registrator – ລະດັບການນໍາໃຊ້ used ທີ່ຈະລົງທະບຽນຮຽນທີ່ກໍາຫນົດເອງຖ້າຫາກວ່າພວກເຮົານໍາໃຊ້ອະນຸກົມ Kyro
• spark.local.dir – ສະຖານທີ່ທີ່ spark ນໍາໃຊ້ເປັນພື້ນທີ່ scratch ເພື່ອເກັບຮັກສາໄຟລ໌ແຜນທີ່ຜົນຜະລິດ.
• spark.cores.max – ໃຊ້ໃນຮູບແບບມາດຕະການລະບຸຈໍານວນສູງສຸດຂອງແກນ CPU ການຮ້ອງຂໍ.

ຕົວແປສະພາບແວດລ້ອມ: Some of the spark settings can be configured using the environment variables which are defined in the conf/spark-env.sh script file. These are machine specific settings e.g. library search path, java path etc. Some of the commonly used environment variables are –

  • JAVA_HOME – Location where JAVA is installed on your system.
  • PYSPARK_PYTHON – The python library used for PYSPARK.
  • SPARK_LOCAL_IP – IP address of the machine which is to be bound.
  • SPARK_CLASSPATH – Used to add the libraries which are used at runtime to execute.
  • SPARK_JAVA_OPTS – Used to add the JVM options

ການຕັດໄມ້ທ່ອນ: Spark uses the standard Log4j API for logging which can be configured using the log4j. properties file.

Initializing Spark:

To start with a spark program, the first thing is to create a JavaSparkContext object, which tells spark to access the cluster. ເພື່ອສ້າງສະພາບການ spark ທໍາອິດທີ່ພວກເຮົາສ້າງວັດຖຸ spark conf ເປັນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້:

Listing 2: ໃນການເລີ່ມຕົ້ນຈຸດປະສົງສະພາບການ spark ໄດ້

SparkConfconfig = newSparkConf().setAppName(applicationName).setMaster(master);

JavaSparkContextconext = newJavaSparkContext(config);

The applicationName ພາລາມິເຕີເປັນຊື່ຂອງຄໍາຮ້ອງສະຫມັກຂອງພວກເຮົາທີ່ສະແດງໃຫ້ເຫັນກ່ຽວກັບ UI ກຸ່ມ. ຕົ້ນສະບັບພາລາມິເຕີເປັນ URL ກຸ່ມຫຼືຊ່ອຍແນ່ທ້ອງຖິ່ນນໍາໃຊ້ເພື່ອດໍາເນີນການໃນຮູບແບບທ້ອງຖິ່ນ.

Datasets ການແຜ່ກະຈາຍຄວາມຢືດຢຸ່ນ (RDDs):

Spark ແມ່ນອີງໃສ່ແນວຄວາມຄິດຂອງຊຸດຂໍ້ມູນທີ່ແຈກຢາຍຄວາມຢືດຢຸ່ນຫຼື RDD ໄດ້. RDD ເປັນການເກັບກໍາຄວາມຜິດຄວາມທົນທານຕໍ່ຂອງອົງປະກອບທີ່ສາມາດໄດ້ຮັບການດໍາເນີນການໃນຂະຫນານ. RDD ສາມາດໄດ້ຮັບການສ້າງຕັ້ງຂື້ນໂດຍນໍາໃຊ້ຫນຶ່ງໃນດັ່ງຕໍ່ໄປນີ້ທັງສອງລັກສະນະ:

  • ໂດຍ Parallelizing ເປັນການເກັບກໍາທີ່ມີຢູ່ແລ້ວ – ເກັບຂະຫນານຖືກສ້າງຕັ້ງຂື້ນໂດຍການໂທຫາວິທີການຂະຫນານຂອງລະດັບ JavaSparkContext ໃນໂຄງການຄົນຂັບ. ອົງປະກອບຂອງສານຈະຖືກຄັດລອກຈາກການເກັບກໍາທີ່ມີຢູ່ທີ່ສາມາດໄດ້ຮັບການດໍາເນີນການໃນຂະຫນານ.
  • ໂດຍການໃຊ້ຂໍ້ມູນກ່ຽວກັບລະບົບການເກັບຮັກສາຈາກພາຍນອກ – Spark ມີຄວາມສາມາດໃນການສ້າງຊຸດຂໍ້ມູນການຂົນສົ່ງຈາກ Hadoop ຊ່ອງການເກັບຮັກສາທີ່ຮອງຮັບ e.g. HDFS, Cassendra, Hbase etc.

ການປະຕິບັດ EET:

RDD ສະຫນັບສະຫນູນສອງປະເພດຂອງການດໍາເນີນງານ –

  • Transformations – ການນໍາໃຊ້ເພື່ອສ້າງຊຸດຂໍ້ມູນໃຫມ່ຈາກການຫນຶ່ງທີ່ມີຢູ່ແລ້ວ.
  • Actions – ນີ້ຈະກັບຄືນມາເປັນມູນຄ່າໃຫ້ກັບໂຄງການຄົນຂັບຫຼັງຈາກທີ່ປະຕິບັດລະຫັດໃນຊຸດຂໍ້ມູນທີ່ໄດ້.

ໃນ RDD ການປ່ຽນແປງແມ່ນ lazy. ການຫັນເປັນບໍ່ຄໍານວນຜົນໄດ້ຮັບຂອງເຂົາເຈົ້າໃນທັນທີ. ແນ່ນອນວ່າພວກເຂົາເຈົ້າພຽງແຕ່ຈື່ການປ່ຽນແປງຊຶ່ງຖືກນໍາໃຊ້ກັບຊຸດຂໍ້ມູນພື້ນຖານ.

Summary: ດັ່ງນັ້ນ, ໃນການສົນທະນາຂ້າງເທິງນີ້ຂ້າພະເຈົ້າໄດ້ອະທິບາຍລັກສະນະທີ່ແຕກຕ່າງກັນຂອງໂຄງຮ່າງການ Apache SPARK ແລະການປະຕິບັດຂອງຕົນ. ການປະຕິບັດຂອງ SPARK ໃນໄລຍະການເຮັດວຽກ MapReduce ປົກກະຕິກໍ່ແມ່ນຫນຶ່ງໃນລັກສະນະທີ່ສໍາຄັນທີ່ສຸດທີ່ພວກເຮົາຄວນເຂົ້າໃຈຢ່າງຊັດເຈນ.

Let us conclude our discussion in the following bullets:

  • Spark ເປັນໂຄງຮ່າງທີ່ນໍາສະເຫນີໂດຍ Apache ທີ່ມາພ້ອມກັບເຄື່ອງມືຄົ້ນຫາການປະຕິບັດສູງໃຊ້ເພື່ອການຂະຫນາດໃຫຍ່ຂອງຂໍ້ມູນ.
  • ການພັດທະນາກ່ຽວກັບການເທິງຂອງ HDFS, ແຕ່ວ່າມັນບໍ່ໄດ້ໃຊ້ແຜນການຫຼຸດຜ່ອນ paradigm.
  • ຄໍາຫມັ້ນສັນຍາ spark 100 ການປະຕິບັດໄວເວລາກ່ວາ Hadoop.
  • Spark ດໍາເນີນການທີ່ດີທີ່ສຸດກຸ່ມ.
  • Spark ສາມາດຂະຫຍາຍເຖິງລະດັບຂອງການ 80 to 100 nodes.
  • Spark ມີຄວາມສາມາດໃນການແຄດຊຸດຂໍ້ມູນ
  • Spark ສາມາດໄດ້ຮັບການ configured ການຊ່ວຍເຫຼືອຂອງເອກະສານຄຸນສົມບັດແລະບາງການປ່ຽນແປງສະພາບແວດລ້ອມ.
  • Spark ແມ່ນອີງໃສ່ຊຸດຂໍ້ມູນການກະຈາຍຄວາມຢືດຢຸ່ນ (RDD) ຊຶ່ງເປັນການເກັບກໍາຂອງວັດຖຸຄວາມທົນທານຕໍ່ຄວາມຜິດ.
Tagged on:
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share