大数据学习问题记录

    技术2022-07-15  56

    一、知识点小结


    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,则改用授权码) 在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 huepasswd 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/84138976Centos6在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/kehttps://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 &"
    Processed: 0.012, SQL: 9