Git Product home page Git Product logo

bundle-realtime-syslog-analytics's Introduction

Overview

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using a simple programming model.

Hadoop is designed to scale from a few servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, Hadoop can detect and handle failures at the application layer. This provides a highly-available service on top of a cluster of machines, each of which may be prone to failure.

Apache Flume is a distributed, reliable, and highly available service for collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. Learn more at flume.apache.org.

Apache Zeppelin is a web-based notebook that enables interactive data analytics. It allows for beautiful data-driven, interactive, and collaborative documents with SQL, Scala and more. Learn more at zeppelin.apache.org.

This bundle provides a complete deployment of Hadoop and Zeppelin components from Apache Bigtop. By leveraging these components along with Rsyslog and Flume, this bundle provides a robust environment for analysing syslog events.

Bundle Composition

The applications that comprise this bundle are spread across 6 units as follows:

  • NameNode v2.7.3
  • ResourceManager v2.7.3
    • Colocated on the NameNode unit
  • Slave (DataNode and NodeManager) v2.7.3
    • 3 separate units
  • Client (Hadoop endpoint)
  • Plugin (Facilitates communication with the Hadoop cluster)
    • Colocated on the Client unit
  • Zeppelin v0.7.2
    • Colocated on the Client unit
  • Flume-HDFS v1.6.0
    • Colocated on the Client unit
  • Flume-Syslog v1.6.0

Syslog events generated on the Client unit are forwarded to the apache-flume-syslog charm. These events are serialized and sent to the apache-flume-hdfs charm to be stored in HDFS. A sample web notebook is included to analyze these events using the Zeppelin spark interpreter.

Deploying this bundle results in a fully configured Apache Bigtop cluster on any supported cloud, which can be scaled to meet workload demands.

Deploying

This bundle requires Juju 2.0 or greater. If Juju is not yet set up, please follow the getting-started instructions prior to deploying this bundle.

Note: This bundle requires hardware resources that may exceed limits of Free-tier or Trial accounts on some clouds. To deploy to these environments, modify a local copy of bundle.yaml to set services: 'X': num_units: 1 and machines: 'X': constraints: mem=3G as needed to satisfy account limits.

Deploy this bundle from the Juju charm store with the juju deploy command:

juju deploy realtime-syslog-analytics

Alternatively, deploy a locally modified bundle.yaml with:

juju deploy /path/to/bundle.yaml

The charms in this bundle can also be built from their source layers in the Bigtop charm repository. See the Bigtop charm README for instructions on building and deploying these charms locally.

Network-Restricted Environments

Charms can be deployed in environments with limited network access. To deploy in this environment, configure a Juju model with appropriate proxy and/or mirror options. See Working offline for more information.

Verifying

Status

The applications that make up this bundle provide status messages to indicate when they are ready:

juju status

This is particularly useful when combined with watch to track the on-going progress of the deployment:

watch -n 2 juju status

The message for each unit will provide information about that unit's state. Once they all indicate that they are ready, perform application smoke tests to verify that the bundle is working as expected.

Smoke Test

The charms for each core component (namenode, resourcemanager, slave, and zeppelin) provide a smoke-test action that can be used to verify the application is functioning as expected. Note that the 'slave' component runs extensive tests provided by Apache Bigtop and may take up to 30 minutes to complete. Run the smoke-test actions as follows:

juju run-action namenode/0 smoke-test
juju run-action resourcemanager/0 smoke-test
juju run-action slave/0 smoke-test
juju run-action zeppelin/0 smoke-test

Watch the progress of the smoke test actions with:

watch -n 2 juju show-action-status

Eventually, all of the actions should settle to status: completed. If any report status: failed, that application is not working as expected. Get more information about a specific smoke test with:

juju show-action-output <action-id>

Utilities

Applications in this bundle include command line and web utilities that can be used to verify information about the cluster.

From the command line, show the HDFS dfsadmin report and view the current list of YARN NodeManager units with the following:

juju run --application namenode "su hdfs -c 'hdfs dfsadmin -report'"
juju run --application resourcemanager "su yarn -c 'yarn node -list'"

To access the HDFS web console, find the Public address of the namenode application and expose it:

juju status namenode
juju expose namenode

The web interface will be available at the following URL:

http://NAMENODE_PUBLIC_IP:50070

To access the Resource Manager web consoles, find the Public address of the resourcemanager application and expose it:

