基于Hadoop的企业人力资源管理

简介: 基于Hadoop的企业人力资源管理


Hadoop实验

想到Hadoop,我们第一时间是想到的什么,大数据,分布式,MapReduce,还是各种Linux相关的命令。还记得小时候看到那些人在一个终端输入那些命令,感觉很厉害的样子,尊称为大佬,但是当自己亲身经历过后,你也许会发现,会的东西你会之后,依然还是这样会,不会的东西你才会去膜拜。

image.png

实验背景

通过学习Hadoop大数据技术,你成功通过了某企业的面试,并得到了一个实习offer:offer信息如下


XXX:


您好!


恭喜您成功通过了面试,本公司IT部门邀请您担任Hadoop Specialist职位, 负责Hadoop系统的管理和维护、HBase数据库的管理、Hive数据库的管理、数据录入与数据分析等。


根据您的面试结果和岗位要求,您的职级评定为I(实习生)。


请于2021年6月18日星期五18:00到G404入职,请带好相关证件和资料。


======以下为敏感信息请勿向第三者透露======


月薪:3000


奖金:0


==========================================


期待您的到来!您将成为本公司的第0000002名员工!


                                                     CQUST公司CEO兼HR部门经理:Mary


                                                                    2021年6月15日


image.png

实验概览

入职后后,你很快收到以下工作任务:

任务一:熟悉公司Hadoop虚拟机环境,列出hadoop的关键参数。

image.png

任务二:在熟悉过Hadoop环境之后,你需要在HDFS上创建工作目录


image.png

并且,将你收到的offer letter上传到你自己的工作目录中去。

为了确保文件上传成功,你需要在上传后查看文件基本属性和内容。

为了确保文件在被意外删除的情况下能够找回来,你需要为你的工作目录创建快照。

任务三:你的老板Mary给了你一张表格,如下

image.png

注:请在表格中的处填入你自己的信息。

为了迎接即将入职的2000万新员工,你需要在HBase中创建这张表,并先将你和你老板的信息录入其中。

字段说明:

员工号:<你的学号>

员工姓名:<你的姓名拼音> (首字母大写)

性别: <F or M> (F-Female, M-Male)

职级:<从下表中取值>

image.png

基本薪酬:<你的月薪数值>

奖金:<你的奖金数值>

部门编号和名称:<从下表中取值>

image.png

数据录入完毕后你需要进行下面的测试:

获取你自己的所有信息

扫描所有的管理类型员工(职级以M开头)的数据

注意:完成Hbase操作后请关闭Hbase

任务四:你的老板Mary还希望你按照任务三表格中的数据和结构创建一个Hive表,以方便公司网站应用使用传统的SQL方式访问这些数据。你需要按照下面的要求创建表:

表名:tb_abc,其中abc为你的姓名拼音首字母

表类型:外部表

表数据文件行格式:逗号分割

例:表格中的数据可以构造成一个csv文件如下

image.png

注:其中的数据仅为示例,你需要使用你自己的数据


表数据文件位置:HR部门目录(如:/CQUST/HR)


1.考虑到新员工数量太多,你决定创建一个分桶表tb_buckts_abc,使用员工号字段将tb_abc中的数据分成3个桶。(分桶)


2.考虑到新员工数量太多,你决定创建一个分区表tb_part_abc,使用部门编号字段将上表中的数据分成3个区(dept_no=10,dept_no=20,dept_no=30)。(分区)


实验步骤

本次实验变量名abc使用wxw,学号使用123

任务一:

image.png

image.png

任务二:

image.png

创建:

hdfs dfs -mkdir -p /CQUST/IT/wxw
hdfs dfs -mkdir -p /user/hadoop/CQUST/IT/wxw

上传:

hdfs dfs -put offerletter.txt /user/hadoop/CQUST/IT/wxw
hdfs dfs -put offerletter.txt /CQUST/IT/wxw

注意这里用copyFromLocal也可以

查看文件夹属性:  

hdfs dfs -ls /user/hadoop/CQUST/IT/wxw
hdfs dfs -ls /CQUST/IT/wxw

