大数据学习问题记录

一、知识点小结


1.1 多态的特点:
  • 变量的特点:

编译时看左边,运行时看左边。(变量没有多态性)

  • 方法的特点:

成员方法(无static):编译时看左边,运行时看右边。

静态方法(static):编译时看左边,运行时看左边。(静态方法无多态性)

1.2 方法的参数传递
  • 形参:

形式参数,指的是定义方法的时候,方法小括号中定义的参数。

  • 实参:

​ 实际参数,指的是调用方法的时候,传入小括号中的实际常量或变量。

注意:

​ 方法参数为基本数据类型时,形参和实参之间为值传递,形参的改变不会影响实参。

​ 方法参数为引用数据类型时,形参和实参之间为地址传递,形参的改变会影响实参。

1.3 HashMap和HashTable的区别
  • 不同点:

​ HashMap线程不安全,可以存储null的键和值,HashTable线程安全,不可以存储null的键和值。

  • 相同点:

​ 底层数据结构都是采取哈希表(数组+链表)实现的。

Hashtable JDK1.0,整个java的命名体系:JDK1.2

1.4 final,finally和finalize()的区别?
  • final:修饰类,方法,变量

  • finally:运用于处理异常中

  • finalize:Object类中的一个方法,当对象变成垃圾时,由GC调用该对象的此方法,回收资源

1.5 请求SSM请求乱码问题配置?
  • post:(在web.xml文件中配置如下属性)

    <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  • get:(在pom.xml文件tomcat插件中配置如下属性)

    <uriEncoding>UTF-8</uriEncoding>
    <useBodyEncodingForURI>true</useBodyEncodingForURI>
    
1.6 SpringMVC参数绑定?
  • request.getParameter()

  • 一个简单类型(基本类型或者String类型). int id

  • 多个简单类型. int id, String name, float price, String detail

  • 封装一个简单的JavaBean, 即: Item类.

  • @RequestParam, 可以保证我们形参的名字随便写

  • 封装复杂的JavaBean. 即: QueryVO#Item

  • 封装数组. 版本一: Integer[] arr, 版本二: QueryVO#ids

  • 封装集合. QueryVO#list

1.7 ECharts官网与下载地址
  • 官网:https://echarts.baidu.com/

  • 下载地址:https://echarts.baidu.com/download.html

1.8 Date格式
  • yyyy年MM月dd日 HH:mm:ss
1.9 Linux操作
  • 解压文件到指定位置:tar -zxvf xxxx.tar.gz -C 路径
  • 时间同步:https://www.cnblogs.com/summerdata/p/10984724.html
  • 杀掉80端口线程命令:fuser -k -n tcp 80
  • 查看nginx进程:ps -ef | grep nginx
1.10 网络编程-网络通信三要素
  • ip,端口号,传输协议(UDP,TCP)
1.11 HA机制的原理
  • 单点故障:一个服务或者软件有多个模块,其中一个出现故障导致整体不可用
  • 高可用:解决单点故障问题 让业务持续可用(namenode HA,resourcemanager HA)
  • 主备集群:主节点(active)和备份(standby)节点,解决单点故障根本
  • 容错failover:能够容忍错误的发生
    • task的最大重试次数:4
    • 容忍失败的task的比例:默认是0 . 意味着不管是maptask 还是reducetask 只要有一个task失败 整个MapReduce程序就是失败的
    • task的超时时间:默认10分钟。 超时指的是task处于卡住锁住的状态 既没有输入数据也么有输出数据
1.12 yarn Scheduler调度策略
  • FIFO Scheduler:先进先出策略。 所有的程序根据提交的时间进行排队 先提交的先执行

    缺点:前方的大job 会阻塞后续小job的执行

  • capacity Scheduler:容量调度。把整个集群的资源划分成不同的大小队列 大小job各自提交各自的队列

    缺点:空闲队列产生资源浪费

  • fair Scheduler:公平调度。 动态根据job大小调整资源

    缺点:动态调整都慢 需要等待。

1.13 hadoop常用操作
  • 开启hdfs,yarn,history :start-dfs.sh,start-yarn.sh,mr-jobhistory-daemon.sh start historyserver
  • 终止正在执行的job任务
    • hadoop job -list 查询job编号
    • hadoop job -kill job编号
1.14 Sql语句执行顺序
  • from

  • join

  • on

  • where

  • group by(开始使用select中的别名,后面的语句中都可以使用)

  • avg,sum(聚合函数)

  • having

  • select

  • distinct

  • order by

  • limit

