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"

 

posted @ 2021-07-27 19:24  sunzebo  阅读(59)  评论(0编辑  收藏  举报