注意这里容易混淆,使用 stat,这个命令参数输出的文件的创建时间,但是输出的时间戳和本地不一致

查看文件内容:

hdfs dfs -cat /user/hadoop/CQUST/IT/wxw

创建快照:

hdfs dfsadmin  -allowSnapshot /user/hadoop/CQUST/IT/wxw

任务三:

  1. 数据

image.png

  1. 创建Hbase
create 'emp_sal_dept','emp','salary','dept'

image.png

  1. 插入数据
put 'emp_sal_dept','2019000000','emp:name','Mary'
put 'emp_sal_dept','2019000000','emp: gender','F'
put 'emp_sal_dept','2019000000','emp:level','M3'
put 'emp_sal_dept','2019000000','salary:base','1'
put 'emp_sal_dept','2019000000','salary: bonus','1000000'
put 'emp_sal_dept','2019000000','dept:no','10'
put 'emp_sal_dept','2019000000','dept:name','HR'
put 'emp_sal_dept','123','emp:name',' wxw'
put 'emp_sal_dept','123','emp: gender','M'
put 'emp_sal_dept','123','emp:level','I'
put 'emp_sal_dept','123','salary:base','3000'
put 'emp_sal_dept','123','salary: bonus','0'
put 'emp_sal_dept','123','dept:no','30'
put 'emp_sal_dept','123','dept:name','IT'

扫描整张表

scan 'emp_sal_dept'

获取到自己信息

get ' emp_sal_dept ','123'

扫描所有的管理类型员工(职级以M开头)的数据

scan'emp_sal_dept',{FILTER=>"SingleColumnValueFilter ('emp','level',=,'substring:M')"}

关闭hbase(使用不当会损坏机器)

stop-hbase.sh

任务四

你的老板Mary还希望你按照任务三表格中的数据和结构创建一个Hive表,以方便公司网站应用使用传统的SQL方式访问这些数据。你需要按照下面的要求创建表:

表名:tb_abc,其中abc为你的姓名拼音首字母

表类型:外部表

表数据文件行格式:逗号分割

例:表格中的数据可以构造成一个csv文件如下

image.png

注:其中的数据仅为示例,你需要使用你自己的数据


表数据文件位置:HR部门目录(如:/CQUST/HR)


1.考虑到新员工数量太多,你决定创建一个分桶表tb_buckts_abc,使用员工号字段将tb_abc中的数据分成3个桶。(分桶)


2.考虑到新员工数量太多,你决定创建一个分区表tb_part_abc,使用部门编号字段将上表中的数据分成3个区(dept_no=10,dept_no=20,dept_no=30)。(分区)


常规操作导入数据

create database wxw;
use wxw;
create table `wxw`.`tb_wxw_123`  (
  `emp_id` string ,
  `emp_name` string ,
  `gender` string ,
  `emp_level` string,
  `salary_base` int,
  `salary_bonus` int,
  `dept_no` int,
  `dept_name` string
) 
row format delimited fields terminated by ','
stored as textfile; 
LOAD DATA LOCAL INPATH '/home/hadoop/wxw_.txt' INTO TABLE tb_wxw_123;

分区操作

建立分区表

