集群报错整理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集群报错整理相关的知识,希望对你有一定的参考价值。

参考技术A 一、伪分布式搭建好以后再次执行格式化报错:
<font color=red>java.net.UnknownHostException: bogon: bogon:</font>
配置core-site.xml
etc/Hadoop/core-site.xml:

配置好以后reboot重启

环境变量重新设置后记得重启 source /etc/profile

二、
Permission denied 权限不足

三、
设置静态ip时

错误信息:
<font color=red>jRestarting network(via systemctl):Job for network service failed because the control process exited with error code .See"systemctl status network.service" and "journalctl -xe " for details.</font>

先查看配置文件centos7的网络IP地址配置文件在
/etc/sysconfig/network-scripts 文件夹下
确认无误后
解决方法:cd /etc/sysconfig/network-scripts/ 下,删除除了ensXXX(我这里是ens33)之外的所有文件,重启,ok。

四、
在linux 中操作压缩包,必须把压缩包在linux中解压,否则会出现没有执行权限的错误!

五、
<font color=red>The element type "configuration" must be terminated by the matching end-tag "</font>
(配置文件节点没有关闭)

六、
发现该进程端口被占用,输入一下命令查看是哪个程序占用,然后杀死该进程
netstat -nltp | grep (输入端口号)
kill -9 (该程序进程号)

七、
如果两个namenode不能进行主备切换,查看/etc/hosts文件是否删除了127.。。的映射

八、
<font color=red>Incompatible namespaceID for journal Storage Directory /opt/hadoop_data/dfs/jndata/customhdfs: NameNode has nsId 1256792279 but storage has nsId 720007073 </font>
错误信息为两个namenode的id不一致,因为同时把两个namenode同时格式化了,必须格式化第一个再复制hadoop_data下的文件夹到第二个namenode

九、
<font color=red>java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to org.apache.hadoop.io.IntWritable</font>
可能是因为数字超过了int类型的最大值,将数据类型设置成object

报错,贴图整理

这里是getElementByTagName("div")=============单复数的问题,给element加上s就可以了,仅仅是一个"s"的问题,把s加上就可以解决了.

 

 

在js中我们要想改变属性的值,在console里面可以直接操作,在改变之前我们需要找到标签,然后才能改,在找标签的过程中我们需要找到具体的标签进行修改,不能找到一个标签数组去改

 

egon 博客练习题: http://www.cnblogs.com/linhaifeng/articles/7267596.html#_label5

第24题:

这里的in出错了,在mysql里面暂时还不支持limit里面有子查询的in/all/any/some方法

 

 

 

 

在html文档中,使用bootstrap工具的时候,遇到的问题:

这里是出错的部分,用红色圈出来了

 

这里是已经改正过了的,注意细节,两张图片对比出来就是一个空格的问题,就差在一个空格上

 

 

 

在django项目里面我们的函数体,跟数据库连接的时候,报错,这里的原因是比较简单的,把相关的代码缩进到for循环里面即可,一个tab键就可以搞定的,下面的变量预警是因为他们是在for循环里面被定义的,然后我们却在for循环外面使用它了,局部命名空间的变量是不能够被全局所使用的,这里是命名空间的部分出错了

 

 

这里是HTML标签里面的属性有缺失导致页面无法显示出预期的效果

这里这张图的重点是method="post",我们的form表单里面需要进行一些增删改查的操作固定要有这个method这个属性,并且要根据不同的动作有不同的改变,

 

 

模态框的标签是需要写作body的直系子标签的,要紧贴着,不能够有间隙,隔一层都不可以,

如图所示,位置没有关系,放到前面或者后面或者中间都可以的,只要紧贴着body即可,也就是我们模态框最外层的那个div标签需要贴着左边的代码框,贴着,即可

 

这里我们我的开始符号和结束符号位置需要和我们的/对应上,结束符放到我们的/外面然后再\'\'的里面

 

 

这里我们的引号里面,不能够加上/不能够加上/,不能够加上/, 就如图下所示,按照下面的图片写即可

 

 这里我们的get和filter得到的数据类型是不一样的,get是得到一个对象,而我们的filter是得到一个列表,列表取值是需要使用索引的 ,而我们的对象是可以直接去取值的

 

