Giter Club home page Giter Club logo

ambari-presto-service's People

Contributors

cavemandaveman avatar icanfly avatar mattsfuller avatar petroav avatar teamsoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ambari-presto-service's Issues

Installation fails: launcher: error: --launcher-config option requires an argument

Hi there,
I can't get presto to run. During the installation procedure I always receive following failure message. I run it on Centos 7. Java 1.8.0_45 jdk is installed and everything configured as described in the docu.

Traceback (most recent call last):
File "/var/lib/ambari-agent/cache/stacks/HDP/2.3/services/PRESTO/package/scripts/presto_worker.py", line 73, in
Worker().execute()
File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 218, in execute
method(env)
File "/var/lib/ambari-agent/cache/stacks/HDP/2.3/services/PRESTO/package/scripts/presto_worker.py", line 37, in start
Execute('{0} start'.format(daemon_control_script))
File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 157, in init
self.env.run()
File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 152, in run
self.run_action(resource, action)
File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 118, in run_action
provider_action()
File "/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py", line 258, in action_run
tries=self.resource.tries, try_sleep=self.resource.try_sleep)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 70, in inner
result = function(command, *_kwargs)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 92, in checked_call
tries=tries, try_sleep=try_sleep)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 140, in _call_wrapper
result = _call(command, *_kwargs_copy)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 291, in _call
raise Fail(err_msg)
resource_management.core.exceptions.Fail: Execution of '/etc/init.d/presto start' returned 2. Starting presto
Warning: No value found for JAVA8_HOME. Default Java will be used.
Usage: launcher [options] command

launcher: error: --launcher-config option requires an argument

Configuration changes to hive connector - restart

After making configuration changes to hive.properties file locally and restarting from ambari replaces the hive.properties with a new one. Hence I restarted using ./launcher restart on each node.

Is there a way to make changes and restart from ambari ?

Add support for configuration groups

This will allow users to have different sets of configurations for different hosts. This is useful if some machines have significantly fewer resources than others.

Debian support for Presto Plugin

Installed Presto plugin for Ambari 2.4.2 on Debian 7.
Running ambari as a non-root ambari user.
Ambari user has all required sudo privs per Hortonworks Install Documentation for Ambari 2.4.2

Setting up the Presto service failed on these two steps:

  1. mkdir /usr/lib/presto and required subdirs
    Worked around the above issue by manually creating the directories and setting ownership to the user ambari.

Most likely this is a support issue for Ambari running as non root. The install would've worked at this stage if the script issued a sudo in front of the mkdir commands (most likely).

  1. Service install via Ambari failed installing Presto software
    Trying to install an rpm package 'presto-server-rpm-0.161.rpm' from /tmp. This is a Debian platform, so naturally this failed. Any support for Debian coming up?

I'll try installing the Presto software manually on our datanodes and see if that works.

Thanks

Allan Wilson

Centos7:resource_management.core.exceptions.ExecutionFailed: Execution of '/etc/init.d/presto start'

