小编len*_*ble的帖子

Elasticsearch:无法找到或加载主类org.elasticsearch.tools.launchers.JavaVersionChecker

我使用 CentOS 并下载了 Elasticsearch 6.2.1。我创建了一个新用户“elastic”,当我运行 ./bin/elasticsearch 时出现错误:

Could not find or load main class org.elasticsearch.tools.launchers.JavaVersionChecker
Run Code Online (Sandbox Code Playgroud)

我尝试将此用户放入管理组(“wheel”)中,但出现了同样的问题。如果我尝试使用“sudo ./bin/elasticsearch”,我会得到:

[2018-02-15T17:42:39,776][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.1.jar:6.2.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.1.jar:6.2.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.1.jar:6.2.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.1.jar:6.2.1]
Run Code Online (Sandbox Code Playgroud)

我搜索了一下,发现这个错误可能是由于java版本造成的,但它似乎是最新的:

[elastic@sandbox-hdp elasticsearch-6.1.1]$ sudo update-alternatives …
Run Code Online (Sandbox Code Playgroud)

java centos elasticsearch

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

spark-class:第71行......没有这样的文件或目录

我已经在Ubuntu上安装了Spark 2.1.1,无论我做什么,它似乎都不同意java路径.当我运行"spark-submit --version"或"spark-shell"时,我收到以下错误:

/ usr/local/spark/bin/spark-class:第71行:/ usr/lib/jvm/java-8-openjdk-amd64/jre/bin // bin/java:没有这样的文件或目录

现在显然"/ bin // bin/java"存在问题,但我不确定在哪里更改配置.spark类文件包含以下行:

if [ -n "${JAVA_HOME}" ]; then
  RUNNER="${JAVA_HOME}/bin/java"
Run Code Online (Sandbox Code Playgroud)

我最初使用的是适用于Hadoop 2.4的Spark版本,当我将其更改为"RUNNER ="$ {JAVA_HOME}时,它会给我错误"[path]是一个目录"或"[path]不是目录."这是在/ etc/environment中尝试多路径排列之后

我现在在/ etc/environment中拥有的是:

JAVA_HOME = "/ usr/lib中/ JVM/JAVA -8-的openjdk-AMD64/JRE/bin中/"

这是我当前的Java设置:

ř OOT @ ubuntu的:〜#更新替代品--config java的有一个在链路组的Java(提供的/ usr /斌/ java的)只有一个选择:/ usr/lib中/ JVM/JAVA -8-的openjdk-AMD64/JRE /斌/ java的

bashrc具有以下内容:

export SPARK_HOME="/usr/local/spark"
export PATH="$PATH:$SPARK_HOME/bin"
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议:1)我需要更改哪些文件和2)我需要如何更改它们?提前致谢.

spark类文件在链接中,以防万一:

http://vaughn-s.net/hadoop/spark-class

java ubuntu apache-spark

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

apache zeppelin:java.lang.NullPointerException

在zeppelin中运行任何类型的命令时,我得到一个"java.lang.NullPointerException"错误 - 甚至是简单的东西sc.appName.这是全文:

java.lang.NullPointerException
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38)
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:33)
    at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext_2(SparkInterpreter.java:391)
    at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext(SparkInterpreter.java:380)
    at org.apache.zeppelin.spark.SparkInterpreter.getSparkContext(SparkInterpreter.java:146)
    at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:828)
    at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:70)
    at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:483)
    at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
    at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)

该错误似乎与Spark有关,但我在zeppelin-env.sh中正确设置了位置:

export SPARK_HOME=/usr/local/spark
Run Code Online (Sandbox Code Playgroud)

我修改过的唯一其他字段如下:

export HADOOP_CONF_DIR=/home/cloudera/hadoop/etc/hadoop
export PYSPARK_PYTHON=/usr/bin/python
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/
Run Code Online (Sandbox Code Playgroud)

