To run python script in apache spark/Storm
First and foremost what are you trying to achieve? What does running on Hadoop technology mean to you? If the goal is to work with a lot of data, this is one thing, if it's to parallelize the algorithm, it's another. My guess is you want both.
First thing is: is the algorithm parallelizable? Can it run on multiple pieces of data at the same time and gather them all in the end to make the final answer? Some algorithms are not, especially if they are recursive and require previously computed data to process the next.
In any case, running on Hadoop means running using Hadoop tools, whether it is Spark, Storm or other services that can run on Python, taking advantage of Hadoop means writing your algorithm for it.
if your algorithm is parallelizable, then likely you can easily take the piece that processes one piece of data and adapt it to run with Spark or Storm on huge datasets.
I am having an algorithm written in python (not hadoop compatible i.e. not mapper.py and reducer.py) and it is running perfectly in local system (not hadoop).  My objective is to run this in hadoop.
Option 1: Hadoop streaming.  But, I need to convert this python script into mapper and reducer.  Any other way?
Option 2: To run this python script through Storm.  But, I am using cloudera which doesn't have Storm.  either I need to install storm in cloudera or need to use Spark.  If I install storm in cloudera.  Is it better option?
Option 3: To run this python script through Spark (Cloudera).  Is it possible.  
This algorithm is not for real time processing.  But, we want to process it in hadoop technology.
Please help with other suitable solution.