大数据项目开发实训报告

  • 一、Hadoop环境搭建
    • 1: jdk的安装
      • 1):在linux系统下的opt目录下创建software 和 module 两个目录
      • 2):利用filezilla工具将 jdk、hadoop-2.5.0-cdh5.3.6.tar.gz 导入到opt目录下面的software文件夹下面
      • 3)在linux下查看是否上传成功
      • 4)解压jdk到/opt/module目录下
      • 5)配置jdk环境变量
    • 2: Hadoop
      • 1)解压安装文件到module下面
      • 2)配置/opt/module/hadoop-2.5.0-cdh5.3.6/etc/hadoop中的hadoop-env.sh
      • 3)配置core-site.xml
      • 4)配置:hdfs-site.xml
      • 5)Slaves(配置哪几台是datanode)
      • 6) 配置yran
      • 7)mapreduce
    • 3: zookeeper搭建
      • 1)上传zookeeper-3.47.tar.gz到hadoop101主机software目录下
      • 2)解压文件到module下:
      • 3)在hadoop101下 进入zookeeper-3.4.7.tar.gz主目录下的conf目录 复制配置文件并配置
      • 4)启动zookeeper
    • 4: 分发文件
    • 5: 免密登录
      • 1)无秘钥配置
      • 2)生成公钥和私钥
      • 3)将公钥拷贝到要免密的目标机器上即可
    • 6: 集群测试
      • 1) 启动
  • 二、数据爬取
    • 1:MongoDB安装
      • 1)下载页面
      • 2)安装:
      • 3)安装可视化工具RObo 3T:
    • 2:创建项目
    • 3:定义items.py
    • 4: 编写spider文件
    • 5:存储数据到MongoDB
    • 6:设置setting.py
  • 三、数据存储
    • 1:导出数据
    • 2:安装fluem
      • 1) 上传apache-flume-1.6.0-bin.tar.gz 到hadoop101的software下
      • 2)解压:
      • 3)在conf目录下 创建一个配置文件(名字自取即可)
      • 4)编辑配置文件
    • 3上传数据
      • 1) 启动hadoop集群
  • 四、Hive和sqoop
    • 1:Hive环境搭建
      • 1) 上传hive-0.13.1-cdh5.3.6.tar.gz 到hadoop101的software
      • 2)解压HIve到安装目录:
      • 3)重命名配置文件
      • 4)修改hive-env.sh
      • 5)安装Mysql
      • 6)配置Mysql
      • 7) 修改hive-site.xml
      • 8)修改hive-log4j.properties
      • 9)拷贝数据库驱动包到Hive根目录下的lib文件夹(hive去操作MySQL需要用到)
      • 10)启动Hive
      • 11)修改HDFS系统中关于HIve的一些目录权限
      • 12)显示数据库名称以及字段名称
    • 2 :sqoop搭建
      • 1)上传sqoop-1.4.5-cdh5.3.6.tar.gz到hadoop101的software下
      • 2)解压 到module下
      • 3)配置文件
  • 五、数据分析可视化
    • 1: 启动hive
    • 2 :新建数据库
    • 3 :新建表
    • 4:从本地导入数据
    • 5:岗位薪资数据提取
      • 1)提取三个职位的数据到新的表中
      • 2)数据切分1
      • 3)数据切分2
      • 4)最大值 最小值 平均值
    • 6、岗位需求分析
      • 1)数据分析
      • 2)查询结果导入到mysql
    • 7、岗位薪资经验分析
    • 1)数据提取
      • (1)建表sjfx1
      • (2)插入数据
    • 2)数据切分
      • (1)建表sjfx2
      • (2)插入数据
      • (3)第二次切分
    • 3)最大最小平均值
      • (1)建表
      • (2)查询结果导入到mysql
    • 8、 可视化
      • 1)薪资水平:
      • 2)岗位统计:
    • 3)三年经验薪资水平:

一、Hadoop环境搭建

"三台虚拟机 主机名分别为: hadoop101 hadoop102 hadoop103"
集群规划
hadoop101 hadoop102 hadoop103

修改主机名
进入linux下的/etc/hostname
在文件中写入 hadoop101
其他两台同理即可