stderr:
Traceback (most recent call last):
File "/var/lib/ambari-agent/cache/stacks/HDP/2.5/services/PRESTO/package/scripts/presto_coordinator.py", line 86, in
Coordinator().execute()
File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 280, in execute
method(env)
File "/var/lib/ambari-agent/cache/stacks/HDP/2.5/services/PRESTO/package/scripts/presto_coordinator.py", line 39, in start
Execute('{0} start'.format(daemon_control_script))
File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 155, in init
self.env.run()
File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 160, in run
self.run_action(resource, action)
File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 124, in run_action
provider_action()
File "/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py", line 273, in action_run
tries=self.resource.tries, try_sleep=self.resource.try_sleep)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 70, in inner
result = function(command, **kwargs)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 92, in checked_call
tries=tries, try_sleep=try_sleep)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 140, in _call_wrapper
result = _call(command, **kwargs_copy)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 293, in _call
raise ExecutionFailed(err_msg, code, out, err)
resource_management.core.exceptions.ExecutionFailed: Execution of '/etc/init.d/presto start' returned 1. Starting presto
sudo: sorry, you must have a tty to run sudo
stdout:
2017-01-18 12:36:09,987 - The hadoop conf dir /usr/hdp/current/hadoop-client/conf exists, will call conf-select on it for version 2.5.3.0-37
2017-01-18 12:36:09,990 - Checking if need to create versioned conf dir /etc/hadoop/2.5.3.0-37/0
2017-01-18 12:36:09,993 - call[('ambari-python-wrap', u'/usr/bin/conf-select', 'create-conf-dir', '--package', 'hadoop', '--stack-version', '2.5.3.0-37', '--conf-version', '0')] {'logoutput': False, 'sudo': True, 'quiet': False, 'stderr': -1}
2017-01-18 12:36:10,056 - call returned (1, '/etc/hadoop/2.5.3.0-37/0 exist already', '')
2017-01-18 12:36:10,057 - checked_call[('ambari-python-wrap', u'/usr/bin/conf-select', 'set-conf-dir', '--package', 'hadoop', '--stack-version', '2.5.3.0-37', '--conf-version', '0')] {'logoutput': False, 'sudo': True, 'quiet': False}
2017-01-18 12:36:10,125 - checked_call returned (0, '')
2017-01-18 12:36:10,127 - Ensuring that hadoop has the correct symlink structure
2017-01-18 12:36:10,127 - Using hadoop conf dir: /usr/hdp/current/hadoop-client/conf
2017-01-18 12:36:10,375 - The hadoop conf dir /usr/hdp/current/hadoop-client/conf exists, will call conf-select on it for version 2.5.3.0-37
2017-01-18 12:36:10,378 - Checking if need to create versioned conf dir /etc/hadoop/2.5.3.0-37/0
2017-01-18 12:36:10,381 - call[('ambari-python-wrap', u'/usr/bin/conf-select', 'create-conf-dir', '--package', 'hadoop', '--stack-version', '2.5.3.0-37', '--conf-version', '0')] {'logoutput': False, 'sudo': True, 'quiet': False, 'stderr': -1}
2017-01-18 12:36:10,443 - call returned (1, '/etc/hadoop/2.5.3.0-37/0 exist already', '')
2017-01-18 12:36:10,444 - checked_call[('ambari-python-wrap', u'/usr/bin/conf-select', 'set-conf-dir', '--package', 'hadoop', '--stack-version', '2.5.3.0-37', '--conf-version', '0')] {'logoutput': False, 'sudo': True, 'quiet': False}
2017-01-18 12:36:10,508 - checked_call returned (0, '')
2017-01-18 12:36:10,509 - Ensuring that hadoop has the correct symlink structure
2017-01-18 12:36:10,510 - Using hadoop conf dir: /usr/hdp/current/hadoop-client/conf
2017-01-18 12:36:10,513 - Group['livy'] {}
2017-01-18 12:36:10,515 - Group['spark'] {}
2017-01-18 12:36:10,516 - Group['ranger'] {}
2017-01-18 12:36:10,516 - Group['hadoop'] {}
2017-01-18 12:36:10,517 - Group['users'] {}
2017-01-18 12:36:10,518 - User['hive'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,519 - User['zookeeper'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,520 - User['infra-solr'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,522 - User['ams'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,523 - User['ranger'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'ranger']}
2017-01-18 12:36:10,524 - User['tez'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'users']}
2017-01-18 12:36:10,525 - User['livy'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,527 - User['spark'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,528 - User['ambari-qa'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'users']}
2017-01-18 12:36:10,529 - User['kafka'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,530 - User['hdfs'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,531 - User['yarn'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,533 - User['mapred'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,534 - User['hbase'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,535 - User['hcat'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': [u'hadoop']}
2017-01-18 12:36:10,536 - File['/var/lib/ambari-agent/tmp/changeUid.sh'] {'content': StaticFile('changeToSecureUid.sh'), 'mode': 0555}
2017-01-18 12:36:10,539 - Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa'] {'not_if': '(test $(id -u ambari-qa) -gt 1000) || (false)'}
2017-01-18 12:36:10,570 - Skipping Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa'] due to not_if
2017-01-18 12:36:10,571 - Directory['/tmp/hbase-hbase'] {'owner': 'hbase', 'create_parents': True, 'mode': 0775, 'cd_access': 'a'}
2017-01-18 12:36:10,572 - File['/var/lib/ambari-agent/tmp/changeUid.sh'] {'content': StaticFile('changeToSecureUid.sh'), 'mode': 0555}
2017-01-18 12:36:10,574 - Execute['/var/lib/ambari-agent/tmp/changeUid.sh hbase /home/hbase,/tmp/hbase,/usr/bin/hbase,/var/log/hbase,/tmp/hbase-hbase'] {'not_if': '(test $(id -u hbase) -gt 1000) || (false)'}
2017-01-18 12:36:10,603 - Skipping Execute['/var/lib/ambari-agent/tmp/changeUid.sh hbase /home/hbase,/tmp/hbase,/usr/bin/hbase,/var/log/hbase,/tmp/hbase-hbase'] due to not_if
2017-01-18 12:36:10,604 - Group['hdfs'] {}
2017-01-18 12:36:10,604 - User['hdfs'] {'fetch_nonlocal_groups': True, 'groups': [u'hadoop', u'hdfs']}
2017-01-18 12:36:10,605 - FS Type:
2017-01-18 12:36:10,606 - Directory['/etc/hadoop'] {'mode': 0755}
2017-01-18 12:36:10,633 - File['/usr/hdp/current/hadoop-client/conf/hadoop-env.sh'] {'content': InlineTemplate(...), 'owner': 'hdfs', 'group': 'hadoop'}
2017-01-18 12:36:10,634 - Directory['/var/lib/ambari-agent/tmp/hadoop_java_io_tmpdir'] {'owner': 'hdfs', 'group': 'hadoop', 'mode': 01777}
2017-01-18 12:36:10,655 - Execute[('setenforce', '0')] {'not_if': '(! which getenforce ) || (which getenforce && getenforce | grep -q Disabled)', 'sudo': True, 'only_if': 'test -f /selinux/enforce'}
2017-01-18 12:36:10,689 - Skipping Execute[('setenforce', '0')] due to not_if
2017-01-18 12:36:10,689 - Directory['/var/log/hadoop'] {'owner': 'root', 'create_parents': True, 'group': 'hadoop', 'mode': 0775, 'cd_access': 'a'}
2017-01-18 12:36:10,694 - Directory['/var/run/hadoop'] {'owner': 'root', 'create_parents': True, 'group': 'root', 'cd_access': 'a'}
2017-01-18 12:36:10,695 - Directory['/tmp/hadoop-hdfs'] {'owner': 'hdfs', 'create_parents': True, 'cd_access': 'a'}
2017-01-18 12:36:10,704 - File['/usr/hdp/current/hadoop-client/conf/commons-logging.properties'] {'content': Template('commons-logging.properties.j2'), 'owner': 'hdfs'}
2017-01-18 12:36:10,708 - File['/usr/hdp/current/hadoop-client/conf/health_check'] {'content': Template('health_check.j2'), 'owner': 'hdfs'}
2017-01-18 12:36:10,710 - File['/usr/hdp/current/hadoop-client/conf/log4j.properties'] {'content': ..., 'owner': 'hdfs', 'group': 'hadoop', 'mode': 0644}
2017-01-18 12:36:10,734 - File['/usr/hdp/current/hadoop-client/conf/hadoop-metrics2.properties'] {'content': Template('hadoop-metrics2.properties.j2'), 'owner': 'hdfs', 'group': 'hadoop'}
2017-01-18 12:36:10,735 - File['/usr/hdp/current/hadoop-client/conf/task-log4j.properties'] {'content': StaticFile('task-log4j.properties'), 'mode': 0755}
2017-01-18 12:36:10,736 - File['/usr/hdp/current/hadoop-client/conf/configuration.xsl'] {'owner': 'hdfs', 'group': 'hadoop'}
2017-01-18 12:36:10,744 - File['/etc/hadoop/conf/topology_mappings.data'] {'owner': 'hdfs', 'content': Template('topology_mappings.data.j2'), 'only_if': 'test -d /etc/hadoop/conf', 'group': 'hadoop'}
2017-01-18 12:36:10,773 - File['/etc/hadoop/conf/topology_script.py'] {'content': StaticFile('topology_script.py'), 'only_if': 'test -d /etc/hadoop/conf', 'mode': 0755}
2017-01-18 12:36:11,112 - Execute['mkdir -p /etc/presto/catalog'] {}
INFO:resource_management.libraries.script.script:Execute['mkdir -p /etc/presto/catalog'] {}
2017-01-18 12:36:11,143 - Execute['mkdir -p /etc/presto/catalog'] {}
INFO:resource_management.libraries.script.script:Execute['mkdir -p /etc/presto/catalog'] {}
2017-01-18 12:36:11,170 - Execute['/etc/init.d/presto start'] {}
INFO:resource_management.libraries.script.script:Execute['/etc/init.d/presto start'] {}

Command failed after 1 tries

Presto installation with ambari in HDP 2.6.3

Hi,
i am trying to install prestodb in hdp2.6.3.
i am getting error for presto worker install
error:
resource_management.core.exceptions.ExecutionFailed: Execution of 'export JAVA8_HOME=/usr/jdk64/jdk1.8.0_112 && rpm -i /tmp/presto-server-rpm-0.161.rpm' returned 1. package presto-server-rpm-0:0.161-1.x86_64 is already installed

steps followed for installing presto service:-
Steps:-
download ambari-presto-1.2.tar.gz
create directory PRESTO

mkdir /var/lib/ambari-server/resources/stacks/HDP/2.6/services/PRESTO

cd /var/lib/ambari-server/resources/stacks/HDP/2.6/services/PRESTO/

untar ambari-presto in recently created directory

tar -xvf ambari-presto-1.2.tar.gz -C /var/lib/ambari-server/resources/stacks/HDP/2.6/services/PRESTO/

move ambari-presto files in PRESTO/

mv /var/lib/ambari-server/resources/stacks/HDP/2.6/services/PRESTO/ambari-presto-1.2/* /var/lib/ambari-server/resources/stacks/HDP/2.6/services/PRESTO

remove ambari-presto

rm -rf /var/lib/ambari-server/resources/stacks/HDP/2.6/services/PRESTO/ambari-presto-1.2

chmod -R +x /var/lib/ambari-server/resources/stacks/HDP/2.6/services/PRESTO/*

change below files in configs

ambari-server setup

select option to configure jdk and install jdk 1.8 update

ambari-server restart

login to ambari UI
Click on add service
select Presto click next
followed configurations as per https://prestodb.io/ambari-presto-service/getting-started.html
added :- - jvm.config add :- "-DHADOOP_USER_NAME=hive"

Error log for Presto worker install:-

Traceback (most recent call last):
File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/PRESTO/package/scripts/presto_worker.py", line 74, in
Worker().execute()
File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 367, in execute
method(env)
File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/PRESTO/package/scripts/presto_worker.py", line 28, in install
Execute('export JAVA8_HOME={0} && rpm -i /tmp/{1}'.format(java_home, PRESTO_RPM_NAME))
File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 166, in init
self.env.run()
File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 160, in run
self.run_action(resource, action)
File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 124, in run_action
provider_action()
File "/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py", line 262, in action_run
tries=self.resource.tries, try_sleep=self.resource.try_sleep)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 72, in inner
result = function(command, **kwargs)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 102, in checked_call
tries=tries, try_sleep=try_sleep, timeout_kill_strategy=timeout_kill_strategy)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 150, in _call_wrapper
result = _call(command, **kwargs_copy)
File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 303, in _call
raise ExecutionFailed(err_msg, code, out, err)
resource_management.core.exceptions.ExecutionFailed: Execution of 'export JAVA8_HOME=/usr/jdk64/jdk1.8.0_112 && rpm -i /tmp/presto-server-rpm-0.161.rpm' returned 1. package presto-server-rpm-0:0.161-1.x86_64 is already installed

Thanks,
Sharda

Add native upgrade capability to this Ambari - Presto integration

At the moment you cannot upgrade Presto to a newer version using the Ambari UI. The upgrade has to be done manually by uninstalling Presto and then re-installing it. This issue tracks the work needed to get native upgrade functionality working. If you think this feature is going to be useful to you and your organization, let us know.

hosts number check failed on ambari 2.5

We are trying to get presto managed with ambari 2.5 recently. We find presto_coordinator starting failed with traceback below:

Traceback (most recent call last):
File "/var/lib/ambari-agent/cache/stacks/HDP/2.5/services/PRESTO/package/scripts/presto_coordinator.py", line 91, in
Coordinator().execute()
File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 375, in execute
method(env)
File "/var/lib/ambari-agent/cache/stacks/HDP/2.5/services/PRESTO/package/scripts/presto_coordinator.py", line 47, in start
smoketest_presto(PrestoClient('localhost', 'root', config_properties['http-server.http.port']), all_hosts)
File "/var/lib/ambari-agent/cache/stacks/HDP/2.5/services/PRESTO/package/scripts/presto_client.py", line 41, in smoketest_presto
ensure_nodes_are_up(client, all_hosts)
File "/var/lib/ambari-agent/cache/stacks/HDP/2.5/services/PRESTO/package/scripts/presto_client.py", line 105, in ensure_nodes_are_up
nodes_returned_from_presto, all_hosts))
RuntimeError: Number of hosts returned from Presto [u'8fcebf71-1a27-4970-bedb-afe378792c0b'] do not equal the number of hosts specified by user ['hwslave002', 'hwslave002']

After digging into the presto_coordinator.py, the same host exists in both host_info['presto_worker_hosts'] and host_info['presto_coordinator_hosts'], leads to the error print.

It may be caused by switching on node-scheduler.include-coordinator in ambari, but I stopped here.

Adding Presto service to Amabri 2.4.1.0

While adding Presto using ambari sevice ( ambari-presto-1.1.tar.gz )... The wizard stops at 'Customize Services' step. Amabri shows some service validation warnings related to ambari-metrics and atlas and then clicking on 'Proceed Anyway' doesn't proceed. Also nothing comes up in ambari-server logs.

add Ubuntu support

Hello,
thank you for your great work!
Is it possilbe to add Ubuntu support?

Restart presto failed in Ambari 2.5

hi, I'm using Ambari 2.5 and ambari-presto-service 1.1

but I found that the 'Restart' function can not applied normally.

image

I think this maybe caused by mismatch between status-check function of ambari and the return of presto status function.

I have fixed it in my local mechines. And I found some other errors (also be fixed) during fixing this problem.

I think this should be reported.
Since it was updated about 7 months ago, Is no one maintain this any more ?

Should i submit a pull request?

the scrips of start presto bug

the code in presto_coordinator.py line 78 & the code in presto_worker.py line 71
value += 'GB'
because of your configration is arleady contains 'GB',if you do this ,you config will change to 1GBGB,and you will can`t start presto

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.