Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

JanusGraph tutorial

NOTE: it goes without saying that you need a properly configured JDK in your environment.

This is a hands on guide for JanusGraph. It is organized in sections (each folder is an independent project with a section) and it is expected you follow each guide in order.

Starging Janus Graph

Every code here assumes you are running JanusGraph 0.1.0 locally.

For the lazy

You should be ashamed. BUT, here is a shortcut:

./start_janus.sh

For the ones that want to really learn stuff

This is fairly simple; just download janus and tell it to start up.

$ wget https://github.com/JanusGraph/janusgraph/releases/download/v0.1.0/janusgraph-0.1.0-hadoop2.zip
$ unzip janusgraph-0.1.0-hadoop2.zip $ cd janusgraph-0.1.0-hadoop2/
$ ./bin/janusgraph.sh start

The last command should output:

Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

Meaning you have cassandra and elasticsearch listening on the loopback interface. This is important for the examples to work.

If you need to clean your data:

  1. stop janus graph
  2. rm -rf db
  3. start janus graph

It is also recommended that you read:

Why

I wrote this guide after trying to find my way through this technology. I had to learn it because the traditional tools were not enough for the kind of data processing required in the task assigned to me.

JanusGraph has proven to be a solid and reliable solution to our project and I hope this guide is useful for you.

This is by no means a complete guide to JanusGraph. But I believe that following this using the official documentation as a reference is enough framework for you to really dive into this technology.

Scope

On this tutorial we will build the backend database of a twitter clone. The sections are divided into:

  1. basic schema
  2. data loading
  3. querying
  4. indexing for performance
  5. hadoop integration

By the end of this tutorial you should be able to design your own database backend using JanusGraph.

Code

Every Java code depends on the main schema class. This is a design decision to reuse code and have more consistency in naming. Also, by doing so, we avoid usage of hard coded Strings as much as possible.

To ease your life, there is a simple shell script in each section called run.sh. This will build and evoke the example code for you.

Java

We are using the standard gradle application plugin naming conventions on Java projects; this means that we have the folders:

/src/main/
dist
resources
java

Inside dist you will find the JanusGraph configuration files. Each section has its own files. In resources there is the log4j.properties file. And java contains the implementation.

Ruby

In our ruby example codes we are relying on:

  • RVM: for ruby version management (if you use someting different, please prepare your env).
  • bundler (gem install bundler): for dependency management.
  • gremlin driver gem: a really simple driver in ruby for JanusGraph.

About

Tutorial with example code on how to get started with JanusGraph

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages