Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]
Created on 09-11-2016 09:38 PM
Using SQOOP with MySQL as metastore
To set up MySQL for use with SQOOP:
On the SQOOP Server host, install the connector.
Install the connector
RHEL/CentOS/Oracle Linux
yum install mysql-connector-java
SLES
zypper install mysql-connector-java
Confirm that .jar is in the Java share directory.
ls /usr/share/java/mysql-connector-java.jar
Make sure the .jar file has the appropriate permissions - 644.
Create a user for SQOOP and grant it permissions.
For example, using the MySQL database admin utility:
# mysql -u root -p CREATE USER '<SQOOPUSER>'@'%' IDENTIFIED BY '<SQOOPPASSWORD>'; GRANT ALL PRIVILEGES ON *.* TO '<SQOOPUSER>'@'%'; CREATE USER '<SQOOPUSER>'@'localhost' IDENTIFIED BY '<SQOOPPASSWORD>'; GRANT ALL PRIVILEGES ON *.* TO '<SQOOPUSER>'@'localhost'; CREATE USER '<SQOOPUSER>'@'<SQOOPSERVERFQDN>' IDENTIFIED BY '<SQOOPPASSWORD>'; GRANT ALL PRIVILEGES ON *.* TO '<SQOOPUSER>'@'<SQOOPSERVERFQDN>'; FLUSH PRIVILEGES;
Where <SQOOPUSER> is the SQOOP user name, <SQOOPPASSWORD> is the SQOOP user password and <SQOOPSERVERFQDN> is the Fully Qualified Domain Name of the SQOOP Server host.
Configure the sqoop-site.xml to create the sqoop database and load the SQOOP Server database schema.
<configuration> <property> <name>sqoop.metastore.client.enable.autoconnect</name> <value>true</value> </property> <property> <name>sqoop.metastore.client.autoconnect.url</name> <value>jdbc:mysql://<<MYSQLHOSTNAME>>/sqoop?createDatabaseIfNotExist=true</value> </property> <property> <name>sqoop.metastore.client.autoconnect.username</name> <value>$$SQOOPUSER$$</value> </property> <property> <name>sqoop.metastore.client.autoconnect.password</name> <value>$$$SQOOPPASSWORD$$$</value> </property> <property> <name>sqoop.metastore.client.record.password</name> <value>true</value> </property> <property> <name>sqoop.metastore.server.location</name> <value>/usr/lib/sqoop/metastore/</value> </property> <property> <name>sqoop.metastore.server.port</name> <value>16000</value> </property> </configuration>
execute the following command to create the initial database and tables.
sqoop job --list
If you get any error or exception then you must pre-load the SQOOP tables with the mandatory values.
mysql -u <SQOOPUSER> -p USE <SQOOPDATABASE>;
-- Inserted the following row INSERT INTO SQOOP_ROOT VALUES( NULL, 'sqoop.hsqldb.job.storage.version', '0' );
Where <SQOOPUSER> is the SQOOP user name and <SQOOPDATABASE> is the SQOOP database name.
execute the following command one more time, to create the all required SQOOP internal meta tables.
sqoop job --list
Once all the necessary sqoop tables are created, then sqoop job will use the meta store for the SQOOP job execution.
Created on 09-27-2016 02:59 PM
Hi njayakumar, we have sqoop working with the mysql metastore but oozie gives errors that it can't find the driver to connect to the sqoop metastore.
Caused by: java.sql.SQLException: No suitable driver found for 'jdbc:mysql://<server>.com/sqoop'
The mysql-connector-java.jar is available in the java folder mentioned by you, also available in:
/usr/hdp/current/oozie folders libserver, libtools and lib (as symbolic link)
and for sqoop in
/usr/hdp/current/scoop/lib folder
any thoughts what we are missing here? I already got the same error trying to use the sqoop metastore 'service'. Oozie wasn't able to find that driver either...
Created on 12-07-2016 04:37 AM
@Rene Sluiter - ls /usr/share/java/mysql-connector-java.jar can you check the jar in share folder ?