Integration of Graphexp and JanusGraph via Gremlin - janusgraph

I generated one small graph of 3 nodes in gremlin (JanusGraph; in-memory database), I want to visualize this graph using Graphexp.
Please let me know how to integrate these two.

As you can see in the GitHub documentation:
Next step, configure the server settings on the bottom of the page. The default Gremlin server address is localhost:8182. You will have to specify the communication protocol websocket or REST and the gremlin server version. Graphexp is not able to handle secure connections yet and a contribution on this topic would be welcome.
The configuration is added to the file graphConf.js.

Related

Nifi communication with nifi-registry in restricted environments (http_proxy)

I setup nifi and nifi-registry to different servers and they communicate fine with https and cert authorization and authentication.
Now i face a problem in exactly the same setup for another nifi that need to communicate with the same nifi-registry. The problem is that the new nifi is on a restricted area, with http_proxy. I search many days for a solution for that. I don't find anything in the documentation about that.
At nifi in the controller settings/registry-clients, is there any way that i can inform nifi that the communication will be through http_proxy and not straight?
Nothing on the documentation talks about that. Maybe people face it with another way? Or simple is not possible?
The version of nifi and nifi-registry are 1.15.3.
I think I would probably need a clearer understanding of where the proxy is, but this page describes proxy configuration in front of NiFi and what fields that proxy would need to set to sit in front of NiFi: https://docs.cloudera.com/HDPDocuments/HDF3/HDF-3.5.2/nifi-configuration-best-practices/content/proxy_configuration.html
and for NiFi registry:
https://nifi.apache.org/docs/nifi-registry-docs/html/administration-guide.html#proxy_configuration

How to show through which cassandra node your request was served

Why?
For educational purposes. I think it would be really nice for my audience to actually "see" it work like that.
Setup
A dockerized Spring boot REST API (serving up customer information)
A dockerized Cassandra cluster consisting of three connected nodes, holding customer data with a replication factor of two.
Suggestions
Showing which IP address or container name served my request
Showing which IP address or container name held the data that was used to show my request.
If I were to run these nodes on three seperate physical machines, maybe which machine held my data?
Something else you have in mind that really shows the distributed capabilities of Cassandra
Can this be achieved in docker logs or something in Spring data Cassandra that I am not aware of?
I don't know about Spring Data, but in normal Java driver you can get execution information from ResultSet via getExecutionInfo, and call function getQueriedHost from it. If you're using default DCAware/TokenAware load balancing policy, then you reach at least one of the nodes that hold your data. The rest of information you can get via Metadata class from which you can get a list of token ranges owned by hosts, generate a token for your partition key, and lookup in the token ranges.
P.S. See Java driver documentation for more details.

Vertx STOMP session stores configuration

I'm using Vertx-STOMP over websockets and I have followed the instructions from the documentation with success.
My question is how is it possible to enable session store in order to utilize it in my application? I cannot find any obvious example.
Am I on the right direction if I try to enable Session with instructions from the vertx-web?
Moreover, is it possible to maintain both stomp server and http server to serve normal RESTful requests under different endpoints, for instance:
WEBSOCKET STOMP via /stomp
and
RESTful API via /api/*
If I understood it correctly you're looking into using your STOMP server to store the session data for your application. If that is the case, you're out of luck since there is currently 2 implementations:
Local Storage (in memory)
Clustered Storage (using the underlying cluster manager)
See here: https://github.com/vert-x3/vertx-web/tree/master/vertx-web/src/main/java/io/vertx/ext/web/sstore
If you really need a custom storage and you're willing to contribute to the open source project I'd say provide an implementation of the interface:
https://github.com/vert-x3/vertx-web/blob/master/vertx-web/src/main/java/io/vertx/ext/web/sstore/SessionStore.java
That uses your STOMP backend. If you're a student, this could be a interesting Google Summer of Code project.

Understanding Elasticsearch deployment in 2 server load balanced setup

We have a two server load balanced ASP.NET MVC application that we're look to add search to - we like the look of Elasticsearch!
I'd like to build a bit of resiliency in so am considering installing ES on both servers and have them work like a cluster (which seems straightforward enough according the docs).
But I really want my MVC app to talk to "the cluster" not to each specific ES node, so if an ES node fails, or a server fails the application is unaffected:
Do I need to refer to the cluster in a special way from my application or setup some kind of internal domain for it?
I don't want to refer to "localhost:9200" or a server specific IP in my application I presume?
You should consider using the Elasticsearch .NET Client NEST. This client has built in support for failover connections when accessing an Elasticsearch Cluster.
If you want a failover client instead of passing a Uri pass an IConnectionPool see the Elasticsearch.Net documentation on cluster failover all of its implementations can also be used with NEST.

Flume to fetch logs over network

I have been working in Flume to fetch logs from a server machine to HDFS. I was able to achieve this if the server and client machines are connected in same network. But how can i achieve the same if the server and client are in different networks.
Do i need to write a custom source for this? [Just checked with twitter example from cloudera in which they're using their own custom source to fetch twitter tweets.]
Any help would be greatly appreciated.
Thanks,
Kalai
If you have a multihomed host joining two non-talking networks you'd like to ship across, you can have a flume agent running there to bridge logs incoming from one network and deliver it to the other one. So your multihomed host will act as a sort of proxy. I don't know if this is necessarily a good idea, as your proxy is probably already busy doing other things if it's the only link between the networks. But if you can set this up, you won't need custom sinks or sources.
If you have two disjoint networks that can both see the internet, you can have one agent post to a web server over HTTP (or TCP for that matter, but it's more work), and another fetch it from the same website. You'll need to write two custom agents (source & sink) for that to work in a performant, reliable and secure fashion, not to mention the web service itself.
Finally, if you have two networks that are completely disconnected (with an air gap), then you may consider writing a custom sink that will, for example, autodetect an inserted tape and copy logs to the tape. Then you take the tape, walk over to another network, plug it in, and have another agent there autodetect it as well and ingest the data :)
Flume agents need to be able to connect to transport events. This means they need to be on the same network.
I'm not sure I understand your question. Why would you expect it to work at all?

Resources