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

相关推荐
石像鬼₧魂石2 小时前
ARL(资产灯塔)从 Docker 安装到部署启动 完整详细流程(复习专用)
运维·docker·容器
三万棵雪松2 小时前
【Linux 物联网网关主控系统-Linux主控部分(六)】
linux·物联网·嵌入式linux
IMPYLH2 小时前
Linux 的 id 命令
linux·运维·服务器·bash
福尔摩斯张2 小时前
一文搞懂74HC595芯片(附详细使用方法)
linux·服务器·网络·单片机·嵌入式硬件
xlq223222 小时前
37 内核与用户_信号
linux·运维·服务器
kaico20182 小时前
Jenkins Shared Library 开发
运维·jenkins
酌量2 小时前
nvidia orin agx刷机忘记CUDA runtime,安装torch和cuda
linux·笔记·ubuntu·torch·cuda·agx
满天星83035772 小时前
【MySQL】表的基本查询(上)
linux·服务器·数据库·mysql
yuanlaile3 小时前
Linux Docker、Swarm、K8s分布式部署全集解析
linux·docker·kubernetes·k8s实战