1: jdk的安装

1):在linux系统下的opt目录下创建software 和 module 两个目录

mkdir module
mkdir software

2):利用filezilla工具将 jdk、hadoop-2.5.0-cdh5.3.6.tar.gz 导入到opt目录下面的software文件夹下面

3)在linux下查看是否上传成功

4)解压jdk到/opt/module目录下

 tar -zxvf jdk-8u121-linux-x64.gz -C /opt/module/

5)配置jdk环境变量

 (1)获取jdk的路径pwd(2) 测试jdk是否安装成功
java-version

2: Hadoop

1)解压安装文件到module下面

 tar -zxf hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/module/

2)配置/opt/module/hadoop-2.5.0-cdh5.3.6/etc/hadoop中的hadoop-env.sh

(1)linux系统中获取jdk的路径

echo $JAVA_HOME
(2)修改hadoop-env.sh中的JAVA_HOME路径:
export JAVA_HOME=/opt/module/jdk1.8.0_121

3)配置core-site.xml

 <!-- 指定HDFS中NameNode的地址 -->
<property><name>fs.defaultFS</name><value>hdfs://hadoop101:9000</value>
</property><!-- 指定hadoop运行时产生文件的存储目录 -->
<property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
</property>

4)配置:hdfs-site.xml

<!-- 指定HDFS副本的数量 --><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop103:50090</value></property>

5)Slaves(配置哪几台是datanode)

     hadoop101 hadoop102hadoop103

6) 配置yran

(1) yran.enx.sh

export JAVA_HOME=/opt/module/jdk1.8.0_121

(2) yarn.site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>hadoop102</value></property></configuration>

7)mapreduce

(1)mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_121

(2)mapred-site.xml

<configuration>
<!-- 指定mr运行在yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

3: zookeeper搭建

1)上传zookeeper-3.47.tar.gz到hadoop101主机software目录下

2)解压文件到module下:

tar -zxvf zookeeper-3.4.7.tar.gz /opt/module

3)在hadoop101下 进入zookeeper-3.4.7.tar.gz主目录下的conf目录 复制配置文件并配置

cp zoo_sampl.cfg zoo.cfg
vi zoo.cfg
dataDir=/opt/software/zookeeper-3.4.7/tmp
clientPort=2181
server.1=192.168.60.101:2888:3888
server.2=192.168.60.102:2888:3888
server.3=192.168.60.103:2888:3888

在hadoop101的zookeeper-3.4.7主目录下面,创建目录tmp

 mkdir tmp

进入到tmp目录创建myid文件 编辑内容为 1

分发文件之后 在hadoop102 和103 上进行同样的操作 (在hadoop101的zookeeper-3.4.7主目录下面,创建目录tmp 在tmp下创建myid 并编辑内容为2和3)

4)启动zookeeper

在每一台机器上都要启动zk的服务端
进入zookeeper-3.4.7:

bin/zkServer.sh start

4: 分发文件

利用scp将 hadoop101中/opt/module 和/opt/softwae 文件拷贝到hadoop102 和hadoop103上

scp -r /opt/module/  root@hadoop102:/optscp -r /opt/software/  root@hadoop102:/optscp -r /opt/module/  root@hadoop103:/optscp -r /opt/software/  root@hadoop103:/opt

5: 免密登录

SSH无密码登录

1)无秘钥配置

cd ~/.ssh

2)生成公钥和私钥

ssh-keygen -t rsa
然后连续敲三个回车 就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

3)将公钥拷贝到要免密的目标机器上即可

ssh-copy-id 192.168.60.101(目标机器的ip)

6: 集群测试

1) 启动

如果是第一次启动 需要 在hadoop-2.5.0-cdh5.3.6格式化namenode

 bin/hdfs namenode -format

(1)启动HDFS:

sbin/start-yarn.sh

可以用jps命令查看是否启动成功
(2)启动yarn

sbin/start-yarrn.sh

注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。 所以在这里我们需要在hadoop102 上启动yarn

二、数据爬取

1:MongoDB安装

1)下载页面

https://www.mongodb.com/(下载版本不要太新也不要太旧)

2)安装:

在左下角出现install MongoDB Compass(可视化工具)的时候,将前面的√去掉。如果不去掉,安装过程十分漫长。后续可以重新安装可视化工具
创建数据库存储目录 :F:\MongoDB\data

启动MongoDB服务器

cd E:\MongoDB\Server\4.0\bin
mongod.exe --dbpath = E:\MongoDB\Server\4.0\data\log -- logpath = E:\MongoDB\Server\4.0\data\log

3)安装可视化工具RObo 3T:

下载地址:https://robomongo.org

2:创建项目

打开cmd命令行;
创建爬虫项目:

scrapy satrtproject scrapyshixun
cd scrapyshixun
scrapy genspider -t crawl qcwy 51job.com

3:定义items.py

4: 编写spider文件



5:存储数据到MongoDB

编写piplines.py:

6:设置setting.py

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36'
ROBOTSTXT_OBEY = False
DOWNLOAD_DELAY =1
COOKIES_ENABLED = FalseITEM_PIPELINES = {'scrapyshixun.pipelines.ScrapyshixunPipeline': 300,
}

三、数据存储

1:导出数据

MongoDB中的数据:

从MongoDB中导出数据 :
打开cmd命令行
进入到MongoDB的bin目录下:
E:\MongoDB\Server\4.0\bin
mongoexport -d 数据库名 -c 表名 --csv -f 字段名称 -o 文件名

2:安装fluem

1) 上传apache-flume-1.6.0-bin.tar.gz 到hadoop101的software下

2)解压:

tar -zxvf apache-flume-1.6.0-bin.tar.gz /opt/module

3)在conf目录下 创建一个配置文件(名字自取即可)

4)编辑配置文件

#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir = /opt/data/
#描述sink
a1.sinks.s1.type=HDFS
a1.sinks.s1.hdfs.path=hdfs://192.168.60.101:9000/flume
#上传文件的前缀
a1.sinks.s1.hdfs.filePrefix = upload-
#是否按照时间滚动文件夹
a1.sinks.s1.hdfs.round = true
#是否使用本地时间戳
a1.sinks.s1.hdfs.useLocalTimeStamp = true
#设置文件类型 可支持压缩
a1.sinks.s1.hdfs.fileType=DataStream
#多久生成一个新的文件
a1.sinks.s1.hdfs.rollInterval = 30
#设置每个文件的滚动大小大概是128M
a1.sinks.s1.hdfs.rollSize = 134217700
#文件的滚动与Event数量无关
a1.sinks.s1.hdfs.rollCount = 0#描述内存channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
#位channel 绑定 source和sink
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1

如果报错 是因为flume缺少相关hadoop的依赖jar包 将hadoop的jar包都拷贝到fluem的lib目录下

3上传数据

1) 启动hadoop集群

进入fluem的bin目录下

./flume-ng agent --conf ../conf --conf-file ../conf/qcwy_template.conf --name a1 -Dflume.root.logger=INFO,console

启动后再开启一个窗口 进入到预先建立好的fluemdata下 把qcwy.txt上传到此目录下

监控变化:

HDFS上的结果:

四、Hive和sqoop

1:Hive环境搭建

1) 上传hive-0.13.1-cdh5.3.6.tar.gz 到hadoop101的software

2)解压HIve到安装目录:

tar -zxf /opt/software/hive-0.13.1-cdh5.3.6.tar.gz -C /opt/module

3)重命名配置文件

mv hive-default.xml.template hive-site.xml
mv hive-env.sh.template hive-env.sh

4)修改hive-env.sh

JAVA_HOME=/opt/module/jdk1.8.0_121
HADOOP_HOME=/opt/module/hadoop-2.5.0-cdh5.3.6
#hive启动加载的配置文件目录
export HIVE_CONF_DIR=/opt/module/hive-0.13.1-cdh5.3.6/conf

5)安装Mysql

su - root
yum -y install mysql mysql-server mysql-devel
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpmyum -y install mysql-community-server

如果使用离线绿色版本(免安装版本)需要手动初始化Mysql数据库

6)配置Mysql

