我使用 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) 我已经在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类文件在链接中,以防万一:
在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文件.在此先感谢您的帮助!
我的任务是创建一个脚本来删除所有当前的 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 没有选项可以直接清除所有文件夹。
我有一个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)
有什么建议?
我想知道是否可以在 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) apache-spark ×3
java ×2
amazon-s3 ×1
boto ×1
centos ×1
hadoop ×1
hive ×1
pyspark ×1
pyspark-sql ×1
python-3.x ×1
sql ×1
ubuntu ×1