1.15 Hive常用设置
  • 设置本地模式:set hive.exec.mode.local.auto=true;

  • 启动hive服务:

    • nohup /export/servers/hive/bin/hive --service metastore &
    • nohup /export/servers/hive/bin/hive --service hiveserver2 &
  • 开启分桶和设置MapReduce个数:

    set hive.enforce.bucketing = true;

    set mapreduce.job.reduces=N;

  • sql写法:

    需求:按照时间维度来统计独立访客及其产生的pv量(按照小时)

    数据表:dw_weblog_detail

    分组字段:时间维度(hour)、访客维度(remote_addr)

    度量值:count()

1.16 在企业中如何选择文件格式和压缩算法

​ 如果在hive中因为数据过多导致的磁盘空间被占用问题 在不改变数据前提下,可以使用不同的存储格式配合不同的算法优化存储空间。

​ 推荐:存储格式 ORC 压缩算法:snappy。

​ --指定为snappy 压缩

​ STORED AS orc tblproperties (“orc.compress”=“SNAPPY”);

​ --不指定 有没有压缩呢? 有默认压缩 zlib压缩

​ STORED AS orc;

​ --指定为none 表示不压缩

​ STORED AS orc tblproperties (“orc.compress”=“NONE”);

​ 扩展:如果企业中hive的数据都是二进制等格式的数据 或者是被压缩编码的数据。

​ insert 普通表 + select from;

1.17 shell脚本
  • 每隔1s往文件中循环追加时间:while true;do date >> /root/logs/test.log;sleep 1;done

  • Impala-shell:

    • refresh dbname.tablename增量刷新
    • invalidate metadata全量刷新
  • zookeeper启动关闭脚本:

    启动脚本
    #!/bin/bash
    for host in ${hosts[*]}
    do
     ssh $host "source /etc/profile;/export/servers/zookeeper/bin/zkServer.sh start"
    done
    
    关闭脚本
    #!/bin/bash
    hosts=(node-1 node-2 node-3)
    for host in ${hosts[*]}
    do
      ssh $host "/export/servers/zookeeper/bin/zkServer.sh stop"
    done
    
  • kafka启动关闭脚本:

    启动脚本
    #!/bin/bash
    brokers="node-1 node-2 node-3"
    for broker in $brokers
    do
            ssh $broker  "source /etc/profile;cd /export/servers/kafka_2.11-0.10.0.0;nohup bin/kafka-server-start.sh config/server.properties >/root/kafka.log 2>&1 &"
            echo "start $broker"
    done
    
    关闭脚本:
    #!/bin/bash
    brokers="node-1 node-2 node-3"
    for broker in $brokers
    do
            ssh $broker  "source /etc/profile;cd /export/servers/kafka_2.11-0.10.0.0;bin/kafka-server-stop.sh"
    done
    
1.18 安装flume注意事项
  • 在conf/flume-env.sh 导入java环境变量,保证flume工作的时候一定可以正确的加载到环境变量
  • 给flume-env.sh增加执行权限:chmod a+x flume-env.sh
1.19 Hive与Impala语法差异
  • hive支持:insert overwrite table t_test2 select * from t_test2 where id!=1;(使用overwrite删除id=1的数据)Impala可加可不加table。

  • group by 使用时,只能查询分组字段和聚合函数。

  • with t1 as (select * from itcast_t1),t2 as(select * from itcast_t2) select * from itcast_t3;

    with 子句后边必须使用select语句,如果没有查询语句会报错;
    后面的查询语句可以不使用with子句构建的临时表

  • Hive求同一列差值:select a.id,a.counter,b.counter-a.counter as counterDiffer from test1 a left join test1 b on a.id = b.id -1 order by a.id;

1.20 springboot学习地址:

​ https://blog.csdn.net/forezp/category_9268735.html

1.21 javaBean类转为Json
new ObjectMapper().writeValueAsString(userList);
1.22 java基础
  • 进制转换

    • 负数的二进制转换形式:绝对值二进制取反加一
    • 负数二进制的最高位是一
  • 常见编码:

    • ACSII(美国):0:48,A:65,a:97
    • 中文:GBK码表
    • 万国码:Unicode
  • JAVA基本数据类型所占字节数是多少?

    byte   1字节               				 short    2字节               
    int      4字节              				 long     8字节               
    char     2字节(C语言中是1字节)
    float    4字节               double   8字节               
    boolean  false/true(理论上占用1bit,1/8字节,实际处理按1byte处理)
    操作系统32位的时候,int 4字节,出于兼容性考虑,64位int也是4字节
    

二、问题汇总

2.1 idea连接mySQL遇见问题
Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' prope

