Linux系统搭建Hadoop环境+HBase+Sqoop常用命令(新手实操版)
前言:本文针对新手,整理了Linux(Ubuntu 16 Server)系统下Hadoop环境搭建的核心操作,以及HBase、Sqoop的常用命令,包含SSH免密、Java环境、网络配置等基础操作,还有实操中常见问题解决,全程命令可直接复制使用,避开新手踩坑点~
一、Linux基础操作(Hadoop环境前置必备)
搭建Hadoop前,需先掌握Linux基础命令和环境配置,以下是高频操作,直接记熟即可。
- SSH免密登录配置(远程连接必备)
核心目的:实现Xshell等工具远程连接Linux,且无需每次输入密码,是Hadoop集群节点通信的基础。
操作步骤:先配置SSH免密,再通过Xshell输入IP、用户名即可连接(后续Hadoop集群搭建也需此操作)。
- Vi编辑器常用操作(修改配置文件必备)
Linux中修改配置文件主要用Vi编辑器,核心命令记牢:
-
i:进入编辑模式(输入内容)
-
Esc:退出编辑模式(回到命令模式)
-
:wq:保存并退出
-
:q!:强制退出,不保存修改
- 基础文件/文件夹操作命令
-
创建文件夹:mkdir 文件夹名(例:mkdir hadoop)
-
创建文件:touch 路径/文件名(例:touch /home/a.txt)
-
删除文件夹(强制删除,谨慎使用):rm -rf 文件夹名/(例:rm -rf hadoop/)
-
重命名(原地):mv 原文件名 新文件名(例:mv myfile notmyfile)
- Root账号相关操作
-
创建root账号:sudo passwd root(按提示输入密码,设置root密码)
-
切换到root账户:su root(输入root密码即可切换,获取最高权限)
- 主机名修改
-
查看主机名和临时主机名:hostnamectl
-
临时修改主机名(重启失效):hostname 临时主机名
-
永久修改主机名(以master为例):sudo hostnamectl set-hostname master(Hadoop主节点建议命名为master)
- Ubuntu 16 Server 静态IP配置(关键!)
默认Linux使用DHCP自动获取IP,重启后IP可能变化,影响Hadoop集群通信,需配置静态IP。
Ubuntu Server网络配置文件路径:/etc/network/interfaces
默认DHCP配置(需屏蔽):
The primary network interface
auto eth0
iface eth0 inet dhcp
静态IP配置步骤:
-
编辑配置文件:vi /etc/network/interfaces
-
屏蔽DHCP相关行,添加静态IP参数(注意:ens33需根据自身网卡名称修改,可通过ip addr查看):
The primary network interface
auto ens33
#iface eth0 inet dhcp # 屏蔽DHCP配置
iface ens33 inet static # 静态IP模式
address 192.168.1.110 # 自定义静态IP(需和网关在同一网段)
netmask 255.255.255.0 # 子网掩码(默认即可)
gateway 192.168.1.1 # 网关(和路由器网关一致)
- 配置DNS:vi /etc/resolv.conf,添加如下内容:
nameserver 192.168.1.255 # DNS服务器地址(可根据自身网络修改)
- 启用新网络配置(无需重启主机):
sudo ifdown ens33 && sudo ifup ens33
注意:若配置后网络未生效,重启网络服务:
/etc/init.d/networking restart
或切换到对应目录执行
cd /etc/init.d/
./networking restart
- 网络配置常见问题解决
问题:Ubuntu 16下执行/etc/init.d/networking restart重启网络无效?
解决方案:执行以下命令,无需重启主机即可生效:
sudo ip addr flush dev ens33 && sudo ifdown ens33 && sudo ifup ens33
- Ubuntu 16 防火墙关闭(Hadoop端口通信必备)
Hadoop、HBase需用到多个端口(如50070),防火墙会拦截,建议直接关闭:
-
关闭防火墙:ufw disable
-
开启防火墙(如需):ufw enable
-
卸载iptables(彻底关闭防火墙相关服务):apt-get remove iptables
-
补充命令(彻底开放所有端口,新手直接执行):
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
二、Java环境配置(Hadoop依赖必备)
Hadoop运行依赖Java环境,需先解压JDK并配置环境变量,步骤如下:
- JDK解压命令
tar -zxvf jdk.tar.gz /目标路径 # 例:tar -zxvf jdk.tar.gz /usr/java
说明:jdk.tar.gz是下载的JDK安装包,需替换为实际文件名;目标路径可自定义,建议放在/usr/java下,方便后续配置。
- 环境变量配置
编辑环境变量文件(全局生效,需root权限):vi /etc/profile,添加如下内容(末尾追加即可):
set java
export JAVA_HOME=/usr/java/jdk1.8.0_221 # 替换为你的JDK实际路径
export PATH=PATH:PATH:PATH:HOME/bin:$JAVA_HOME/bin
配置生效:source /etc/profile(执行后立即生效,无需重启)
验证:java -version,若显示JDK版本信息,说明配置成功。
三、Hadoop相关补充命令
- 集群文件传输(向其他虚拟机发送文件夹):
scp -r /home/panwenjun/hadoop panwenjun@192.168.29.129:/home/panwenjun
说明:-r表示递归传输(文件夹),panwenjun是目标虚拟机用户名,192.168.29.129是目标虚拟机IP,后面是目标路径。
- 查看Hadoop端口状态(验证Hadoop是否启动成功):
netstat -ano |grep 50070 # 50070是Hadoop WebUI端口
四、HBase常用命令(数据库操作)
HBase是基于Hadoop的分布式数据库,以下是最常用的基础命令,新手直接套用即可。
- 基础连接与状态查询
-
进入HBase数据库:bin/hbase shell(需在HBase安装目录下执行)
-
查询HBase Server状态:status(查看集群是否正常运行)
-
查询HBase版本号:version
-
查看当前连接用户:whoami
- DDL命令(表结构操作)
DDL命令主要用于表的创建、修改、失效/启用、删除,核心注意:修改表结构前,需先失效表。
(1)创建表(create)
功能:创建HBase表,无需指定具体列名,只需指定列族(HBase的核心概念,类似数据库的"表空间")。
用法:create '表名','列族名1','列族名2'
示例:create 'student','info','score'(创建student表,包含info和score两个列族)
(2)失效表(disable)
功能:使表失效,后续无法对表进行读写操作;修改表结构、删除表前,必须先执行此命令。
用法:disable '表名'
示例:disable 'student'
(3)启用表(enable)
功能:使失效的表重新生效,恢复读写操作。
用法:enable '表名'
示例:enable 'student'
(4)修改表结构(alter)
功能:新增列族、删除列族、修改列族属性等(核心:修改前需先disable表)。
示例(新增列族):
disable 'student' # 先失效表
alter 'student', 'addr' # 新增addr列族
enable 'student' # 重新启用表
五、Sqoop数据迁移命令(MySQL→HBase)
Sqoop用于实现关系型数据库(如MySQL)与Hadoop生态(HDFS、HBase)的数据迁移,以下是最常用的3个命令,重点是MySQL到HBase的迁移。
- 查看MySQL数据库(连接验证)
sqoop list-databases --connect jdbc:mysql://hadoop01:3306/sqooptest --username root --password root
说明:hadoop01是MySQL所在服务器主机名(或直接用IP),3306是MySQL端口,sqooptest是数据库名,root是MySQL用户名和密码。
- 查看MySQL数据表
sqoop list-tables --connect jdbc:mysql://hadoop01:3306/sqooptest --username root --password root
功能:查看指定MySQL数据库(sqooptest)下的所有数据表。
- MySQL数据导入HBase(核心迁移命令)
sqoop import --connect jdbc:mysql://hadoop01/sqooptest --username root --password root --table temp -m 1 --target-dir /user/db
参数说明:
-
--table temp:指定要迁移的MySQL数据表(temp)
-
-m 1:指定MapTask数量为1(新手默认1即可,避免数据分片出错)
-
--target-dir /user/db:指定数据临时存储路径(HDFS路径,迁移完成后可删除)
六、新手注意事项
-
所有命令需区分大小写(Linux、HBase、Sqoop命令均对大小写敏感)。
-
配置文件修改后,需确保保存生效(vi编辑器:wq保存,环境变量source生效)。
-
Hadoop、HBase、Sqoop运行前,需确保Java环境配置正确(java -version验证)。
-
集群环境中,所有节点的主机名、IP、防火墙配置需一致,避免通信失败。
结尾:本文整理了新手搭建Hadoop环境及使用HBase、Sqoop的核心命令,实操中若遇到问题,可评论区留言,后续会补充常见踩坑解决方案~ 觉得有用的话,点赞收藏不迷路!