大数据常见运维问题汇总

大数据常见运维问题汇总

其他安装问题:

1.IDEA安装与配置

IntelliJ IDEA使用教程 (总目录篇)_请叫我大师兄-CSDN博客_intellijidea使用教程

2.IntelliJ IDEA 修改maven为阿里云仓库

Idea 修改默认的Maven配置及修改为阿里源_一个爱搞技术的C.的博客-CSDN博客_idea maven 修改源

3.Mysql安装:CentOS7安装MySQL(完整版)_24只羊羊羊-CSDN博客_centos7安装mysql

4.CentOS7配置NAT模式网络详细步骤(亲测版)CentOS7配置NAT模式网络详细步骤(亲测版)_Jackson_mvp的博客-CSDN博客_centos7nat网络配置

5.解决Xshell连接虚拟机很慢:

vi /etc/ssh/sshd_config 把UseDNS yes注释解除,改为UseDNS no

systemctl restart sshd.service

6.进入hive 无法删除 ---会话选修--linux --取消 ANS前的对号,否则字体变颜色

Hive中jline.jar与Hadoop中的jline.jar版本不同,启动hive出错_唤不醒的梦-CSDN博客


大数据运维问题:

hadoop:

1.集群配置好开启环境jps,但是少一个node?

解决办法:

  1. 关闭集群:sbin/stop-all.sh【只在master上操作】
  2. 删除/usr/local/src/hadoop-2.6.1/dfs/name 下面文件 【每个节点操作】
  3. 删除/usr/local/src/hadoop-2.6.1/dfs/data 下面文件 【每个节点操作】
  4. 删除/usr/local/src/hadoop-2.6.1/tmp 下面文件 【每个节点操作】
  5. 删除/usr/local/src/hadoop-2.6.1/logs 下面文件 【每个节点操作】
  6. 重新格式化 hadoop namenode -format  【只在master上操作】
  7. 启动集群:sbin/start-all.sh【只在master上操作】

2.在yarn集群跑spark测试代码看不到结果,hadoop和spark历史进程安装实践.

使用Yarn 作为集群管理器,启动Spark 时,无法再从SparkUI-4040 端口查看相应的信息。只能从Hadoop 的Yarn、历史服务器查看,但是默认是没有开启。

配置历史服务器:

(1). HDFS 配置

确保你的Hadoop 已经完成配置,并且已经能够正常启动。

下面,在已有的Hadoop 配置上,增加配置。

cd $HADOOP_HOME/etc/hadoop

  • mapred-site.xml文件

<!--Spark Yarn-->

<property>

<name>mapreduce.jobhistory.address</name>

<value>master:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>master:19888</value>

</property>

  • yarn-site.xml文件

<!--Spark Yarn-->

<!-- 是否开启聚合日志 -->

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<!-- 配置日志服务器的地址,work节点使用 -->

<property>

<name>yarn.log.server.url</name>

<value>http://master:19888/jobhistory/logs/</value>

</property>

<!-- 配置日志过期时间,单位秒 -->

<property>

<name>yarn.log-aggregation.retain-seconds</name>

<value>86400</value>

</property>

3.hadoop的文件不能下载以及YARN中Tracking UI不能访问历史日志

解决方法:windows系统不能解析域名所致,把hosts文件hostname复制到windows的hosts中

4.yarn资源被占用

  1. 报内存不足
Container [pid=8468,containerID=container_1594198338753_0001_01_000002] is running 318740992B beyond the 'VIRTUAL' memory limit. Current usage: 111.5 MB of 1 GB physical memory used; 2.4 GB of 2.1 GB virtual memory used. Killing container.
Dump of the process-tree for container_1594198338753_0001_01_000002 :

解决办法:在 hadoop102 的/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml 文件中增加如下配置,然后分发到 hadoop103、hadoop104 服务器上,并重新启动集群:

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>

<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
  1. 注意:如果测试过程中,出现异常可以在 yarn-site.xml 中设置虚拟内存检测为 false分发配置并重启集群
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

Hive:

1.在hive中关于大表执行join时,产生oom的处理建议

Hive中小表与大表关联(join)的性能分析 link→ Hive中小表与大表关联(join)的性能分析_刘健男_新浪博客

2.hive查询显示表头修改:

在hive安装目录下/conf/hive-site.xml配置文件里添加如下:

只添加前面部分,查询会显示tablename.column.name

<property>

<name>hive.resultset.use.unique.column.names</name>

<value>false</value>

</property>

<property>

<name>hive.cli.print.header</name>

<value>true</value>

</property>

3.hive数据倾斜

(1)空值产生的数据倾斜

如日志中,常有信息丢失的问题,例如日志中的user_id,如果取其中的user_id和用户表中的user_id关联,就会遇到数据倾斜的问题

-- user_id 为空的不参与关联操作

select * from log a join users b on a.user_idisnotnulland a.user_id = b.user_id

union all

select * from log a where a.user_id is null

(2)不同的数据类型关联产生数据倾斜

用户表中user_id 字段为 int ,log表中user_id字段类型既有int类型也有string类型。当按照user_id 进行两个表的join操作时,默认的Hash操作进行分配,这样会导致所有String类型的id的记录分配到一个Reducer中

-- 把不同类型的字段同意转换为String类型后 进行关联

select * from users a left outer join logs b on a.user_id = cast(b.user_idas String);


Spark

1.Spark shell启动报错(yarn-client&yarn-cluster):Yarn application has already ended! It might have been killed or unable to launch...

启动日志,错误信息如下:

"Yarn application has already ended! It might have been killed or unable to launch application master",这个可是一个异常,打开mr管理页面,http://master:8088/

重点在红框处,2.2g的虚拟内存实际值,超过了2.1g的上限。也就是说虚拟内存超限,contrainer没启动.

解决方案

yarn-site.xml 增加配置:

<!--以下为解决spark-shell 以yarn client模式运行报错问题而增加的配置,估计spark-summit也会有这个问题。2个配置只用配置一个即可解决问题,当然都配置也没问题-->

<!--虚拟内存设置是否生效,若实际虚拟内存大于设置值 ,spark 以client模式运行可能会报错,"Yarn application has already ended! It might have been killed or unable to l"-->

<property>

<name>yarn.nodemanager.vmem-check-enabled</name>

<value>false</value>

<description>Whether virtual memory limits will be enforced for containers</description>

</property>

<!--配置虚拟内存/物理内存的值,默认为2.1,物理内存默认应该是1g,所以虚拟内存是2.1g-->

<property>

<name>yarn.nodemanager.vmem-pmem-ratio</name>

<value>4</value>

<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>

</property>

修改后,重新启动hadoop,spark-shell. 问题解决

2.spark-submit运行scala代码,出现ClassNotFoundException

首先检查代码jar包路径是否完整,其次在IDEA查看jar包是否存在运行的主类,是则重新打包。

3.spark代码模式与提交命令模式不一样,导致运行出错

注:代码用什么模式,启动命令用什么模式,代码不加local可以用yarn集群模式启动

坑 1 : scala代码为 setMaster(local) 则用local模式启动 ,要用yarn集群模式启动 会出现错误。

代码中:val userScore = new SparkConf().setMaster("local").setAppName("UserScore")

启动命令:spark-submit --class UserScore sparktest-1.0-SNAPSHOT.jar

坑2: maven install打包jar ,启动--class 后面直接加类名 ,例想启动userwatchlist ,从java目录下开始写,有目录写目录,启动命令直接写 --class base.teacheruserwatchlist + jar包名即可

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GoAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值