ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-07-06 13:59:26  阅读:230  来源: 互联网

标签:wxw string sal Hadoop dept emp 人力 资源管理 name


Hadoop实验

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

实验背景

通过学习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日


实验概览

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

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

HDFS服务端口

HDFS本地目录

Hadoop启动脚本(完整路径)

Hadoop进程

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

根目录

(/user/hadoop/)

一级目录

公司名称

二级目录

部门名称

      三级目录

员工姓名

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

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

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

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

企业部门员工薪酬表(emp_sal_dept)

员工号

员工信息(emp)

薪酬(salary)

部门(dept)

姓名(name)

性别(gender)

职级(level)

基本薪酬(base)

奖金(bonus)

部门编号(no)

部门名称(name)

2019000000

Mary

F

M3

1

1000000

10

HR

?

?

?

?

?

?

?

?

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

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

字段说明:

员工号:<你的学号>

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

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

职级:<从下表中取值>

职级

描述

0

I

实习生

1

C1

普通员工1级

2

C2

普通员工2级

3

S1

高级员工1级

4

M1

管理员工1级

5

S2

高级员工2级

6

M2

管理员工2级

7

S3

高级员工3级

8

M3

管理员工3级

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

奖金:<你的奖金数值>

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

10

HR

20

MARKET

30

IT

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

获取你自己的所有信息

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

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

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

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

表类型:外部表

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

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

2019000000,Mary,F,M3,1,1000000,10,HR

2019999999,TanGuangyu,M,C1,1000,2000,20,MARKET

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

表数据文件位置: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

任务一:

HDFS服务端口

hdfs getconf -confkey fs.default.name

HDFS本地目录

hdfs dfs -ls

Hadoop启动脚本(完整路径)

cd hadoop ./sbin/start-dfs.sh

Hadoop进程

jps

任务二:

根目录

(/user/hadoop/)

一级目录

CQUST

二级目录

IT

      三级目录

wxw

创建:

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. 数据

企业部门员工薪酬表(emp_sal_dept)

员工号

员工信息(emp)

薪酬(salary)

部门(dept)

姓名(name)

性别(gender)

职级(level)

基本薪酬(base)

奖金(bonus)

部门编号(no)

部门名称(name)

2019000000

Mary

F

M3

1

1000000

10

HR

?

?

?

?

?

?

?

?

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

  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文件如下

2019000000,Mary,F,M3,1,1000000,10,HR

123,wxw,M,C1,1000,2000,20,MARKET

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

表数据文件位置: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);

每文一语

不骄不躁 一步一步开始新的征程

标签:wxw,string,sal,Hadoop,dept,emp,人力,资源管理,name
来源: https://blog.csdn.net/weixin_47723732/article/details/118077108

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有