Member since
03-24-2016
184
Posts
239
Kudos Received
39
Solutions
My Accepted Solutions
Title | Views | Posted |
---|---|---|
2541 | 10-21-2017 08:24 PM | |
1555 | 09-24-2017 04:06 AM | |
5580 | 05-15-2017 08:44 PM | |
1680 | 01-25-2017 09:20 PM | |
5509 | 01-22-2017 11:51 PM |
03-30-2016
01:56 PM
@Attila Kanto So if you have Object storage and use cloud break to install Hadoop, HDFS will sit on top of the object storage once everything is installed, I get that. But will the data show up on HDFS if the cluster is taken down and then brought back up with Cloud Break or will it have to be reloaded?
... View more
03-30-2016
01:41 PM
I have recently built a demo that does something like this. Keep in mind that as soon as you add a CEP tool like Storm or a queuing system like Kafka or JMS into the architecture your solution becomes asynch. For the synch portion just setup a basic REST web service that makes a synch call to the backend. For the asynch with analytics part try this: Nifi listening on HTTP to receive the rest web service call from the mobile app --> use Nifi to shape the request and route it to the correct Kafka queue in case you need multiple points of entry. In either case it gives you the flexibility to change the data model of the request and/or the response without having to change both the client and the server --> Kafka queues the request to support once and only once delivery --> Storm to consume request and apply whatever analytics you need. Get whatever data is required from data serving layer --> you can use cache or a data grid like Ignite or Gemfire, however, unless you need sub millisecond response or you are doing 250K TPS or more I would just go with Hbase as the data serving layer (HBase can handle 250K + TPS but you need more region servers and some tuning) --> At this point Storm should have the response and can either post it back to Kafka or HTTP where Nifi can consume it and deliver it to the mobile app through something like Google Cloud Messaging. This architecture will give you a very flexible, very near real time asynch analytics platform that will scale up as far as you want to go.
... View more
03-30-2016
01:14 PM
@Sridhar Babu M You can see the details of what Spark is doing by clicking on the application master in Resource Manager UI. When you click on the application master link for the Spark job in Resource Manager UI it will take you to the Spark UI and show you the job in detail. You may just have to make sure that the Spark History Server is running in Ambari or the page may come up blank. If you actually need to change the value in the file then you will need to export the resulting Data Frame to file. The save function that is part of DF class creates a files for each partition. If you need a single file you convert back to an RDD and use coalesce(1) to get everything down to a single partition so you get one file. Make sure that you add the dependency in Zeppelin %dep z.load("com.databricks:spark-csv_2.10:1.4.0") or spark-shell --packages com.databricks:spark-csv_2.10:1.4.0 import org.apache.spark.sql.SQLContext
import org.apache.spark.sql.SaveMode
case class Person(name: String, age: Int)
var personRDD = sc.textFile("/user/spark/people.txt")
var personDF = personRDD.map(x=>x.split(",")).map(x=>Person(x(0),(x(1).trim.toInt))).toDF()
personDF.registerTempTable("people")
var personeDF = sqlContext.sql("SELECT * FROM people")
var agedPerson = personDF.map(x=>if(x.getAs[String]("name")=="Justin"){Person(x.getAs[String]("name"), x.getAs[Int]("age")+2)}else{Person(x.getAs[String]("name"), x.getAs[Int]("age"))}).toDF()
agedPerson.registerTempTable("people")
var agedPeopleDF = sqlContext.sql("SELECT * FROM people")
agedPeopleDF.show
agedPeopleDF.select("name", "age").write.format("com.databricks.spark.csv").mode(SaveMode.Overwrite).save("agedPeople")
var agedPeopleRDD = agedPeopleDF.rdd
agedPeopleRDD.coalesce(1).saveAsTextFile("agedPeopleSingleFile")
... View more
03-29-2016
06:17 PM
4 Kudos
Atlas is a great data governance tool as it provides visibility into what data is and how it got there. What use case is Atlas being used for in production?
... View more
Labels:
- Labels:
-
Apache Atlas
03-29-2016
06:14 PM
3 Kudos
Spark provide a lot of powerful capabilities for working with Graph data structures. What Graph oriented database is best to use in combination with Spark GraphX and why?
... View more
Labels:
- Labels:
-
Apache Spark
03-29-2016
06:02 PM
Just looked through the Metron project and none of the POM files seem to have a reference to Spark. I bet they are either using PMML or exporting weights. I did a bit more reading as well and the more I think about it the more it seems like that pattern is just not such a great idea. Thanks for your input.
... View more
03-29-2016
05:42 PM
1 Kudo
+1 azeltov. We can take that one step further an make the Hive tables available through Spark SQL via JDBC from outside the cluster. SPARK_HOME/sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port={port to listen} --hiveconf hive.server2.thrift.bind.host={host to bind to} --master yarn-client This will start a HiveServer2 instance that has access to the meta store but will turn SQL into Spark instruction sets and RDDs under the covers. You should now be able to use a HiveServer compliant JDBC driver to connect and access the power of SparkSQL and yet leverage all of the existing investment and assets in Hive.
... View more
03-29-2016
04:32 PM
@Neeraj Sabharwal I have built systems on IMDGs before and have read how the HDFS acceleration is supposed to work. I am asking if you yourself have tried it and have any insight. Does it live up to what the marketing material claims it can do? Do you yourself see potential for it in the field?
... View more
03-29-2016
04:27 PM
@azeltov How large is the implementation (How many tables, how much is cached vs read through to source)? In the case where they are caching the entire table, how do they ensure the data is not stale? Are the tables temporary or saved in the hive meta store?
... View more
03-29-2016
02:54 PM
1 Kudo
Just wanted to point out that Hazelcast is an in-memory data grid not a data store. With standard configuration, the data is entirely in volatile memory. You can use a backing store to ensure that data is persisted between restarts but the purpose of Hazelcast and IMDGs in general is for application acceleration not data storage. IMDGs are also capable of recieveing and distributing instruction sets across the cluster (send compute to data) similar to Hadoop. IMDGs can also execute instructions on every individual get/put/delete operation that hits the cluster. At the moment, IMDGs are not designed to scale past several TB and so would generally be used to augment a big data architecture, not replace it. However, the potential acceleration provided by and IMDG to an OLTP use case can be in the n^x realm.
... View more