linux系统搭建hadoop环境

Linux系统搭建Hadoop环境+HBase+Sqoop常用命令(新手实操版)

前言:本文针对新手,整理了Linux(Ubuntu 16 Server)系统下Hadoop环境搭建的核心操作,以及HBase、Sqoop的常用命令,包含SSH免密、Java环境、网络配置等基础操作,还有实操中常见问题解决,全程命令可直接复制使用,避开新手踩坑点~

一、Linux基础操作(Hadoop环境前置必备)

搭建Hadoop前,需先掌握Linux基础命令和环境配置,以下是高频操作,直接记熟即可。

  1. SSH免密登录配置(远程连接必备)

核心目的:实现Xshell等工具远程连接Linux,且无需每次输入密码,是Hadoop集群节点通信的基础。

操作步骤:先配置SSH免密,再通过Xshell输入IP、用户名即可连接(后续Hadoop集群搭建也需此操作)。

  1. Vi编辑器常用操作(修改配置文件必备)

Linux中修改配置文件主要用Vi编辑器,核心命令记牢:

  • i:进入编辑模式(输入内容)

  • Esc:退出编辑模式(回到命令模式)

  • :wq:保存并退出

  • :q!:强制退出,不保存修改

  1. 基础文件/文件夹操作命令
  • 创建文件夹:mkdir 文件夹名(例:mkdir hadoop)

  • 创建文件:touch 路径/文件名(例:touch /home/a.txt)

  • 删除文件夹(强制删除,谨慎使用):rm -rf 文件夹名/(例:rm -rf hadoop/)

  • 重命名(原地):mv 原文件名 新文件名(例:mv myfile notmyfile)

  1. Root账号相关操作
  • 创建root账号:sudo passwd root(按提示输入密码,设置root密码)

  • 切换到root账户:su root(输入root密码即可切换,获取最高权限)

  1. 主机名修改
  • 查看主机名和临时主机名:hostnamectl

  • 临时修改主机名(重启失效):hostname 临时主机名

  • 永久修改主机名(以master为例):sudo hostnamectl set-hostname master(Hadoop主节点建议命名为master)

  1. 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配置步骤:

  1. 编辑配置文件:vi /etc/network/interfaces

  2. 屏蔽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 # 网关(和路由器网关一致)

  1. 配置DNS:vi /etc/resolv.conf,添加如下内容:

nameserver 192.168.1.255 # DNS服务器地址(可根据自身网络修改)

  1. 启用新网络配置(无需重启主机):

sudo ifdown ens33 && sudo ifup ens33

注意:若配置后网络未生效,重启网络服务:

/etc/init.d/networking restart

或切换到对应目录执行

cd /etc/init.d/

./networking restart

  1. 网络配置常见问题解决

问题:Ubuntu 16下执行/etc/init.d/networking restart重启网络无效?

解决方案:执行以下命令,无需重启主机即可生效:

sudo ip addr flush dev ens33 && sudo ifdown ens33 && sudo ifup ens33

  1. 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并配置环境变量,步骤如下:

  1. JDK解压命令

tar -zxvf jdk.tar.gz /目标路径 # 例:tar -zxvf jdk.tar.gz /usr/java

说明:jdk.tar.gz是下载的JDK安装包,需替换为实际文件名;目标路径可自定义,建议放在/usr/java下,方便后续配置。

  1. 环境变量配置

编辑环境变量文件(全局生效,需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的分布式数据库,以下是最常用的基础命令,新手直接套用即可。

  1. 基础连接与状态查询
  • 进入HBase数据库:bin/hbase shell(需在HBase安装目录下执行)

  • 查询HBase Server状态:status(查看集群是否正常运行)

  • 查询HBase版本号:version

  • 查看当前连接用户:whoami

  1. 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的迁移。

  1. 查看MySQL数据库(连接验证)

sqoop list-databases --connect jdbc:mysql://hadoop01:3306/sqooptest --username root --password root

说明:hadoop01是MySQL所在服务器主机名(或直接用IP),3306是MySQL端口,sqooptest是数据库名,root是MySQL用户名和密码。

  1. 查看MySQL数据表

sqoop list-tables --connect jdbc:mysql://hadoop01:3306/sqooptest --username root --password root

功能:查看指定MySQL数据库(sqooptest)下的所有数据表。

  1. 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的核心命令,实操中若遇到问题,可评论区留言,后续会补充常见踩坑解决方案~ 觉得有用的话,点赞收藏不迷路!

相关推荐
华清远见IT开放实验室17 分钟前
STM32+Linux双体系,零基础玩转嵌入式
linux·stm32·嵌入式硬件
重生的黑客23 分钟前
Linux 进程状态详解:从理论到实践,僵尸进程与孤儿进程
linux·运维·服务器
脆皮炸鸡75533 分钟前
进程的程序替换
linux·经验分享·笔记·vim·学习方法
划水的code搬运工小李1 小时前
ubuntu下使用opencode
linux·运维·ubuntu
爱学习的小囧1 小时前
ESXi 环境 NFSv3 与 NFSv4.1 哪个更稳?深度对比 + 选型指南 + 运维全教程
运维·服务器·网络·虚拟化
ZPC82101 小时前
Ubuntu 实时性优化(专属定制版,适配 fast_shm 通信)
linux·数据库·postgresql
郝学胜-神的一滴1 小时前
epoll 边缘触发 vs 水平触发:从管道到套接字的深度实战
linux·服务器·开发语言·c++·网络协议·unix
韩明君1 小时前
OpenClaw安全部署实现
linux·人工智能·安全·debian·本地部署·ai agent·openclaw
YJlio1 小时前
1 4.1 微软商店的使用(Microsoft Store:下载/安装/管理应用与游戏)
运维·hive·hadoop·windows·游戏·microsoft·计算机外设
要做一个小太阳1 小时前
数据库索引
运维·数据库