4 Sqoop的使用
由于Inceptor-SQL中metastore中已经安装了mysql,就不需要安装mysql了
将mysql-connector-java-5.1.38tar.gz驱动包先解压
在Inceptor Server节点上输入mysql -u [用户名] -p连接数据库,此时提示输入密码,通过后输入mysql命令,再执行Grant操作:
——add user to mysql(username=tdh,password=123456),授权可以访问所有数据库
GRANT ALL PRIVILEGES ON db1.* TO 'tdh'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;)
- 浏览mysql数据库
- 浏览SQL SERVER数据库
sqoop list-databases --connect "jdbc:sqlserver://192.168.1.139:1433;username=sa;password=123456"
- 浏览mysql数据库中的表,db1为mysql中的一个数据库,可以使用describe [table名]命令查看mysql中表的信息
sqoop list-tables \
--username tdh \
--password 123456 \
- 浏览SQL SERVER中的表并且导入到HDFS中
- 从mysql————>HDFS上(import,将mysql中的db1数据库里面的表导入到/user/datadir,这里的datadir目录一定不要事先创建,不然会报错,语句执行的时候会自动创建目录的!最后一行的-m表示map成4个文件)
sqoop import \
--username tdh \
--password 123456 \
--table country \
--target-dir /user/user1/data/sqoop -m 4
- 从HDFS————>mysql表上(export)
--username tdh \
--password 123456 \
--connect jdbc:mysql://<mysql IP>:3306/db1 \
--table cc \
--export-dir /user/testdir \
--staging-table tmptable
- 查看sqoop导入进来的文件
注意事项
原因很简单,Inceptor-sql的常驻进程ApplicationMaster跑的是spark任务,非常消耗内存使用量,约为7-8G,所以在没有用到Inceptor-SQL的操作场景的时候就应该关闭该服务。