基于sqoop实现学生信息的迁移: 1、准备数据库info,创建学生信息表,包含字段(id,name,age),插入记录。截图 2、搭建sqoop,截图 3、将学生信息表中记录迁移到hdfs的/hb 4、查看hdfs的/hb中的数据
时间: 2024-12-10 12:34:44 浏览: 13
### 基于 Sqoop 实现学生信息的迁移步骤
#### 1. 准备数据库 `info` 和创建学生信息表
1. **登录 MySQL 并创建数据库 `info`:**
```sql
mysql -uroot -p123123 -h127.0.0.1
create database info;
```
2. **创建用户并授予权限:**
```sql
create user 'bee'@'%' identified by '123123';
grant all privileges on info.* to 'bee'@'%' identified by '123123';
flush privileges;
```
3. **选择数据库 `info` 并创建学生信息表 `stu`:**
```sql
use info;
create table stu (id int, name varchar(20), age int);
```
4. **插入记录:**
```sql
insert into stu values (1, '张三', 20);
insert into stu values (2, '李四', 22);
```
**截图:** 完成上述操作后,截图保存。
#### 2. 搭建 Sqoop
1. **下载并解压 Sqoop:**
```sh
cd /opt/software
wget http://example.com/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/modules
cd /opt/modules
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
```
2. **配置环境变量:**
```sh
vi /etc/profile
```
添加以下内容:
```sh
SQOOP_HOME=/opt/modules/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
```
保存并退出,然后使配置生效:
```sh
source /etc/profile
```
3. **将数据库驱动拷贝到 Sqoop 的 lib 目录下:**
```sh
cp /opt/software/mysql-connector-java-8.0.19-bin.jar /opt/modules/sqoop/lib
```
4. **配置 `sqoop-env.sh`:**
```sh
cd /opt/modules/sqoop/conf
cp sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
```
添加以下内容:
```sh
export HADOOP_COMMON_HOME=/opt/modules/hadoop
export HADOOP_MAPRED_HOME=/opt/modules/hadoop
```
保存并退出。
**截图:** 完成上述操作后,截图保存。
#### 3. 将学生信息表中记录迁移到 HDFS 的 `/hb`
1. **列出数据库中的所有表:**
```sh
sqoop list-databases --connect jdbc:mysql://localhost:3306/info --username bee --password 123123
```
2. **导入学生信息表 `stu` 到 HDFS 的 `/hb` 目录:**
```sh
sqoop import --connect jdbc:mysql://localhost:3306/info --username bee --password 123123 --table stu --columns="id,name,age" --target-dir '/hb' -m 1
```
**截图:** 完成上述操作后,截图保存。
#### 4. 查看 HDFS 的 `/hb` 中的数据
1. **进入 HDFS 并查看 `/hb` 目录下的数据:**
```sh
hdfs dfs -cat /hb/part-m-00000
```
**截图:** 完成上述操作后,截图保存。
以上步骤完成后,您应该能够成功地将学生信息表从 MySQL 迁移到 HDFS,并验证数据的正确性。
阅读全文