大数据基础课程设计(爬取数据、数据预处理、hadoop、hdfs、mapreduce、habase互传、Hive数据操作、mysql查询、数据可视化)

有不懂的问题可以留言或者评论,笨人也是初学者,有错误的地方也可以多多指出

这边也支持帮忙做课设,可以私信要求和内容,根据难度决定交的时间。

2.2 数据预处理

 爬数据基本用八爪鱼,简单易上手。


2.2.1保存数据集
$cd /usr/local
$sudo mkdir bdc
$sudo chown -R hadoop:hadoop ./bdc
$cd bdc
$mkdir ds
$cd /usr/local/bdc/ds
$ls
$head -5 _data.csv

2.2.2删除文件第一行记录
$sed -i '1d' _data.csv
$head -5_data.csv

2.2.3对字段进行预处理
$vim pre_deal.sh
#!/bin/bash
#下面设置输入文件,把用户执行pre_deal.sh命令时提供的第一个参数作为输入文件名称
infile=$1
#下面设置输出文件,把用户执行pre_deal.sh命令时提供的第二个参数作为输出文件名称
outfile=$2
#注意,最后的$infile> $outfile必须跟在}’这两个字符的后面
awk -F "," 'BEGIN{
srand();
        id=0;
            }
    {
        id=id+1
        print id"\t"$1"\t"$2"\t"$3"\t"$5substr($6,1,10)
    }' $infile> $outfile
$bash ./pre_deal.sh small_data.csv data_table.txt
$head -10 data_table.txt

3. HDFS 操作  
3.1 数据上传到 HDFS  
3.1.1  启动HDFS
$cd /usr/local/hadoop
$./sbin/start-all.sh
$jps
$cd /usr/local/hadoop

3.1.2  把data_table.txt上传到HDFS中
$./bin/hdfs dfs –mkdir -p /bdc/ds
$./bin/hdfs dfs -put /usr/local/bdc/ds/data_table.txt /bdc/ds

3.2 HDFS 编程  
3.2.1  eslipse 编程
代码文件在程序-java文件中
3.2.2检验是否上传成功
$./bin/hdfs dfs-cat /bdc/ds/data_table.txt | head -10

4. Mapreduce 数据分析  
4.1 统计分析工作不同工资出现的次数
jar包代码在程序
$./bin/hdfs dfs –mkdir input
$./bin/hdfs dfs -put /bdc/ds/data_table.txt input
$ ./bin/hadoop jar ./myapp/WordCount2.jar input output
$ ./bin/hdfs dfs -cat output/*

5. Hive 统计分析  
5.1. 本地数据或 HDFS 数据导入 Hive
$service mysql start
$cd /usr/local/hive
$./bin/hive 
$hive> create database db;
hive> use db;
hive>  CREATE EXTERNAL TABLE db.bigdata_user(id INT,add STRING,name STRING,money STRING,cate STRING ,degree STRING) COMMENT 'Welcome to xmudblab!' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/bdc/ds';
hive> use dblab; 
hive> show tables;
hive> show create table bigdata_user; //查看bigdata_user表的各种属性;
hive> desc bigdata_user;
hive> select * from bigdata_user limit 10;
hive> select behavior_type from bigdata_user limit 10;

5.2 Hive 统计分析
hive命令在另个文本文件

6. 数据互导  
6.1 Hive 预操作  
6.1.1 创建 Hive 表
hive>CREATE table db.user_action(id INT,add STRING,name STRING,money STRING,cate STRING,degree STRING) COMMENT 'Welcome to db!' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
$hdfs dfs -ls /user/hive/warehouse/db.db/user_action
6.1.2 数据加载到 Hive
$INSERT OVERWRITE TABLE db.user_action select * from db.bigdata_user
hive> select * from user_action limit 10;

6.2 数据从 Hive 导入到 Mysql  
6.2.1将生成的临时表导入mysql
mysql –u root –p 
mysql> show databases; #显示所有数据库
mysql> create database db; #创建dblab数据库
mysql> use db;
mysql>CREATE TABLE `db`.`user_action5` (`id` varchar(50),`addr` varchar(50),`name` varchar(50),`money` varchar(50),`cate` varchar(50),`degree` varchar(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql>show variables like "char%";
mysql> exit;
6.2.2导入数据
$cd /usr/local/sqoop
$ ./bin/sqoop export --connect jdbc:mysql://localhost:3306/db --username root --password hadoop --table user_action5 --export-dir '/user/hive/warehouse/db.db/user_action' --fields-terminated-by '\t'; 
6.2.3检查是否导入成功
$mysql -u root -p
mysql> use dblab;
mysql> select * from user_action limit 10;

6.3 数据从 Mysql 导入到 Hbase  
6.3.1开启hbase服务并进入HBase Shell
$cd /usr/local/hbase
$./bin/start-hbase.sh
6.3.2创建表并导入数据
hbase> create 'user_action', { NAME => 'f1', VERSIONS => 5}
$cd /usr/local/sqoop
$./bin/sqoop  import  --connect jdbc:mysql://localhost:3306/db --username root --password hadoop --table user_action5 --hbase-table user_action --column-family f1 --hbase-row-key id --hbase-create-table -m 1
hbase> scan 'user_action',{LIMIT=>10}

6.4 使用 Hbase Java API 将数据从本地导入到 Hbase  
6.4.1.数据准备
$cd /usr/local/bdc/ds
$/usr/local/hadoop/bin/hdfs dfs -get /user/hive/warehouse/db.db/user_action .
$cat ./user_action/* | head -10   #查看前10行数据
$cat ./user_action/00000* > user_action.output 
$head user_action.output
6.4.2 编写数据导入程序
在java程序中
6.4.3 数据导入
$hbase> truncate 'user_action'
$/usr/local/hadoop/bin/hadoop jar /usr/local/bdc/hbase/ImportHBase2.jar ImportHBase /usr/local/bdc/ds/user_action.output

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值