Error Updating MapD Core


#1

Hey all. Trying to update form MapD Server Version: 3.2.3 to 3.3 (whatever the latest version may be) using the yum instructions found here: https://www.mapd.com/docs/latest/getting-started/upgrading/
but I’m getting the following errors:

$ sudo yum install mapd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.cs.pitt.edu
 * epel: mirror.es.its.nyu.edu
 * extras: mirror.vtti.vt.edu
 * updates: mirror.es.its.nyu.edu
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax


Exiting on user cancel

Select on similar values
#2

Hi,

This looks like there is some issue with your machines yum metadata, unrelated to MapD.

Was your original MapD install via yum?

Please try

yum clean metadata
yum upgrade

regards


#3

Hi,

Thanks again. Still getting the same error though.
And no MapD was not installed via yum originally.
Using an image meant for AWS


#4

upgrade via tarball, it’s easier.

connect to the machine with the user running mapd then stop you mapd services

sudo systemctl stop mapd_server
sudo systemctl stop mapd_web_server

just locate the radix of directory where mapd is installed, then unpack the tarball with tar zxvf tarball.tar.gv command.

then you have just to enter directory where 3.3.x is installed (in case you are upgrading to 3.3.1 it’s named mapd-ce-3.3.1-20171108-32e7bcc-Linux-x86_64-render), the enter systemd directory and launch sudo ./install_mapd_systemd.sh

you will be asked of directory where mapd is installed (the proposed value would be the right one), then the storage directory (you can get it from mapd.conf file you have in your system; locate it with find / -name mapd.conf command), then the user add group mapd is run (typically mapd, mapd)

now you can start the mapd services

sudo systemctl start mapd_server
sudo systemctl start mapd_web_server

hopes this help


#5

Thanks for the thorough explanation @aznable ! What if the tar file is no longer there, where would I be able to get it? I checked the website and it seems like there is a ton of steps and I’m not sure which one actually gets me the most recent tar file.

Thanks,


#6

This link would be fine to get latest version (3.3.1)

You have to select cpu+gpu, Linux/centos, x86-64, tarball; accept the Eula and you will be able to get the tarball.

I am assuming you are using an instance with gpu and centos/redhat.


#7

So the web server isn’t loading and I can’t get into the database server from the command line either (calling mapdql from the bin directory).
Web server gives a “refuse to connect” error and the command line similar:

Thrift: Mon Dec  4 22:55:30 2017 TSocket::open() connect() <Host: localhost Port: 8000>Connection refused
Thrift: Mon Dec  4 22:55:30 2017 TSocket::open() connect() <Host: localhost Port: 8000>Connection refused
terminate called after throwing an instance of 'apache::thrift::transport::TTransportException'
  what():  connect() failed: Connection refused

Something to note while following your instructions is that, when entering the user and group for mapd I get this output:

MAPD_PATH: MapD install directory
[/raidStorage/installs/mapd-ce-3.3.1-20171108-32e7bcc-Linux-x86_64-render]: 

MAPD_STORAGE: MapD data and configuration storage directory
[/var/lib/mapd]: /raidStorage/prod/mapd-storage/data

MAPD_USER: user MapD will be run as
[root]: mapd

MAPD_GROUP: group MapD will be run as
[root]: mapd

MAPD_PATH:	/raidStorage/installs/mapd-ce-3.3.1-20171108-32e7bcc-Linux-x86_64-render
MAPD_STORAGE:	/raidStorage/prod/mapd-storage/data
MAPD_USER:	mapd
MAPD_GROUP:	mapd
chown: invalid user: ‘mapd:mapd’
chown: invalid user: ‘mapd:mapd’
chown: invalid user: ‘mapd:mapd’

thanks,


#8

Did you create a user and group called mapd? They don’t appear to exist. If you did not, enter the actual user and group that you intend to run MapD with.


#9

I’m sorry, I misinterpreted zanable’s response. I thought in the step where they said you add user/group that this command would create them.
So I guess my answer would be no, i did not create the user mapd and group mapd
I see how to create a user from here https://www.mapd.com/platform/download-community/#gpucpu_centos_x8664_tarball but how do I go about looking at the ones I already created?

thanks,


#10

as i said the username and the owner of mapd software is typically mapd, but i havent access to aws instances (maybe the user is centos…it should be the user you used to login on aws instance), so you have to use the username and group who owns the mapd.conf you would find with this command

sudo find / -name mapd.conf -exec ls -la {} +

you should get and output like that

-rw-r–r-- 1 USERNAME GROUP 251 dic 2 07:55 /opt/mapd/mapd.conf

to get the path where your old mapd database open the mapd.conf file and take a look to data parameter or launch this command

sudo find / -name mapd.conf -exec grep data {} +

you should get an output like that

/opt/mapd_storage/mapd.conf:data = “/opt/mapd_storage/data”


#11

Ohh yes that makes sense. Thank you very much!
That did fix the issue but now I have another separate issue that I’ll handle.
I actually discovered that the underlying problem (potentially) from the beginning might be that I’m using the AWS AMI so I might need to follow those instructions: https://www.mapd.com/docs/latest/getting-started/get-started-aws-ami/ as opposed to https://www.mapd.com/docs/latest/getting-started/upgrading/


#12

well, now you have and idea how to manage an on-premise installation and i know to which community user will help me in case i will go for AWS route (unlikely…i am so ooold school)