• b0108 大数据集群-2021分布式A(手动3节点)-运维


    Spark

    Q1 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources   20210805

    描述

    刚装完spark分布式, 配置好了。准备测试, 在客户机hc2108打开一个spark-shell

    准备读取一个文件,并统计,结果报错了,如图

    val textFile2 = sc.textFile("file:///opt/spark-3.1.2-bin-hadoop3.2/README.md") //读取readme.md文件,linux上文件
    textFile2.count() //词条统计

     导致一直卡在这,结果出不来

    原因

    资源不足。 分布式集群的每台机器总共只有2G内存,启动spark后还剩下1G不到。

    SPARK_EXECUTOR_MEMORY 这个参数默认给1G内存,因为没有配置,就集群机器能够分配1G内存,才能跑程序。

    解决

    配置文件中添加参数,控制这个变量大小。还有driver内存

    SPARK_EXECUTOR_MEMORY=200m

    这样启动就没报错了

    # driver 默认1G,executor 默认1G, 2个参数至少 500m左右
    spark-shell --master spark://hc2111:7077 --driver-memory 500m --executor-memory 500m

    参考

    Zookeeper

    Q1 中文编码问题   20210803

    描述

     zookeeper 配置文件 zoo.cfg,里面有个参数的注释是中文, 命令行正常显示。

    但是 zookeeper 启动时 报错在日志文件中,读取参数导致解析混乱

     原因

    不知道是哪里编码没有匹配

    解决

    先去掉参数右边的中文注释

    Hive

    Q2 问题 SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 20210808

    描述

    在hive客户机 hc2107 执行 hive ,执行show database 报错

    原因:

    hive 获取不到元数据,在hc2107上的配置文件hive-site.xml是空的,如果在hc2110上执行hive 命令,可以通过这个配置文件获取元数据信息

    解决

    利用hive的 metastore服务。 

    在hc2110上执行命令开启

     在hc2107上的配置文件hive-stie.xml 添加服务器信息

    <!-- 本机作为客户端,连接这个hive服务器,通过它中转获取hive元数据。这是远程服务器的地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hc2110:9083</value>
    </property>

    Q1 问题: ....AuthorizationException): User: hadoop is not allowed to impersonate hadoop 20210802

    描述

    hc2110单节点上装完了hive, 启动hive服务器程序,  命令行下启动beeline

    执行 !connect jdbc:hive2://hc2110:10000

    输入用户 hadoop和密码, 报这个错误

    原因

    hadoop 集群增加了权限控制,不允许任意客户端连接,但是可以通过代理用户的形式,在 core-site.xml 中添加

    解决

    在 core-site.xml 中添加 以下参数,  形式如  hadoop.proxyuser.xxx.hosts,其中 xxx是 beeline 登录所在机器用户, 我这里是hadoop

    <!-- 用户hive beeline连接 用户权限控制 -->
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>

    将集群中所有机器的配置文件改动, 重启hadoop集群就可以了。 

    参考

    ref1 "hive启动beeline连接报错: User:....,   yunyexiangfeng, 2017/03/08"

    ref2 "beeline连接hiveserver2报错..., nobody, 2018/08/29"

    写满200篇博文再说
  • 相关阅读:
    mysql 使用 insert ignore into和unique实现不插入重复数据功能
    mysql 判断指定条件数据存不存在,不存在则插入
    Unity3D之如何将包大小减少到极致
    Unity3D–Texture图片空间和内存占用分析
    使用Unity3D的50个技巧:Unity3D最佳实践!
    Unity中的Path对应各平台中的Path
    unity 在移动平台中,文件操作路径详解
    unity Mathf 数学运算汇总
    解决ngui在3d场景中 点透的情况
    【整理】unity3d优化总结篇
  • 原文地址:https://www.cnblogs.com/sunzebo/p/15067532.html
Copyright © 2020-2023  润新知