小编blu*_*ndr的帖子

Hadoop:格式在/ mnt/hdfs/1/namenode中中止

我在ec2上创建了一些用于hadoop的ebs文件系统.我已经在hadoop环境中设置了JAVE_HOME.但是当我去格式化第一个卷时,它将使用以下消息中止

[root@hadoop-node01 conf]# sudo -u hdfs hadoop namenode -format
13/02/06 15:33:22 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************ 
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = hadoop-node01.mydomain.com/10.xx.xx.201
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 0.20.2-cdh3u5
STARTUP_MSG:   build = file:///data/1/tmp/topdir/BUILD/hadoop-0.20.2-cdh3u5 -r 30233064aaf5f2492bc687d61d72956876102109; compiled by 'root' on Fri Oct  5 18:45:46 PDT 2012
************************************************************/
Re-format filesystem in /mnt/hdfs/1/namenode ? (Y or N) y
Format aborted in /mnt/hdfs/1/namenode
13/02/06 15:33:27 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop-node01.mydomain.com/10.xx.xx.201
************************************************************/
Run Code Online (Sandbox Code Playgroud)

这是我的namenode配置:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- …
Run Code Online (Sandbox Code Playgroud)

hadoop

5
推荐指数
1
解决办法
2153
查看次数

SELinux使用RSA密钥阻止ssh

我忘了我在我的一个网络服务器上启用了SELinux.因此,当我使用我的用户帐户和ssh密钥登录主机时,我收到了权限被拒绝的错误.

[TimothyDunphy@JEC206429674LM:~] #ssh bluethundr@web1.somedomain.com
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Run Code Online (Sandbox Code Playgroud)

嗯...所以我安慰了服务器并且能够登录.我把审核日志记录下来,这就是我所看到的:

type=USER_LOGIN msg=audit(1429981690.809:394593): pid=17074 uid=0     auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023     msg='op=login acct="bluethundr" exe="/usr/sbin/sshd" hostname=? addr=47.18.111.100 terminal=ssh res=failed'
Run Code Online (Sandbox Code Playgroud)

在谷歌上搜索答案,我得到了运行此命令的建议:

[root@web1:~] #restorecon -R -v /home/bluethundr/.ssh
[root@web1:~] #
Run Code Online (Sandbox Code Playgroud)

但是当我再次登录时,在做完之后,我得到了相同的结果.权限被拒绝,日志中也出现相同的错误.

我能想到的唯一另一件事是用户的主目录是从NFS共享挂载的.可能有一些SELinux咒语我可以用来允许SSH到NFS共享上的主目录吗?

或者也许我错过了别的什么?

蒂姆,谢谢

ssh nfs selinux

5
推荐指数
2
解决办法
2983
查看次数

将元素添加到现有数组 Bash

我需要分几个步骤处理一些数据。

我首先在 AWS 中创建一个托管策略列表,并将该列表放入一个数组中:

readarray -t managed_policies < <(aws iam list-attached-user-policies --user-name tdunphy  --output json --profile=company-nonprod | jq -r '.AttachedPolicies[].PolicyArn')
Run Code Online (Sandbox Code Playgroud)

但随后我需要在我的脚本中向该数组添加更多信息。我的问题是,我可以使用 readarray 来做到这一点吗?或者我是否只需要使用以下命令将数据修改到列表中:

managed_policies+=($(aws iam list-attached-group-policies --group-name grp-cloudops --profile=compnay-nonprod | jq -r '.AttachedPolicies[].PolicyArn'))
Run Code Online (Sandbox Code Playgroud)

arrays bash

5
推荐指数
1
解决办法
1254
查看次数

将带有过滤器的AWS CLI命令输出到CSV而不使用jq

有没有办法将带有过滤器的AWS cli输出为csv格式?

例如,如果我想采用此命令并将其输出到 csv:

