news 2026/6/16 14:35:54

大数据技术——核心知识点复习提纲

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大数据技术——核心知识点复习提纲

一、Linux 基础命令

命令功能常用选项
cd切换目录.当前目录,..上级目录
ls列出文件-a显示隐藏,-l详细信息,-R递归
cat查看文件-n显示行号
mkdir创建目录-p创建父目录
rm删除文件/目录-f强制,-r递归
cp复制-f覆盖,-R递归
mv移动/重命名-f覆盖,-i询问
pwd显示当前路径
chmod修改权限数字法(r=4,w=2,x=1)如700
sudo以超级用户执行
source使配置生效
hostnamectl修改主机名set-hostname
ifconfig查看IP地址

二、JDK 安装与环境变量

步骤

  1. 上传jdk-8u161-linux-x64.tar.gz/opt

  2. 解压:sudo tar -zxvf jdk-8u161-linux-x64.tar.gz

  3. 编辑/etc/profile,添加:

    bash

    export JAVA_HOME=/opt/jdk1.8.0_161 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
  4. source /etc/profile使其生效

  5. 验证:java -version


三、SSH 免密登录配置

操作流程

  1. 生成密钥对:ssh-keygen -t rsa(一路回车)

  2. 将公钥追加到授权文件:

    bash

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. 设置权限:

    bash

    chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
  4. 分发公钥到其他节点:

    bash

    ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
  5. 验证:ssh master无需密码即成功


四、Hadoop 部署

4.1 伪分布式部署(单节点)