django项目里面的标点符号问题,如果没有给我们提示的话我们就不要擅自加上空格了

 

这里的报错是我们的django项目里面csrf中间件的问题:

 

解决办法:

 

 

 

我们的django项目里面,使用orm的时候,在python console里面,查询的时候要想显示sql语句要设置logging,然后在python console里面我们就可以得到查询的SQL语句了,

这里的logging参数配置里面的version参数需要使用小写,如果是大写的"VERSION"的话就会报错,我们的django项目都无法运行

 

 

 

我们找bug的时候要按照顺序来一层一层分析,先从url开始入手,然后到views函数,再到前端模板,按照顺序过一遍,不要死盯着一处去看,要着眼于多处,才有更多可能去发现问题,我们要一步一步去分析报错的原因,才能找到根源,而不是陷在一个地方,思维方式还是很重要的,否则就是过分的浪费时间,

路由系统:

 url(r\'^selog/\', include(seurl)),  # 这里是路由分发

# 这是子路由
from django.conf.urls import url
from session import views as sesviews

urlpatterns = [
    url(r"^login/", sesviews.login, name=\'sesslogin\'),
    # url(r\'^home/$\', sesviews.home, name=\'home\'),
    url(r\'^home/$\', sesviews.home, name=\'home\'),
    url(r"^index/$", sesviews.index, name=\'index\'),
    url(r\'^logout/$\', sesviews.logout, name=\'logout\'),
    url(r\'^gettest/$\', sesviews.gettest,),

    url(r\'^login3/$\', sesviews.LoginView.as_view()),
    url(r\'^index3/$\', sesviews.IndexView.as_view()),

    url(r\'^login2/$\', sesviews.login2,),
    url(r\'^index2/$\', sesviews.index2,),

]

 

 

视图函数:

from django.shortcuts import render, HttpResponse, redirect
from functools import wraps
from django.urls import reverse
# Create your views here.


# 简单的原始版装饰器
def wrapper(func):
    @wraps(func)
    def inner(request, *args, **kwargs):
        cookie_k = request.get_signed_cookie(\'who\', None, salt=\'s8\',max_age=5)  # 我们这里的参数who设置的它,后面获取的时候也是要通过它去获取,否则参数匹配不上
# 页面是无法出来效果的
        print(11111, cookie_k)
        if cookie_k:
            # 如果我们检测到有cookie,就证明是我们自己的用户,
            # ret = func(request, *args, **kwargs)
            ret = func(request, *args, **kwargs)
            return ret
        else:
            # 反之,如果没有检测到,就不是我们的用户,需要登录或者注册
            # return redirect(\'sebog/login/\')
            next_url = request.get_full_path()
            print(next_url,"-------")
            return redirect(\'/selog/login/?next={}\'.format(next_url))
            # 我们这里是路由分发的,所以需要在url里面加上前缀否则是无法得到地址的
    return inner

#http://127.0.0.1:8000/selog/login/?next=home
def login(request):
    if request.method == \'POST\':
        user = request.POST.get("user")
        pwd = request.POST.get(\'pwd\')
        if user == \'alex\' and pwd == "123":
            next_url = request.GET.get(\'next\', None)
            print(next_url)
            if next_url:
                rep = redirect(next_url)
            else:
                # rep = redirect(reverse(\'index\'))
                rep = redirect(\'/selog/index/\')
            # return redirect(\'home\')
            rep.set_signed_cookie(\'who\', user, salt=\'s8\')  # 我们的cookie失效时间不能太短了,否则我们还没有把url输入到浏览器cookie就已经失效了
            return rep
    return render(request, \'session/login.html\')


def logout(request):
    rep = redirect(reverse(\'sesslogin\'))
    rep.delete_cookie(\'who\')
    return rep


@wrapper
def index(request):
    cookie_k = request.get_signed_cookie(\'who\', None, salt=\'s8\')
    if cookie_k:
        # return redirect(reverse(\'sesslogin\'))
        return render(request, \'session/index.html\')
    else:
        return redirect(reverse(\'sesslogin\'))
        # return render(request, \'session/index.html\')


@wrapper
def home(request):
    return render(request, \'session/home.html\')


@wrapper
def gettest(request):
    print(request.GET.get(\'next\'))
    return HttpResponse(\'OK\')

 

前端模板:

home

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
</head>
<body>
<h1>welcome home</h1>

<button type="submit" value="put on"><a href="{% url \'logout\' %}">quit</a></button>
</body>
</html>

 

index:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
</head>
<body>
<h1>there is index page</h1>
<button type="submit" value="put on"><a href="{% url \'logout\' %}">quit</a></button>
</body>
</html>

 

login:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
</head>
<body>

<form action="{{ request.get_full_path }}" method="post">
{#<form action="/login/" method="post">#}
{#<form action="{% url \'sesslogin\' %}" method="post">#}
    {% csrf_token %}
    <input type="text" name="user" placeholder="user">
    <input type="password" name="pwd" placeholder="pwd">
    <input type="submit" value="put in">

</form>
</body>
</html>

 

 

我们的console里面的500错误:

 

 

 

 

这个场景是在我们的flask里面的redis连接池里写投票系统遇到的bug

 

 redis.exceptions.ResponseError: WRONGTYPE Operation against a key holding the wrong kind of value

这里是中文翻译:

 [redis.exceptions.ResponseError:WRONGTYPE针对持有错误类型值的键的操作]

我们的这个键hell在redis里面已经做为其他的数据的键了,就不能再被重用了,换一个键的名字即可(会出现这个原因是因为我一开始用的redis,然后又在原有基础上进行了redis连接池的转换,所以我们的代码块都没有变,那么就是我们的redis里面的lpush里面的键是重复了,所以就会报这个错,)

{原来的redis里面的key对应的数据类型不一致,key对应的数据类型一致的话,是可以插入的}

 

 

ajax报错:“parsererror”

 这里是解析错误,后端传过来的数据没有做格式处理才会这样,需要去后端看最后返回的数据格式跟ajax里面的数据格式是否匹配,我这里ajax是用的json数据类型,后端传的是字符串没有做json。dump()的处理,我把字符串进行了dump之后就可以正常调用前端ajax的success函数了。

 

执行pip install pipreqs报错:

 error: [Errno 13] Permission denied: \'/Library/Python/2.7/site-packages/docopt.py\'

    

是权限不够,被拒绝下载,我在命令前加上了sudo 就可以了,

即:

sudo pip install pipreqs

(报错信息很长一大串,我一时心急就把一大串都粘到搜索框去搜,结果肯定是搜不出来啊,后来慢慢理出头绪,找到了error这一行,以后遇到报错,要能分辨哪里是核心点,这样就会省很多力气,找到突破口快速解决问题)

 

 

Can\'t connect to local MySQL server through socket \'/tmp/mysql.sock\' 

mysql预警信息解决方案:

 

python3.6 + Django2.1 + ajax

排错了一整天,没有遇到过这样的错误,连把错误信息拿到网上都搜不到一星半点线索。。。。。。

一开始自己一个人写前后端,出现跨域,然后在中间件里面加上了请求头信息

[\'Access-Control-Allow-Origin\'] = \'*\'
["Access-Control-Allow-Methods"] = "POST,GET,OPTION,PUT,DELETE,PATCH"

与此同时,前端没怎么写过,就连ajax的路由写法都是现查的,然后就随便找了一篇博客没有细看,粗暴的写成了这样:“http://127.0.0.1:8000/login/”

然后在本地测试的时候,一切如常,于是推到服务器的时候,就开始报错,报同样的错,如下贴出, 

报错信息如下:


[DEBUG][2019-03-28 15:13:47,575][base.py:872]Exception while resolving variable \'name\' in template \'unknown\'.

Traceback (most recent call last):
  File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 829, in _resolve_lookup
    current = current[bit]
TypeError: \'URLResolver\' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 837, in _resolve_lookup
    current = getattr(current, bit)
AttributeError: \'URLResolver\' object has no attribute \'name\'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 843, in _resolve_lookup
    current = current[int(bit)]
ValueError: invalid literal for int() with base 10: \'name\'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 850, in _resolve_lookup
    (bit, current))  # missing attribute
django.template.base.VariableDoesNotExist: Failed lookup for key [name] in <URLResolver <URLPattern list> (admin:admin) \'admin/\'>

 

上面有关键字信息可以捕捉到,admin,URL,

一开始测试的时候就没有考虑admin,也没有想过URL会有问题,于是一直很困惑问题出在哪里,本地和线上测试结果差太多,一直以为是线上环境的其他细节有问题,于是耽误了大把的时间。

仔细查过了Django2.0以及ajax的URL路由写法,发现ajax路由写死了,所以线上报错;

试过了admin无法打开页面,也是报上面同样的错,把上面处理跨域的中间件注释掉用另一个方式解决跨域。问题就解决啦啦啦

 

 

mongo  服务启动报错:

 

用命令:mongod

错误信息如下:

2019-04-08T17:26:11.722+0800 I CONTROL  [initandlisten] MongoDB starting : pid=6463 port=27017 dbpath=/data/db 64-bit host=dream-macdeMBP.lan
2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] db version v3.4.2
2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] allocator: system
2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] modules: none
2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] build environment:
2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten]     distarch: x86_64
2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2019-04-08T17:26:11.727+0800 I CONTROL  [initandlisten] options: {}
2019-04-08T17:26:11.728+0800 I -        [initandlisten] Detected data files in /data/db created by the \'wiredTiger\' storage engine, so setting the active storage engine to \'wiredTiger\'.
2019-04-08T17:26:11.728+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2019-04-08T17:26:11.735+0800 E STORAGE  [initandlisten] WiredTiger error (13) [1554715571:735657][6463:0x1144e05c0], file:WiredTiger.wt, connection: /data/db/WiredTiger.turtle: handle-open: open: Permission denied
2019-04-08T17:26:11.751+0800 I -        [initandlisten] Assertion: 28595:13: Permission denied src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
2019-04-08T17:26:11.753+0800 I STORAGE  [initandlisten] exception in initAndListen: 28595 13: Permission denied, terminating
2019-04-08T17:26:11.753+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2019-04-08T17:26:11.753+0800 I NETWORK  [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-04-08T17:26:11.753+0800 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2019-04-08T17:26:11.753+0800 I CONTROL  [initandlisten] now exiting
2019-04-08T17:26:11.753+0800 I CONTROL  [initandlisten] shutting down with code:100

 

用命令: mongo

错误如下:

MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
2019-04-08T17:26:54.606+0800 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2019-04-08T17:26:54.609+0800 E QUERY    [thread1] Error: couldn\'t connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed

 

解决方法:

进入mongo安装目录:

cd /usr/local/mongodb/bin/

 

执行命令:

sudo ./mongod

 

如下提示:

 
Password:
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] MongoDB starting : pid=6693 port=27017 dbpath=/data/db 64-bit host=dream-macdeMBP.lan
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] db version v3.4.2
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] allocator: system
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] modules: none
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] build environment:
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten]     distarch: x86_64
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] options: {}
2019-04-08T18:26:09.129+0800 I -        [initandlisten] Detected data files in /data/db created by the \'wiredTiger\' storage engine, so setting the active storage engine to \'wiredTiger\'.
2019-04-08T18:26:09.129+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten]
2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten]
2019-04-08T18:26:09.420+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory \'/data/db/diagnostic.data\'
2019-04-08T18:26:09.420+0800 I NETWORK  [thread1] waiting for connections on port 27017
2019-04-08T18:26:46.084+0800 I NETWORK  [thread1] connection accepted from 127.0.0.1:57474 #1 (1 connection now open)

 

出现字样

waiting for connections on port 27017

即是服务启动了,查看进程可以看到mongo进程

ps -ef|grep mongod


0 6692 2600 0 6:26PM ttys001 0:00.06 sudo ./mongod
0 6693 6692 0 6:26PM ttys001 0:00.41 ./mongod
501 6705 5153 0 6:26PM ttys002 0:00.01 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mongod

 

然后再开一个窗口,进入mongo

mongo   # 这行命令是安装mongo的时候把环境配置好了,才能执行它




MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2
Server has startup warnings:
2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten]
2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten]
> use test
switched to db test

 

 

...................持续更新中.................................

以上是关于集群报错整理的主要内容,如果未能解决你的问题,请参考以下文章

rhel7报错整理

zabbix报错整理

常见问题6:控制台报错整理——报错

Eslint报错整理与解决方法(持续整理)

虚拟机报错整理

虚拟机报错整理