aws ec2 describe-images --owner self   --query 'Images[*].{ID:ImageId,"Virtualization Type":VirtualizationType}'
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?通常我会使用 jq 将 aws cli 输出到 csv。但在这种情况下,我可以使用过滤器选项而不是 jq 更轻松地获取我想要的信息。

这是我想要输出到 CSV 的完整命令:

aws ec2 describe-images --owner self   --query 'Images[*].{ID:ImageId,"Virtualization Type":VirtualizationType,Architechture:Architecture,Hypervisor:Hypervisor,State:State,ImageID:ImageId,"Device Names":BlockDeviceMappings[].DeviceName,"Snapshot IDs":BlockDeviceMappings[].Ebs.SnapshotId,"Delete On Termination":BlockDeviceMappings[].Ebs.DeleteOnTermination,"Voluem Type":BlockDeviceMappings[].Ebs.VolumeType,"Volume Size":BlockDeviceMappings[].Ebs.VolumeSize,Encrypted:BlockDeviceMappings[].Ebs.Encrypted,"Image Location":ImageLocation,"Root Device Type":RootDeviceType,"Owner ID":OwnerId,"Creation Date":CreationDate,Public:Public,"Image Type":ImageType,Name:Name}'
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-cli

4
推荐指数
2
解决办法
2万
查看次数

按 VPC ID 列出 AWS 中的子网

我需要列出 AWS 中特定 VPC 中的子网。

当我这样做时,我收到此错误:

Traceback (most recent call last):
  File ".\aws_create_ec2.py", line 253, in <module>
    main()
  File ".\aws_create_ec2.py", line 249, in main
    create_instances()
  File ".\aws_create_ec2.py", line 146, in create_instances
    subnet_list = ec2_client.describe_subnets(
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\botocore\client.py", line 272, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\botocore\client.py", line 548, in _make_api_call
    request_dict = self._convert_to_request_dict(
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\botocore\client.py", line 596, in _convert_to_request_dict
    request_dict = self._serializer.serialize_to_request(
  File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\botocore\validate.py", line 297, in serialize_to_request
    raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Unknown parameter in input: "VpcIds", must be …
Run Code Online (Sandbox Code Playgroud)

python boto3

4
推荐指数
1
解决办法
3546
查看次数

在 Windows 10 上使用 python 3 运行 cassandra cqlsh

我正在尝试cqlsh在 Windows 10 上使用 python 3运行 cassandra命令。

当我运行命令时,我收到此错误:

cqlsh
  File "C:\Program Files\apache-cassandra-3.11.6\bin\\cqlsh.py", line 248
    CONFIG_FILE = os.path.join(HISTORY_DIR, 'cqlshrc')
    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

这就是它在脚本中抱怨的地方:

if hasattr(options, 'cqlshrc'):
    CONFIG_FILE = options.cqlshrc
    if not os.path.exists(CONFIG_FILE):
        print('\nWarning: Specified cqlshrc location `%s` does not exist.  Using `%s` instead.\n' % (CONFIG_FILE, HISTORY_DIR)
        CONFIG_FILE = os.path.join(HISTORY_DIR, 'cqlshrc')
Run Code Online (Sandbox Code Playgroud)

Cassandra 似乎运行得很好,我只需要一种方法来连接它。

我使用的是 Python 3.8.3,如果可以的话,我不想降级到 2.7。

我怎样才能让它工作?

python cassandra cqlsh

4
推荐指数
2
解决办法
3476
查看次数

Python - 升级到3.9.1后bson导入错误

我有一个在早期版本的 python (3.8) 下编写的脚本。

当我现在运行该脚本时,该脚本会因堆栈跟踪而崩溃:

python .\ec2_mongo.py
Traceback (most recent call last):
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\ec2_mongo.py", line 11, in <module>
    from pymongo import MongoClient, errors
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\venv\lib\site-packages\pymongo\__init__.py", line 87, in <module>
    from pymongo.collection import ReturnDocument
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\venv\lib\site-packages\pymongo\collection.py", line 20, in <module>
    from bson.code import Code
  File "C:\Users\tdun0002\OneDrive - Synchronoss Technologies\Desktop\important_folders\Jokefire\git\jf_cloud_scripts\aws_scripts\python\aws_tools\venv\lib\site-packages\bson\code.py", line 18, in <module>
    from bson.py3compat import abc, string_type, PY3, text_type
ImportError: cannot import name 'abc' from 'bson.py3compat'
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我仅使用 bson 包中的 ObjectId。这是我的导入行:

from …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
3366
查看次数

logstash的日志轮换脚本清除超过两周的日志

我正在尝试提供从两周以上的logstash服务器清除日志的最佳方法.

对于那些不知道的人,Logstash将它的日志存储在Elasticsearch中.我有一个非常好的稳定ELK堆栈(Elasticsearch/Logstash/Kibana).

删除logstash索引的典型方法是使用像这样的curl命令:

#curl --user admin -XDELETE http://localhost:9200/logstash-2015.06.06
Enter host password for user 'admin':
{"acknowledged":true}
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找的是一种以编程方式更改logstash索引中的日期以自动清除任何超过两周的索引.

我正在考虑使用bash来完成这项工作.

我很欣赏任何有关如何做到这一点或你可能有的建议的例子!

谢谢

谢谢!!但是你认为你可以帮助我使用auth来实现这一目标吗?

这是我到目前为止所尝试的:

[root@logs:~] #curator --help | grep -i auth
  --http_auth TEXT   Use Basic Authentication ex: user:pass
[root@logs:~] #curator delete indices --older-than 14 --time-unit days --timestring %Y.%m.%d --regex '^logstash-' --http_auth admin:secretsauce
Error: no such option: --http_auth
[root@logs:~] #curator delete indices --older-than 14 --time-unit days --timestring %Y.%m.%d --regex '^logstash-' --http_auth admin:secretsauce
Error: no such option: --http_auth
[root@logs:~] #curator delete indices --http_auth admin:secretsauce --older-than …
Run Code Online (Sandbox Code Playgroud)

logstash

3
推荐指数
1
解决办法
7719
查看次数

selinux否认haproxy连接?

我在syslog中看到这些消息弹出:

Mar 10 12:51:35 db1 kernel: [5851729.958138] type=1400 audit(1457614295.823:2925931): avc:  denied  { name_connect } for  pid=801 comm="haproxy" dest=7778 scontext=system_u:system_r:haproxy_t:s0 tcontext=system_u:object_r:interwise_port_t:s0 tclass=tcp_socket
Run Code Online (Sandbox Code Playgroud)

这是否意味着SELinux拒绝与haproxy的连接?

谢谢

selinux haproxy

3
推荐指数
1
解决办法
1884
查看次数

PHP 8.0.12 升级到 PHP 8.1 - 多个模块错误

很长一段时间以来,我一直在使用 XAMPP 对我的开发工作站进行升级,从各个版本 7s 一直到 8.012。

我升级到 8.1 似乎遇到了障碍。

我已经编辑了 apache 配置以使用新版本的 php。将php.ini-development并将其重命名为php.ini,然后取消注释 openssl 扩展在我重新启动 apache 后不起作用:

extension=openssl
Run Code Online (Sandbox Code Playgroud)

php 信息页面中未启用 Openssl:

在此输入图像描述

如果我尝试通过从以前的安装中移动我的扩展来启用 mongodb,然后取消注释扩展php.ini并再次重新启动 apache,我会收到错误:

extension=php_mongodb.dll

在此输入图像描述

更新:我现在发现启用任何 PHP 模块在 PHP 8.1 下都不起作用。

我可以回滚到以前的版本php-8.0.12并再次拥有功能齐全的 php。当我回滚到以前的版本时,启用和禁用 PHP 模块仍然有效。它在 PHP 8.1 下不起作用。

如果可能的话,我想及时了解最新版本!

我使用这个版本的 PHP 做错了什么?为什么我无法启用任何功能?

php php-8.1

3
推荐指数
1
解决办法
3810
查看次数