juju status resourcemanager
juju expose resourcemanager

The YARN and Job History web interfaces will be available at the following URLs:

http://RESOURCEMANAGER_PUBLIC_IP:8088
http://RESOURCEMANAGER_PUBLIC_IP:19888

To access the Zeppelin web console, find the Public address of the zeppelin application and expose it:

juju status zeppelin
juju expose zeppelin

The Zeppelin web interface will be available at the following URL:

http://ZEPPELIN_PUBLIC_IP:9080

Scaling

By default, three Hadoop slave units are deployed with this bundle. Scaling this application is as simple as adding more units. To add one unit:

juju add-unit slave

Multiple units may be added at once. For example, add four more slave units:

juju add-unit -n4 slave

Issues

File an issue for this bundle at:

https://github.com/juju-solutions/bundle-realtime-syslog-analytics/issues

Contact Information

Resources

bundle-realtime-syslog-analytics's People

Contributors

arosales avatar johnsca avatar kwmonroe avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bundle-realtime-syslog-analytics's Issues

Connection exception

Hi everyone,
I installed the juju charm "Realtime Syslog Analytics #22" and now i'm trying to run the tutorial "HDFS Zeppeling tutorial" in Zeppelin but when i run the examples appears the next error:

INFO [2017-10-18 15:16:32,999] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Application report for application_1508338458917_0001 (state: ACCEPTED)
INFO [2017-10-18 15:16:34,001] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Application report for application_1508338458917_0001 (state: ACCEPTED)
INFO [2017-10-18 15:16:35,004] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Application report for application_1508338458917_0001 (state: ACCEPTED)
INFO [2017-10-18 15:16:36,010] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Application report for application_1508338458917_0001 (state: ACCEPTED)
INFO [2017-10-18 15:16:37,015] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Application report for application_1508338458917_0001 (state: ACCEPTED)
INFO [2017-10-18 15:16:38,055] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Application report for application_1508338458917_0001 (state: ACCEPTED)
INFO [2017-10-18 15:16:39,061] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Application report for application_1508338458917_0001 (state: FAILED)
INFO [2017-10-18 15:16:39,063] ({pool-2-thread-2} Logging.scala[logInfo]:54) -
client token: N/A
diagnostics: Application application_1508338458917_0001 failed 2 times due to Error launching appattempt_1508338458917_0001_000002. Got exception: java.net.ConnectException: Call From juju-478783-default-20/127.0.0.1 to localhost:44185 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.GeneratedConstructorAccessor39.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:792)
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:732)
at org.apache.hadoop.ipc.Client.call(Client.java:1479)
at org.apache.hadoop.ipc.Client.call(Client.java:1412)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229)
at com.sun.proxy.$Proxy82.startContainers(Unknown Source)
at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:96)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:191)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
at com.sun.proxy.$Proxy83.startContainers(Unknown Source)
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119)
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:250)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:614)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:712)
at org.apache.hadoop.ipc.Client$Connection.access$2900(Client.java:375)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1528)
at org.apache.hadoop.ipc.Client.call(Client.java:1451)
... 15 more
. Failing the application.
ApplicationMaster host: N/A
ApplicationMaster RPC port: -1
queue: default
start time: 1508339437208
final status: FAILED
tracking URL: http://localhost:8088/cluster/app/application_1508338458917_0001
user: zeppelin
INFO [2017-10-18 15:16:39,101] ({pool-2-thread-2} Logging.scala[logInfo]:54) - Deleted staging directory hdfs://juju-478783-default-20.openstacklocal:8020/user/zeppelin/.sparkStaging/application_1508338458917_0001
ERROR [2017-10-18 15:16:39,102] ({pool-2-thread-2} Logging.scala[logError]:91) - Error initializing SparkContext.
org.apache.spark.SparkException: Yarn application has already ended! It might have been killed or unable to launch application master.
at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForApplication(YarnClientSchedulerBackend.scala:85)
at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:62)
at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:156)
at org.apache.spark.SparkContext.(SparkContext.scala:509)
at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2313)
at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868)
at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38)
at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:33)
at org.apache.zeppelin.spark.SparkInterpreter.createSparkSession(SparkInterpreter.java:350)
at org.apache.zeppelin.spark.SparkInterpreter.getSparkSession(SparkInterpreter.java:222)
at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:815)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:69)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:482)
at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Can anybody help me?
and what is running on port 44185?
That port is open in a slave.

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.