我的hadoop安装没有"conf"文件夹,但是yarn-site文件位于指定的位置.我正在使用匿名登录,不确定这是否相关.我可以从命令行成功运行Spark shell.我确实试图四处寻找,因为这是一个常见的错误,但似乎没有什么能适应这种情况.如果需要,我还可以提供zeppelin-env.sh文件.在此先感谢您的帮助!

nullpointerexception apache-spark apache-zeppelin

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

使用 boto 删除所有存储桶

我的任务是创建一个脚本来删除所有当前的 S3 存储桶并创建一些新存储桶。这是他们想要持续做的事情。到目前为止,我已经完成了所有预赛:

import boto
from boto.s3.key import Key
import boto.s3.connection
from __future__ import print_function

conn = boto.s3.connect_to_region('us-east-1',
                                 aws_access_key_id='my_access_key', aws_secret_access_key='my_secret_key')

ls = conn.get_all_buckets()

print(*ls,sep='\n')
Run Code Online (Sandbox Code Playgroud)

这给了我所有当前存储桶的列表。现在,如果我想删除桶,我的理解是必须先清空它们,使用方法如下:

db = conn.get_bucket('bucket_name')
for key in db.list():
  key.delete()
Run Code Online (Sandbox Code Playgroud)

然后我可以这样做:

conn.delete_bucket('bucket_name')
Run Code Online (Sandbox Code Playgroud)

我想对其进行设置,以便从“ls”中提取每个存储桶名称,但我不确定如何处理。我试过这个:

for i in ls:
    db = conn.get_bucket('i')
    for key in db.list():
        key.delete()
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误“S3ResponseError: 400 Bad Request”。我偷偷怀疑它没有从列表中提取单独的元素。我可能需要涉及数据帧吗?据我所知,boto 没有选项可以直接清除所有文件夹。

amazon-s3 boto amazon-web-services python-3.x

2
推荐指数
1
解决办法
2640
查看次数

在pyspark中查找和删除匹配的列值

我有一个pyspark数据框,偶尔会有一列与另一列匹配的错误值.它看起来像这样:

| Date         | Latitude      |
| 2017-01-01   | 43.4553       |
| 2017-01-02   | 42.9399       |
| 2017-01-03   | 43.0091       |
| 2017-01-04   | 2017-01-04    |
Run Code Online (Sandbox Code Playgroud)

显然,最后一个纬度值是不正确的.我需要删除任何和所有这样的行.我想过使用,.isin()但我似乎无法让它工作.如果我试试

df['Date'].isin(['Latitude'])
Run Code Online (Sandbox Code Playgroud)

我明白了:

Column<(Date IN (Latitude))>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

apache-spark pyspark spark-dataframe pyspark-sql

2
推荐指数
1
解决办法
1857
查看次数

Hive:需要指定分区列,因为目的表是分区的

我想知道是否可以在 Hive 中将未分区的表插入到分区的表中。第一个表如下:

hive> describe extended user_ratings;
OK
userid                  int                                         
movieid                 int                                         
rating                  int                                         
unixtime                int                                         

Detailed Table Information  Table(tableName:user_ratings, dbName:ml, owner:cloudera, createTime:1500142667, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:userid, type:int, comment:null), FieldSchema(name:movieid, type:int, comment:null), FieldSchema(name:rating, type:int, comment:null), FieldSchema(name:unixtime, type:int, comment:null)], location:hdfs://quickstart.cloudera:8020/user/hive/warehouse/ml.db/user_ratings, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=    , field.delim=
Time taken: 0.418 seconds, Fetched: 6 row(s)
Run Code Online (Sandbox Code Playgroud)

新表是这样的:

hive> describe extended rating_buckets;
OK
userid                  int                                         
movieid                 int                                         
rating                  int                                         
unixtime                int                                         
genre                   string                                      

# Partition Information      
# col_name              data_type               comment             

genre …
Run Code Online (Sandbox Code Playgroud)

sql hadoop hive

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