解决地址:https://blog.csdn.net/liuqiker/article/details/102455077
2.2 WIN10安装MySql5.5最后一步未响应解决方法
https://blog.csdn.net/weixin_42738811/article/details/87298109
2.3 解决windows下nginx的安装使用及解决80端口被占用nginx不能启动的问题
https://blog.csdn.net/kevin860/article/details/82322522
2.4 解决Window上MapReduce运行IO异常解决
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

https://blog.csdn.net/Bazingalqq/article/details/88014734

2.5 解决Sqoop从hdfs导出到mysql中文乱码解决过程中,MapReduce卡死问题
  • bin/sqoop export \
    --connect "jdbc:mysql://node-1:3306/userdb?useUnicode=true&characterEncoding=utf-8" \
    --username root \
    --password root \
    --table student \
    --export-dir /student/
    
  • linux版本是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf
    win下的是my.ini,一般会在安装目录的根目录 vi /etc/my.cnf

  • 按照链接修改my.cnf:

    https://www.cnblogs.com/aljxy/p/3681338.html

2.6 Azkaban相关问题
  • Azkaban Flow Log无日志输出问题
    • 加载初始化mysql没有execution_logs,execution_jobs表,查看create.execution_logs.sql建表语句,创建该表
    • 会报error:1071,mysql字段设置太长,把name字段varchar改为240即可建表成功,解决无日志输出问题
  • 动态传参中文乱码:用notepad++将.sh和.job文件的编码格式改为UTF-8编码

  • Azkaban 动态传参shell:

    https://blog.csdn.net/Mask_V/article/details/84796876

  • 启动azkaban:

    • 先启动exec-server ,再启动web-server

    • 激活executor

      启动:bin/start-exec.sh

      curl -G “node-2:$(<./executor.port)/executor?action=activate” && echo

      Url:https://node-2:8443

  • azkaban邮箱发送(成功or失败)

    • 注册邮箱,启用POP3/SMTP服务:https://www.cnblogs.com/feifeicui/p/8572985.html

    • 修改web中的azkaban.properties 配置(修改完记得重启web)

      mail.sender=hds6172@163.com
      mail.host=smtp.163.com
      mail.user=hds6172@163.com
      mail.password=TIETAMCMVOFCKCTF(如输入密码报错:535,则改用授权码)
      
    1. 在azkaban执行任务前,配置Notification,配置任务成功发送邮箱,任务失败发送邮箱
2.7 解决hadoop出现Warning: fs.defaultFS is not set异常

https://blog.csdn.net/xiapi3/article/details/95014633

2.8 Hue安装问题
  • KeyError: “Couldn’t get user id for user hue”

    • hue安装到有mysql环境的节点
    • 添加用户 hue
      • useradd hue
      • passwd hue
  • hue启动:build/env/bin/supervisor

    页面访问 hue:http://node-1:8888/

2.9 oozie相关问题:
  • Oozie启动问题

    Error: IO_ERROR : java.io.IOException: Error while connecting Oozie server
    
    bin/oozied.sh start 
    页面访问:http://node-1:11000/oozie/
    出现此问题是忘记启动historyserver服务,启动则解决该问题
    
    
  • Oozie邮箱设置

    • 配置https://blog.csdn.net/u010770993/article/details/70312488
    • 在hue中workflow中配置邮箱流程
2.10 安装nginx+lua时提示
./configure: error: ngx_http_lua_module requires the Lua library

解决方案:
(1)yum install lua-devel -y
(2)https://blog.csdn.net/ygm_linux/article/details/81584382
2.11 Centos7离线安装cdh5.15.1
  • https://blog.csdn.net/qq_24817093/article/details/84138976
  • Centos6在software里面
2.22 Redis相关问题
  • 查看进程杀死:

    ps -ef | grep redis| grep -v grep | awk '{print $2}'|xargs kill -9
    
  • redis安装gem install redis报错,执行curl -sSL https://get.rvm.io | bash -s stable,报错curl: (7) couldn’t connect to host:

    手动官网安装ruby:https://blog.csdn.net/qq_36761831/article/details/105666960

2.23 kafka相关问题
  • kafka-eagel启动成功,访问web页面报错500
    • http://node-1:8048/ke
    • https://blog.csdn.net/weixin_45793819/article/details/105001763
    • 修改配置文件时vim system-config.properties ,用自带的数据库,不用mysql的数据库
  • 启动kafka(启动shell脚本1.17 shell脚本里面)

    • kafka集群依赖于zk集群,一定要保证zk集群的可用
    • 验证zk集群是否可用:bin/zkServer.sh status 一定要保证出现一个leader,其他的都是follower即可
    • cd /export/servers/kafka_2.11-0.10.0.0;
    • nohup bin/kafka-server-start.sh config/server.properties >/root/kafka.log 2>&1 &"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值