sqoop环境配置AND常用基本操作01

本文详细介绍了如何使用 Sqoop 进行数据迁移,包括从 MySQL 和 Oracle 导入数据到 HDFS 或 Hive,以及从 Hive 导出数据到 Oracle 的全过程。提供了具体的命令示例,如设置环境变量、连接数据库、导入特定列等。
sqoop安装
官网下载sqoop-1.4.6.bin__hadoop-0.23.tar.gz

tar -xzvf sqoop-1.4.6.bin__hadoop-0.23.tar.gz


设置环境变量
export HADOOP_COMMON_HOME=/home/spark/opt/hadoop-2.7(用来指明hadoop安装在哪个目录下)
export HADOOP_MAPRED_HOME=/home/spark/opt/hadoop-2.7(作业转换成MAPREDUCE进行执行,所以要指定hadoop的mapreduce目录)

数据库驱动程序上传到sqoop的lib目录下


测试连接(mysql)
显示mysql数据库列表

./sqoop list-databases --connect jdbc:mysql://132.97.153.51:13306/ --username root --password 111111


显示数据库里所有表

./sqoop list-tables --connect jdbc:mysql://132.97.153.51:13306/spark --username root -P 111111


sqoop数据的导入导出
使用sqoop导入oracle数据到HDFS中

./sqoop import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl(连接地址ip地址默认端口数据库名称) --username root(用户名) --password 111111(密码) --table emp(导入哪张表) --columns 'empno,ename,job,sql,sal,deptno'(导入哪些列) -m 1(mapreduce进程数) --target-dir '/sqoop/emp'(导入到hdfs的那个目录上)
使用sqoop导入mysql数据到HDFS中

./sqoop import --connect jdbc:mysql://132.97.153.51:13306/spark(连接地址ip地址默认端口数据库名称) --username root(用户名) --password 111111(密码) --table cache(导入哪张表) --columns 'id,start_facid,end_facid,route_text'(导入哪些列) -m 1(mapreduce进程数) --target-dir '/sqoop/cache'(导入到hdfs的那个目录上)

./sqoop import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password 111111 --table cache --columns 'id,start_facid,end_facid,route_text' -m 1 --target-dir '/sqoop/cache'


注:一定要写ip不要写localhost 不然报错
Error: java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

使用sqoop导入orcale数据到hive中

./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl(连接地址ip地址默认端口数据库名称) --username scottt(用户名) --password tiger(密码) --table emp(导入哪张表) -m 1(mapreduce进程数) --columns 'empno,ename,job,sql,sal,deptno'(导入哪些列)


使用sqoop导入mysql数据到hive中
./sqoop import --hive-import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password 111111 --table cache --columns 'id,start_facid,end_facid,route_text' -m 1

使用sqoop导入oracle数据到hive中,并且指定表名

./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1](指定了表名)


使用sqoop导入mysql数据到hive中,并且指定表名 (--hive-table [tablename] 有就插入,没有就新建表)
./sqoop import --hive-import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1]

使用sqoop导入oracle数据到hive中,并使用where条件(--where 'xx=xx' 只导入符合where条件的数据到tablename1中)

./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1] --where 'id=10'


使用sqoop导入mysql数据到hive中,并使用where条件(--where 'xx=xx' 只导入符合where条件的数据到tablename1中)
./sqoop import --hive-import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1] --where 'id=10'

使用sqoop导入oracle数据到hive中,并使用查询语句过滤 (子查询中where语句之后必须添加 and $CONDITIONS 才能正确执行
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root -m 1 --query 'select * from tablename where id >10 and $CONDITIONS' --target-dir '/sqoop/cache2' --hive-table [tablename1]

使用sqoop 将hive中的数据导出到oracle中(必须先在oracle中创建表,表结构要一样
./sqoop export --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root -m 1 --table [tablename] --export-dir *****

### 正确配置 Sqoop 环境变量的方法 配置 Sqoop 环境变量是使用 Sqoop 的基础步骤之一,确保环境变量正确设置可以方便地调用 Sqoop 命令。以下是具体方法: #### 1. 设置 Sqoop 主目录 将解压后的 Sqoop 文件夹移动到 `/usr/local` 目录下,并重命名为 `sqoop-1.4.7`(或其他版本号)。例如: ```bash sudo mv sqoop-1.4.7.bin__hadoop-2.6.0 /usr/local/sqoop-1.4.7 ``` 此操作完成后,Sqoop 的安装路径为 `/usr/local/sqoop-1.4.7`[^1]。 #### 2. 配置全局环境变量 编辑 `/etc/profile` 文件,添加以下内容以设置 `SQOOP_HOME` 和更新 `PATH`: ```bash export SQOOP_HOME=/usr/local/sqoop-1.4.7 export PATH=$PATH:$SQOOP_HOME/bin ``` 保存文件后,运行以下命令使更改生效: ```bash source /etc/profile ``` 这一步确保所有用户都可以通过命令行直接调用 Sqoop[^1]。 #### 3. 配置当前用户的环境变量 如果只需要为当前用户配置环境变量,可以编辑 `~/.bashrc` 文件并添加以下内容: ```bash export SQOOP_HOME=<sqoop_installation_dir> export PATH=$PATH:$SQOOP_HOME/bin ``` 其中 `<sqoop_installation_dir>` 是 Sqoop 的实际安装路径。保存文件后,运行以下命令使更改生效: ```bash source ~/.bashrc ``` 这种方法仅对当前用户生效[^2]。 #### 4. 验证环境变量配置是否成功 完成上述步骤后,可以通过以下命令验证 Sqoop 是否已正确配置: ```bash sqoop-version ``` 如果环境变量配置正确,将显示 Sqoop 的版本信息[^1]。 ### 注意事项 - 如果使用的是 MySQL 数据库,请确保已经安装了 MySQL JDBC 驱动程序,并将其放置在 Sqoop 的 `lib` 目录下。 - 在执行 Sqoop 命令时,可能需要指定数据库连接字符串、用户名和密码等参数[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值