MR_Hive总结

数据准备:

【1】mysql数据库导出,以逗号间隔,方便后期解析

【2】提交服务器:rz 上传到Linux虚拟机中

【3】提交到集群中:hadoop fs –put emp.csv /input

hive:数据存储优先;RDBMS是数据查询优先

基础环境:

    -MySql关系型数据库

    -Hadoop集群

    -配置hive环境,修改

搁浅:

image

---注意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

       -image

       -image

       -image

配置Hadoop中core-site.xml中的内容:  

        image

启动:

【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异常处理

image

【1】RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

【2】非运行时异常 (编译异常): 是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常


4RF`]}VP~206KWJ1KF}C9NB

原文地址:https://www.cnblogs.com/macro-renzhansheng/p/13187635.html