CREATE EXTERNAL TABLE wxw( 
  `emp_id` string ,
  `emp_name` string ,
  `gender` string ,
  `emp_level` string,
  `salary_base` int,
  `salary_bonus` int,
  `dept_no` int,
  `dept_name` string
) PARTITIONED BY (dept_no int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
LOCATION '/user/hadoop/data';

导入数据到分区表

ALTER TABLE wxw ADD PARTITION(dept_no=20) LOCATION '/user/hadoop/data/data1';
ALTER TABLE wxw ADD PARTITION(dept_no=10) LOCATION '/user/hadoop/data/data2';
ALTER TABLE wxw ADD PARTITION(dept_no=30) LOCATION '/user/hadoop/data/data3';

分桶操作

建立表格

create external table tb_buck_wxw
(name string, salary float,level string,base string,bonus string,no string,dept_name string)
clustered by(name)   --
sorted by(name DESC)
into 3 buckets
row format delimited
fields terminated by ',';
create table wxw(name string, salary float,level string,base string,bonus string,no string,dept_name string)
row format delimited
fields terminated by ',';
LOAD DATA local INPATH 'wxw.csv' INTO TABLE wxw;
select * from wxw cluster by(name);
insert overwrite table tb_buck_wxw
select * from wxw cluster by(name);
相关文章
|
3月前
|
资源调度 分布式计算 运维
Hadoop集群资源管理篇-资源调度器
详细介绍了Hadoop集群资源管理中的资源调度器,包括资源分配的概念、大数据运维工程师如何管理集群工作负载、资源调度器的背景、Hadoop提供的FIFO、容量调度器和公平调度器三种资源调度器的概述以及它们之间的对比。
145 4
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop YARN资源管理-容量调度器(Yahoo!的Capacity Scheduler)
详细讲解了Hadoop YARN资源管理中的容量调度器(Yahoo!的Capacity Scheduler),包括队列和子队列的概念、Apache Hadoop的容量调度器默认队列、队列的命名规则、分层队列、容量保证、队列弹性、容量调度器的元素、集群如何分配资源、限制用户容量、限制应用程序数量、抢占申请、启用容量调度器以及队列状态管理等方面的内容。
91 3
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop YARN资源管理-公平调度器(Fackbook的Fair Scheduler)
详细介绍了Hadoop YARN资源管理中的公平调度器(Fair Scheduler),包括其概述、配置、队列结构、以及如何将作业提交到指定队列,展示了公平调度器如何通过分配文件(fair-scheduler.xml)来控制资源分配,并提供了配置示例和如何通过命令行提交作业到特定队列的方法。
185 0
Hadoop YARN资源管理-公平调度器(Fackbook的Fair Scheduler)
|
4月前
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现深度学习模型:智能人力资源管理与招聘
【8月更文挑战第12天】 使用Python实现深度学习模型:智能人力资源管理与招聘
134 2
|
4月前
|
资源调度 分布式计算 监控
【揭秘Hadoop YARN背后的奥秘!】从零开始,带你深入了解YARN资源管理框架的核心架构与实战应用!
【8月更文挑战第24天】Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的资源管理器,为Hadoop集群上的应用提供统一的资源管理和调度框架。YARN通过ResourceManager、NodeManager和ApplicationMaster三大核心组件实现高效集群资源利用及多框架支持。本文剖析YARN架构及组件工作原理,并通过示例代码展示如何运行简单的MapReduce任务,帮助读者深入了解YARN机制及其在大数据处理中的应用价值。
99 0
|
5月前
|
数据采集 监控 数据安全/隐私保护
ERP系统中的人力资源管理与员工绩效评估解析
【7月更文挑战第25天】 ERP系统中的人力资源管理与员工绩效评估解析
362 1
|
5月前
|
机器学习/深度学习 Oracle 安全
人力资源管理革新:6款系统一站式解决HR事务
**Zoho People、BambooHR、Workday、ADP Workforce Now和Oracle HCM Cloud是知名的人力资源管理系统。Zoho People提供模块化设计、移动应用和自动化工作流;BambooHR以用户友好界面和员工档案管理见长;Workday侧重全球化云解决方案和智能决策工具;ADP Workforce Now集成HR与薪资管理,强调合规性;Oracle HCM Cloud则以高度定制和分析工具闻名。这些系统各有特点,适用于不同规模和需求的企业。**
90 11
|
5月前
|
分布式计算 资源调度 Hadoop
Hadoop调度和资源管理
【7月更文挑战第14天】
60 2
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的人力资源管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的人力资源管理系统附带文章源码部署视频讲解等
50 2
|
6月前
|
机器学习/深度学习 人工智能 搜索推荐
人力资源管理(HRM)系统的未来:技术引领的变革浪潮
【6月更文挑战第24天】随着AI、大数据、云计算和移动技术的融合,HRM正转型为提升效率和员工体验的关键工具。AI助力智能决策,大数据驱动精准管理,云计算与移动技术实现无缝访问和远程操作。员工体验被置于设计核心,系统更人性化、个性化。未来趋势强调全面整合与协同工作,赋能企业高效运营。

相关实验场景

更多