(1)开启Mysql服务
service mysqld start
(2) 设置root用户密码
mysqladmin -u root password ‘root’
(3) 为用户以及其他机器节点授权(让所有机器都有Mysql数据库的权限)
进入MySQL: mysql -u root -p
mysql> grant all on . to root@‘hadoop102’ identified by ‘123456’;
grant all on . to root@‘hadoop103’ identified by ‘000000’;
给mysqlserver也需要授权(也就是自身也需要授权)

7) 修改hive-site.xml

 <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop101:3306/metastore?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>root</value><description>password to use against metastore database</description></property>

8)修改hive-log4j.properties

hive.log.dir=/opt/module/hive-0.13.1-cdh5.3.6/logs

9)拷贝数据库驱动包到Hive根目录下的lib文件夹(hive去操作MySQL需要用到)

cp -a mysql-connector-java-5.1.27-bin.jar /opt/module/hive-0.13.1-cdh5.3.6/lib/

10)启动Hive

bin/hive

11)修改HDFS系统中关于HIve的一些目录权限

/opt/module/hadoop-2.5.0-cdh5.3.6/bin/hadoop fs  -chmod 777 /tmp/
/opt/module/hadoop-2.5.0-cdh5.3.6/bin/hadoop fs -chmod 777 /user/hive/warehouse

12)显示数据库名称以及字段名称

hive-site.xml

<!-- 是否在当前客户端中显示查询出来的数据的字段名称 --><property><name>hive.cli.print.header</name><value>true</value><description>Whether to print the names of the columns in query output.</description></property><!-- 是否在当前客户端中显示当前所在数据库名称 --><property><name>hive.cli.print.current.db</name><value>true</value><description>Whether to include the current database in the Hive prompt.</description></property>

2 :sqoop搭建

1)上传sqoop-1.4.5-cdh5.3.6.tar.gz到hadoop101的software下

2)解压 到module下

tar -zxf /opt/software/sqoop-1.4.5-cdh5.3.6.tar.gz -C /opt/module

3)配置文件

(1)进入sqoop-env.sh

#export HADOOP_COMMON_HOME
export HADOOP_COMMON_HOME=/opt/module/hadoop-2.5.0-cdh5.3.6
#Set path to where hadoop-*-core.jar is available
#export HADOOP_MAPRED_HOME
export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.5.0-cdh5.3.6
#Set the path to where bin/hive is available
#export HIVE_HOME
export HIVE_HOME=/opt/modulehive-0.13.1-cdh5.3.6#Set the path for where zookeper config dir is
#export ZOOCFGDIR
export ZOOCFGDIR=/opt/module/zookeeper-3.4.5-cdh5.3.6
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.5-cdh5.3.6

(2)拷贝jdbc驱动到sqoop的lib下

cp -a mysql-connector-java-5.1.27-bin.jar /opt/modules/sqoop-1.4.5-cdh5.3

(3)启动sqoop

 bin/sqoop

(4) 测试sqoop是否能够连接成功

   bin/sqoop list-databases --connect jdbc:mysql://hadoop101:3306/metastore --username root --password root

五、数据分析可视化

1: 启动hive

bin/hive

2 :新建数据库

create database db_qcwy;
use db_qcwy;

3 :新建表

create table if not exists db_qcwy_demo(paylevel string,jobtitle string,company string,workexperience string,educational string ,jobskill string,jobcontent string)row format delimited fields terminated by ',';

4:从本地导入数据

load data local inpath '/opt/data/qcwy.txt' into table db_qcwy_demo;

5:岗位薪资数据提取

1)提取三个职位的数据到新的表中

(1)新建一个名为fenxi1的表来存储提取出来的数据:

create table fenxi1 as select jobname,salary from db_qcwy_demo where jobname like '%数据分析%' and salary like '%千/月%';


查询前十条数据:

select * from fenxi1 limit 10;


(2)新建一个名为caiji1的表来存储提取出来的数据:

create table caiji1 as select jobname,salary from db_qcwy_demo where jobname like '%数据采集%' and salary like '%千/月%';


查询前十条数据:

select * from caiji1 limit 10;


(3)新建一个名为kaifa1的表来存储提取出来的数据:

create table kaifa1 as select jobname,salary from db_qcwy_demo where jobname like '%大数据开发%' and salary like '%千/月%';