配置文件修改(位于$HADOOP_HOME/etc/hadoop/
文件关键配置
hadoop-env.shexport JAVA_HOME=/opt/jdk1.8.0_161
core-site.xmlfs.defaultFShdfs://master:9000
hadoop.tmp.dir→ 临时目录
hdfs-site.xmldfs.replication1
dfs.namenode.name.dirdfs.datanode.data.dir
yarn-site.xmlyarn.resourcemanager.hostnamemaster
yarn.nodemanager.aux-servicesmapreduce_shuffle
mapred-site.xmlmapreduce.framework.nameyarn
启动与验证
  • 格式化:hdfs namenode -format

  • 启动:start-all.shstart-dfs.sh+start-yarn.sh

  • 进程检查:jps应看到NameNode, DataNode, SecondaryNameNode, ResourceManager, NodeManager

  • Web 界面:HDFS →http://master:50070,YARN →http://master:8088

4.2 完全分布式集群部署

节点规划
节点HDFS 角色YARN 角色
masterNameNodeResourceManager
slave1, slave2DataNodeNodeManager
关键配置修改
  • etc/hosts:添加所有节点的 IP 与主机名映射

  • masters文件:写入master

  • workers文件:写入slave1slave2(删除 localhost)

  • hdfs-site.xmldfs.replication设为2

  • 删除临时目录(datanode_1_dir中的内容)

克隆虚拟机后修改 slave 节点
  • 修改 IP 地址(/etc/netplan/*.yaml

  • 修改主机名:sudo hostnamectl set-hostname slave1

  • 修改hdfs-site.xml:注释掉 NameNode 相关配置,保留 DataNode 配置

启动集群
  1. 在 master 上格式化:hdfs namenode -format

  2. 启动:start-all.sh

  3. 分别在各节点用jps验证进程


五、Hive 安装与配置

5.1 MySQL 作为元数据库(MySQL 8.0.14)

  • 安装依赖:sudo apt-get install libaio1

  • 按顺序安装 deb 包(mysql-common,libmysqlclient21, ... ,mysql-community-server

  • 注意:若安装时未设置 root 密码,后续需用sudo mysql进入并执行:

    sql

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;
  • 创建用户并授权:

    sql

    CREATE USER 'zeng'@'%' IDENTIFIED BY '123456'; GRANT ALL ON *.* TO 'zeng'@'%'; CREATE DATABASE bigdata; -- 存储 Hive 元数据

5.2 Hive 3.1.1 部署

配置文件
  • hive-site.xml:配置 MySQL 连接(URL、驱动、用户名、密码)

  • hive-env.sh:设置export HADOOP_HOME=/opt/hadoop-3.1.1

  • /etc/profile添加HIVE_HOMEPATH

  • hive-config.sh设置JAVA_HOME,HADOOP_HOME,HIVE_HOME

初始化与启动
  • 复制 MySQL 驱动:mysql-connector-java-8.0.14.jar到 Hive 的lib目录

  • 初始化元数据库:schematool -initSchema -dbType mysql

  • 启动 Hive:hive(需 Hadoop 已启动)


六、Hive 数据库与表操作

6.1 数据库 DDL

sql

CREATE DATABASE classtest; CREATE DATABASE IF NOT EXISTS classtest; SHOW DATABASES; DESCRIBE DATABASE classtest; -- 查看库存储位置 DROP DATABASE IF EXISTS classtest;

6.2 表操作(三种建表方式)

① 直接建表

sql

CREATE TABLE student ( id string COMMENT 'student id', name string COMMENT 'student name', age int COMMENT 'student age' ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE LOCATION '/user/hive/warehouse/classtest.db/student';
② AS 查询建表(复制结构和部分数据)

sql

CREATE TABLE student2 AS SELECT id, name FROM student WHERE id > 150;
③ LIKE 建表(仅复制结构,无数据)

sql

CREATE TABLE student3 LIKE student;
其他常用命令
  • SHOW TABLES;

  • DESC student;-- 查看表结构

  • ALTER TABLE 旧名 RENAME TO 新名;


七、Hive 分区表(重点)

7.1 单字段静态分区

sql

CREATE TABLE cityperson ( id string, name string, age int ) PARTITIONED BY (city string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
  • 加载数据

    sql

    LOAD DATA LOCAL INPATH '/home/user1/citydataForxiamen.txt' INTO TABLE cityperson PARTITION(city='xiamen');
  • 查看分区SHOW PARTITIONS cityperson;

  • HDFS 存储结构:/user/hive/warehouse/库名.db/表名/city=值/

7.2 多字段静态分区

sql

CREATE TABLE agentinformation ( agentID string, agentName string, agentAddress string ) PARTITIONED BY (province string, city string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ';
  • 加载数据示例:

    sql

    LOAD DATA LOCAL INPATH '...' INTO TABLE agentinformation PARTITION(province='shanxi', city='xian');
  • 覆盖数据:添加OVERWRITE关键字

    sql

    LOAD DATA LOCAL INPATH '...' OVERWRITE INTO TABLE agentinformation PARTITION(province='fujian', city='xiamen');

八、Sqoop 数据迁移

8.1 Sqoop 安装与配置

  • 解压sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz/opt

  • 配置sqoop-env.sh:设置HADOOP_COMMON_HOME,HADOOP_MAPRED_HOME,HIVE_HOME

  • 配置/etc/profileexport SQOOP_HOME并修改PATH

  • 复制 MySQL 驱动到 Sqoop 的lib目录

  • 验证:./bin/sqoop version

8.2 数据导入操作

① MySQL → HDFS

bash

./bin/sqoop import \ --connect jdbc:mysql://master:3306/teacherinfo?serverTimezone=UTC \ --username zeng --password 123456 \ --table teacher \ --delete-target-dir -m 3
  • 默认导入到/user/user1/teacher(HDFS)

② MySQL → Hive

bash

./bin/sqoop import \ --connect jdbc:mysql://master:3306/teacherinfo?serverTimezone=UTC \ --username zeng --password 123456 \ --table teacher \ --delete-target-dir \ --hive-import --hive-table teacher -m 3
  • 前提:将hive-common-3.1.1.jar复制到 Sqoop 的lib目录,避免ClassNotFoundException

  • Hive 中会自动创建表(字段顺序可能与 MySQL 不同,需注意)

③ 带条件导入(--where

bash

./bin/sqoop import --connect jdbc:mysql://master:3306/erp?serverTimezone=UTC \ --username zeng --password 123456 \ --table emp --columns ename,eaddress,esalary \ --where "esalary > 4000" \ --delete-target-dir --hive-import --hive-table esalary -m 3

8.3 常用参数

参数作用
--connectJDBC URL
--table源表名
--columns指定列
--where过滤条件
-mMap 任务数(并行度)
--delete-target-dir删除目标目录(避免冲突)
--hive-import导入到 Hive
--hive-tableHive 表名

九、常见问题与解决

问题原因解决方法
ClassNotFoundException: HiveConfSqoop 缺少 Hive jar复制hive-common-*.jar到 Sqoop 的lib
MySQL 安装后无法登录未设置 root 密码或加密方式不兼容sudo mysql进入,用ALTER USER ... mysql_native_password重置密码
Hadoop 启动无 SecondaryNameNode/etc/hosts配置错误检查主机名映射,确保localhost和实际主机名正确
NameNode 处于 safe mode刚启动或异常hdfs dfsadmin -safemode leave退出
运行 MR 程序报MRAppMaster错误缺少环境变量mapred-site.xml中添加yarn.app.mapreduce.am.env等配置
权限被拒绝目录权限不对使用chmod调整为 700 或 755

十、复习建议

  1. 动手实操:按照文档顺序,从 Linux 基础 → JDK → SSH → Hadoop(伪分布 → 集群)→ Hive → Sqoop,边做边记。

  2. 重点掌握

    • Hadoop 核心配置文件的含义(core-site, hdfs-site, yarn-site, mapred-site)

    • Hive 分区表的设计与数据加载(PARTITIONED BY+LOAD DATA

    • Sqoop 导入命令的参数组合

  3. 排错能力:熟悉常见报错信息(如ClassNotFoundException,SafeModeException)及其解决步骤。

  4. Web 监控:熟悉 50070(HDFS)和 8088(YARN)端口的界面,用于查看节点状态和作业运行情况。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 14:33:52

Bandizip深度解析:从多核压缩到智能解压,打造高效文件管理方案

1. 项目概述:为什么Bandizip能成为文件压缩领域的“瑞士军刀”?在数字文件处理这个看似基础却无处不在的领域,压缩软件扮演着至关重要的角色。无论是打包项目文件发给同事,还是从网上下载资源,一个高效、稳定、无广告的…

作者头像 李华
网站建设 2026/6/16 14:33:18

决策树实战:从信息增益到可解释AI的全流程手记

1. 这不是教科书里的决策树,而是我亲手调过37次超参后画出的那棵“歪脖子树”你点开这篇,大概率正被“信息熵”“基尼不纯度”“剪枝策略”这些词绕得头晕——别急,我当年第一次跑通Decision Tree时,也在Jupyter里反复print出一串…

作者头像 李华
网站建设 2026/6/16 14:32:27

Ubuntu终端彩色提示符:从原理到高阶定制的完整实践指南

1. 为什么彩色提示符不是“花架子”,而是终端效率的隐形加速器刚接触 Ubuntu 的朋友常会纳闷:不就是命令行里多点颜色吗?又不是写 PPT,至于专门折腾这个?我带过十几届 Linux 新手训练营,也给上百个非科班出…

作者头像 李华
网站建设 2026/6/16 14:32:27

Ubuntu安装Chrome的正确方法:APT源安装与GPU加速配置

1. 这不是“装个浏览器”那么简单:Ubuntu下Chrome安装背后的真实需求图谱 很多人点开这个标题,第一反应是:“不就是下载个.deb包双击安装吗?值得写教程?”——我刚入行做Linux技术支持那会儿也这么想。直到连续三天被不…

作者头像 李华
网站建设 2026/6/16 14:31:52

[ 对比学习篇 ] 经典网络模型 —— Contrastive Learning

🤵 Author :Horizon John ✨ 编程技巧篇:各种操作小结 🏆 神经网络篇:经典网络模型 💻 算法篇:再忙也别忘了 LeetCode [ 对比学习篇 ] 经典网络模型 —— Contrastive Learning🚀…

作者头像 李华
网站建设 2026/6/16 14:31:50

(八)【JVS-APS智能排产】:智能APS-工序模版

一、名词释义:工序模版是为工艺路线而服务的形成模板化的东西,可以理解为一块儿一块儿的组件。比如发动机有轴承工序、有气门工序、有缸体缸盖工序等诸多工序。做成模版时需定义工序关系、以及该制作工序所需的资源和相关物料。二、核心价值与应用场景1.…

作者头像 李华