数据准备:
【1】mysql数据库导出,以逗号间隔,方便后期解析
【2】提交服务器:rz 上传到Linux虚拟机中
【3】提交到集群中:hadoop fs –put emp.csv /input
hive:数据存储优先;RDBMS是数据查询优先
基础环境:
-MySql关系型数据库
-Hadoop集群
-配置hive环境,修改
搁浅:
---注意dubg中查看文档格式问题;很容易出现格式转换的不对等
关闭安全模式:hdfs dfsadmin -safemode leave
实现简单的输入内容到文件:
-echo test > word //写入test到word文件
-hadoop fs -put word /download //将word文件放到 /download路径下
-rm -rf word //删除当前目录新建文件
迭代删除整个文件路径:hadoop fs -rmr /output
删除指定文件:hadoop fs –rm file
Hive:数据仓库平台
数据处理流程:
【1】数据采集:数据库、数据仓库、日志、网络爬虫采集
【2】数据清洗:缺失值;异常值:超出边界的值
【3】数据清洗策略:均值、中值、众数、删除、估算、提维度
MR编程实例
【1】在mr当中,所有的任务都是分布式执行的。
- Map阶段输出什么?
-怎么确定我们输出的是5个人(缓存redis,xxxCache)
-使用zookeeper协调任务
-读写hdfs里某个临时文件?
-
-MR中将运算阻塞改为IO阻塞,尽可能提升效率
一定要注意:数据倾斜问题!
Zookeeper最少需要3个集群节点!{所谓的伪分布式}
配置环境:
-解压文件到指定路劲:/hadoop :tar -zxf zookeeper-3.4.9.tar.gz + mv zookeeper-3.4.9 /hadoopserver/
-配置环境变量: vim /etc/profile
-export ZOOKEEPER_HOME=/hadoopserver/zookeeper-3.4.9
-:$ZOOKEEPER_HOME/bin
-source /etc/profile //配置文件生效
-注意:Zookeeper最少需要3个集群节点!
-zookeeper根目录下/conf路径中复制3份文件 : cp zoo_sample.cfg zoo03.cfg cp zoo_sample.cfg zoo02.cfg cp zoo_sample.cfg zoo01.cfg
-在根目录创建 service/data1 service/data2 service/data3
-分别对上面的3个路径data1/2/3中写入文件:echo 1 > myid echo 2 > myid echo 3 > myid
-修改conf/zoo03.cfg+zoo02.cfg+zoo01.cfg中的路径:
-修改:dataDir=/hadoopserver/zookeeper-3.4.9/service/data1
-添加三个服务器地址:
-server.1=192.168.92.102:2887:3887 //zookeeper的输入接口与输出接口
-server.2=192.168.92.102:2888:3888
-server.3=192.168.92.102:2889:3889-启动: zkServer.sh start zoo01.cfg zkServer.sh start zoo02.cfg zkServer.sh start zoo03.cfg
-连接客户端:zkCli.sh -server 192.168.92.102:2181
-h
Zookeeper应用:
- ls / 查看根目录 zookeeper
-create /mrtest mrtest 在根目录创建 /mrtest mrtest 子zookeeper
API应用:
-create
-getData
Hive数据仓库:实现将Hadoop上的数据操作与sql操作保持一致【本质还是Hadoop】
hive--->hadoop &&& 类似于: Spring ---> javaWeb
-hive支支持新增与查询,不支持删除与修改。
-hive无索引;数据规模达
hive环境配置:将压缩包解压到特定路径
-配置环境变量:同上。 HIVE_HOME; $HIVE_HOME/bin
-进入hive根目录,/conf路径下的 修改两个配置文件: hive-env/site.xml文件修改
-在目录创建/tmp,修改权限: chmod 777
配置Hadoop中core-site.xml中的内容:
启动:
【1】创建两个路径:hadoop fs -mkdir -p /user/hive/warehouse hadoop fs -mkdir -p /tmp/hive
【2】修改权限: hadoop fs -chmod -R 777 /user | /tmp
【3】到hive根路径: bin/schematool -initSchema -dbType mysql 初始化数据库
注意:删除lib目录中冲突的文件:log4j-api-2.4.1.jar
hive基本操作:
- show databases; use myscott; show tables;
- select * from dept;
-加载本地数据到数据库: load data local inpath ‘/tmp/dept.csv’ into table myscott.dept; //注意:路径要加单引号
-加载hdfs服务器数据: load data inpath '/home/hadoop/student_1' into table student;
-下载到本地数据: insert overwrite local directory '/tmp/hive_dept' select * from dept;
-从HDFS下载数据: insert overwrite directory '/hive_tmp' select * from student2;
-
- hive --service hiveserver2 &
- ps aux | grep hive // 查看当前运行hive进程
- beeline -u jdbc:hive2://localhost:10000 //采用jdbc协议进行访问
-
-
linux mysql服务启动:
ps -aux | grep mysql
service mysqld start
Java异常处理
【1】RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
【2】非运行时异常 (编译异常): 是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常