1、软件准备:http://archive.apache.org/dist/sqoop/1.4.7/
安装 Sqoop 组件需要与 Hadoop 环境适配。使用 root 用户在 Master 节点上进行部署,
将 /root/package/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 压缩包解压到/usr/local 目录下
[root@master src]# cd /root/package/
[root@master package]# tar -zxvf /root/package/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local
将解压后生成的 sqoop-1.4.7.bin__hadoop-2.6.0 文件夹更名为 sqoop。
[root@master package]# cd /usr/local
[root@master local]# mv ./sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
2、配置 Sqoop 环境
2.1. 创建 Sqoop 的配置文件 sqoop-env.sh。
复制 sqoop-env-template.sh 模板,并将模板重命名为 sqoop-env.sh。
[root@master local]# cd /usr/local/sqoop/conf/
[root@master conf]# cp sqoop-env-template.sh sqoop-env.sh
2.2. 修改 sqoop-env.sh 文件,添加 Hdoop、Hbase、Hive 等组件的安装路径。
注意,下面各组件的安装路径需要与实际环境中的安装路径保持一致。
[root@master conf]# vi sqoop-env.sh
export HADOOP_COMMON_HOME=/usr/local/hadoop-2.8.5
export HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.5
export HBASE_HOME=/usr/local/hbase-1.2.4/
export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin
2.3. 配置 Linux 系统环境变量,添加 Sqoop 组件的路径。
[root@master conf]# vi /etc/profile
#在文件末尾添加
set sqoop environment
export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
export CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib
为使环境变生效,执行如下命令:source /etc/profile
2.4. 连接数据库
为了使 Sqoop 能够连接 MySQL 数据库,将hive中的表同步到hadoop-1服务器的MySQL 5.7数据库中,所以拷贝前面安装的hive的lib目录下的MySQL的驱动包到Sqoop的lib目录下
cp /usr/local/apache-hive-1.2.2-bin/lib/mysql-connector-java-5.1.37.jar /usr/local/sqoop/lib/
测试验证:使用如下命令测试Sqoop是否配置完成可以使用:sqoop help
为去掉Warning,使用vim编辑配置文件configure-sqoop:
vi /usr/sqoop-1.4.7/bin/configure-sqoop
注释掉没有用到的设置内容:
if [ ! -d "${HCAT_HOME}" ]; then
echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
fi
if [ ! -d "${ACCUMULO_HOME}" ]; then
echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
Fi
3、启动 Sqoop
3.1. 执行 Sqoop 前需要先启动 Hadoop 集群。
在 master 节点切换到 hadoop 用户执行 start-all.sh 命令启动 Hadoop 集群。
[root@master ~]# su - hadoop
[hadoop@master ~]$ source /etc/profile
[hadoop@master ~]$ start-all.sh
3.2 检查 Hadoop 集群的运行状态。
[root@master ~]# jps
2610 Jps
1992 NameNode
2347 ResourceManager
2190 SecondaryNameNode
3.3. 测试 Sqoop 是否能够正常连接 MySQL 数据库。
Sqoop 连接 MySQL 数据库 P 大写 密码 414894038m
sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P
[root@master ~]# sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P
22/02/22 15:52:35 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.8.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase-1.2.4/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Enter password: # 此处需要输入密码
22/02/22 15:52:41 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
farm
flume
hive
mysql
performance_schema
Sys
能 够 查 看 到 MySQL 数 据 库 中 的information_schema、farm、flume、hive、mysql、performance_schema、sys等数据库,说明 Sqoop 可以正常连接 MySQL。
3.4. 连接 hive
为了使 Sqoop 能够连接 Hive,需要将 hive 组件/usr/local/apache-hive-1.2.2-bin/lib/目录下的hive-common-1.2.2.jar也放入 Sqoop 安装路径的 lib 目录中。
[hadoop@master ~] cp /usr/local/src/hive/lib/hive-common-2.0.0.jar
/usr/local/src/sqoop/lib/
版权归原作者 Siobhan. 明鑫 所有, 如有侵权,请联系我们删除。