查询前十条数据:

select * from kaifa1 limit 10;

2)数据切分1

(1) 建立一个新表:
数据采集:

create table caiji2(jobname string,min_salary int, max_salary string)row format delimited fields terminated by '\t';

数据分析:

create table fenix2(jobname string,min_salary int, max_salary string)row format delimited fields terminated by '\t';

大数据开发:

create table kaifa2(jobname string,min_salary int, max_salary string)row format delimited fields terminated by '\t';

(2)插入第一次切分出来的数据
数据采集:

insert into table caiji2 select jobname,Split(caiji1.salary,'\-')[0],Split(caiji1.salary,'\-')[1] from caiji1;


数据分析:

insert into table fenxi2 select jobname,Split(fenxi1.salary,'\-')[0],Split(fenxi1.salary,'\-')[1] from fenxi1;

数据开发:

insert into table kaifa2 select jobname,Split(kaifa1.salary,'\-')[0],Split(kaifa1.salary,'\-')[1] from kaifa1;

3)数据切分2

(1)数据采集
建立表caiji3

create table caiji3(jobname string,min_salary int, max_salary int)row format delimited fields terminated by '\t';

插入数据

insert into table caiji3 select jobname,min_salary,Split(caiji2.max_salary,'\千')[0]as max_salary from caiji2;


查看结果:

数据分析
建立表fenxi3

create table fenxi3(jobname string,min_salary int, max_salary int)row format delimited fields terminated by '\t';

插入数据

insert into table fenxi3 select jobname,min_salary,Split(fenxi2.max_salary,'\千')[0]as max_salary from fenxi2;


查看结果:

数据开发:
建立表kaifa3:

create table kaifa3(jobname string,min_salary int, max_salary int)row format delimited fields terminated by '\t';

插入数据:

insert into table kaifa3 select jobname,min_salary,Split(kaifa2.max_salary,'\千')[0]as max_salary from kaifa2;


查看结果:

4)最大值 最小值 平均值

数据采集:
建立表caiji4

create table caiji4(jobname string,min_salary int, max_salary int, avg_salary int)row format delimited fields terminated by '\t';

求出每一条数据的平均值:

insert into table caiji4 select jobname,min_salary,max_salary ,((max_salary + min_salary) /2 )as avg_salary from caiji3;

建立表caiji5用来存储最大值最小值平均值

create table caiji5(min_salary int,max_salary int,avg_salary int)row format delimited fields terminated by '\t';

插入数据 采用round函数限制小数位数

insert into table caiji5 select min(caiji4.min_salary), max(caiji4.max_salary),ROUND(avg(caiji4.avg_salary),2) from caiji4;


查询结果导入到mysql

sqoop export --connect "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" --username root --password root --table caiji5 --fields-terminated-by '\001' --export-dir '/user/hive/warehouse/db_qcwy/caiji5';

(这里讲的是"数据采集"这个职位的分析过程,"数据分析"和"数据开发"两个职位和数据分析的步骤一样 在这里也就不做赘述了)

6、岗位需求分析

1)数据分析

(1)成都

create table fxcd (count int) row format delimited fields terminated by '\t';
insert into table fxcd select count(*) from db_qcwy_demo where jobname like '%数据分析%' and address like '%成都%'


(2)上海

create table fxsh (count int) row format delimited fields terminated by '\t';
insert into table fxcd select count(*) from db_qcwy_demo where jobname like '%数据分析%' and address like '%上海%'

(3)深圳

create table fxsz (count int) row format delimited fields terminated by '\t';
insert into table fxcd select count(*) from db_qcwy_demo where jobname like '%数据分析%' and address like '%深圳%'

(4)广州

create table fxgz (count int) row format delimited fields terminated by '\t';
insert into table fxcd select count(*) from db_qcwy_demo where jobname like '%数据分析%' and address like '%广州%'

(5)北京

create table fxbj (count int) row format delimited fields terminated by '\t';
insert into table fxcd select count(*) from db_qcwy_demo where jobname like '%数据分析%' and address like '%北京%'

(6)汇总:

create table fx_all (cd_count int,sh_count int,sz_count int,gz_count_int,bj_count int) row format delimited fields terminated by '\t';
insert into table fx_all (select count from fxcd) as cd_count,(select count from fxsh) as sh_count,(select count from fxsz) as sz_count,(select count from fxgz) as gz_count,(select count from fxbj) as bj_count,;

2)查询结果导入到mysql

数据分析

sqoop export --connect "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" --username root --password root --table fxcd --fields-terminated-by '\001' --export-dir '/user/hive/warehouse/db_qcwy/fxcd';

(这里讲的是"数据分析"这个职位的分析过程,"数据采集"和"数据开发"两个职位和数据分析的步骤一样 在这里也就不做赘述了)

7、岗位薪资经验分析

1)数据提取

(1)建表sjfx1

create table sjfx1(jobname string,salary string,experience string)row format delimited fields terminated by '\t';

(2)插入数据

insert into table sjfx1 select db_qcwy_demo.jobname,db_qcwy_demo.salary ,db_qcwy_demo.experience from db_qcwy_demo where db_qcwy_demo.jobname like '%数据分析%' and salary like '%千/月%' and experience like'%1年经验%' or  experience like'%1年经验%' or  experience like'%2年经验%' or  experience like'%3年经验%';

2)数据切分

(1)建表sjfx2

create table sjfx2(jobname string,min_salary int, max_salary int, experience string)row format delimited fields terminated by '\t';

(2)插入数据

insert into table sjfx2 select jobname,Split(sjfx1.salary,'\-')[0],Split(sjfx1.salary,'\-')[1] ,experience from sjfx1;

(3)第二次切分

建表sjfx3

create table sjfx3(jobname string,min_salary int, max_salary int ,experience string)row format delimited fields terminated by '\t';

插入数据

insert into table sjfx3 select jobname,min_salary,Split(sjfx2.max_salary,'\千')[0] as max_salary ,experience stringfrom sjfx2;

3)最大最小平均值

(1)建表

建表sjfx4

create table sjfx4(jobname string,min_salary int, max_salary int, avg_salary int,experience string)row format delimited fields terminated by '\t';

插入数据 求出每一条数据的平均值

insert into table sjfx4 select jobname,min_salary,max_salary ,((max_salary + min_salary) /2 )as avg_salary ,experience string from sjfx3;

建表sjfx5

create table sjfx5(min_salary int,max_salary int,avg_salary int,experience string)row format delimited fields terminated by '\t';

插入数据 求出平均值 round函数限制小数位数为2

insert into table sjfx5 select min(sjfx4.min_salary), max(sjfx4.max_salary), ROUND(avg(sjfx4.avg_salary),2) from sjfx4;

(2)查询结果导入到mysql

mysql 里面建表和hive必须一样
导入数据

sqoop export --connect "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" --username root --password root --table sjfx5 --fields-terminated-by '\t' --export-dir '/user/hive/warehouse/db_qcwy/sjfx5';

(这里讲的是"数据分析"这个职位的分析过程,"数据采集"和"数据开发"两个职位和数据分析的步骤一样 在这里也就不做赘述了)

8、 可视化

1)薪资水平:

数据采集:

数据分析:

数据开发:

2)岗位统计:


3)三年经验薪资水平:

按照地区划分:

大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化相关推荐

  1. 使用Python爬取51job招聘网的数据

    使用Python爬取51job招聘网的数据 进行网站分析 获取职位信息 存储信息 最终代码 进行网站分析 进入https://www.51job.com/这个网站 我在这就以python为例搜索职位跳 ...

  2. python爬取前程无忧招聘网站数据搭建Hadoop、Flume、Kafka、Spark用Hive做数据分析Sqoop存储到Mysql并实现可视化

    文章目录 一.项目总体要求 二.环境搭建 1.安装包准备 2.安装jdk (1)查询是否安装java (2)卸载jdk (3)安装jdk (4)配置jdk环境变量 3.配置ssh免密登录 (1)进入到 ...

  3. 好程序员大数据笔记之:Hadoop集群搭建

    好程序员大数据笔记之:Hadoop集群搭建在学习大数据的过程中,我们接触了很多关于Hadoop的理论和操作性的知识点,尤其在近期学习的Hadoop集群的搭建问题上,小细节,小难点拼频频出现,所以,今天 ...

  4. 大数据Hadoop集群搭建

    大数据Hadoop集群搭建 一.环境 服务器配置: CPU型号:Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz CPU核数:16 内存:64GB 操作系统 版本:CentO ...

  5. 大数据 -- Hadoop集群搭建

    Hadoop集群搭建 1.修改/etc/hosts文件 在每台linux机器上,sudo vim /etc/hosts 编写hosts文件.将主机名和ip地址的映射填写进去.编辑完后,结果如下: 2. ...

  6. 【大数据实战】Docker中Hadoop集群搭建

    目录 Docker中Hadoop集群搭建 环境 网络设置 安装docker 安装OpenSSH免密登录 Ansible安装 软件环境配置 配置hadoop运行所需配置文件 Hadoop 启动 问题 D ...

  7. 不看就亏系列!这里有完整的 Hadoop 集群搭建教程,和最易懂的 Hadoop 概念!| 附代码...

    作者 | chen_01_c 责编 | Carol 来源 | CSDN 博客 封图 | CSDN付费下载于视觉中国 hadoop介绍 Hadoop 是 Lucene 创始人 Doug Cutting, ...

  8. Hadoop详解(五)——ZooKeeper详解,ZooKeeper伪分布搭建和集群搭建,Hadoop集群搭建,sqoop工具的使用

    ZooKeeper简介 什么是ZooKeeper? ZooKeeper是Google的Chubby一个开源的实现,是Hadoop分布式协调服务. 它包含了一个简单的原语集,分布式应用程序可以基于它实现 ...

  9. Hadoop集群搭建之Hadoop组件安装

    兵马未动,粮草先行 --汉语成语 系列文章目录 Hadoop集群搭建之Linux系统安装 Hadoop集群搭建之Hadoop组件安装 文章目录 系列文章目录 前言 一.IP和主机名称配置 (一)Had ...

最新文章

  1. GitHub防黑客新措施:弃用账密验证Git操作,改用token或SSH密钥,今晚0点执行
  2. python monkey_解决python调用monkeyrunner的各种各样问题
  3. gwt入门和进阶_GWT入门
  4. 解决:java.lang.NoSuchMethodException: gentle.entity.User.<init>()
  5. AE域名,沙漠之花阿联酋的专属域名-域名百科
  6. HDU - 4456 Crowd
  7. 顶级 Java 源码教程项目大汇总
  8. 2020年物联网平台调研报告
  9. wordpress插件_哪个是最好的WordPress画廊插件? (性能比较)
  10. C语言引用方式调用函数
  11. 教你做表格(史上最全)
  12. “创享杯”第一届电子数据取证线上大比武答案(自做)
  13. LoadRunner Error -27792: Failed to connect to server
  14. 爬虫—dy直播各个类别下直播数据
  15. 承接WEB应用开发、软件开发、网站开发
  16. 网络工程师能干到多大?网络工程师是不是青春饭?
  17. 如何使用Python实现支付宝在线支付?商家:我人傻了
  18. WRF应用:天气预报、模拟分析观测气温、降水、风场、水汽和湿度、土地利用变化、土壤及近地层能量水分通量、土壤、水体、植被等相关气象变量
  19. matlab中遍历数组元素
  20. 成都拓嘉启远:拼多多活动主图该怎样制作

热门文章

  1. Python工程师之JA3 指纹
  2. 荣耀手表gspro支持鸿蒙吗,数码知识:荣耀手表gspro可以装APP吗是否支持第三方软件安装...
  3. 深入浅出谈敏捷 - 为什么“敏捷”
  4. 真正的无人驾驶汽车何时实现?或许需要20年
  5. 网络安全之电信诈骗的正确防范
  6. DoYourData Super Eraser for Mac(数据永久删除工具)破解版
  7. python爬虫下载模块_python爬虫——下载ted视频
  8. 在MFC对话框中显示图片的三种方法(有两种使用OpenCv)
  9. 【我所認知的BIOS】—SMM (SYSTEM MANAGEMENT INTERRUPT )
  10. 游戏人工智能之状态驱动智能体改进(三)