我试图在eclipse 3.81,m2e插件的maven项目中导入cloudera的org.apache.hadoop:hadoop-client:2.0.0-cdh4.0.0, 来自cdh4 maven repo,在win7上使用oracle的jdk 1.7.0_05
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-cdh4.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
Run Code Online (Sandbox Code Playgroud)
更具体的是,maven声明缺少以下工件
Missing artifact jdk.tools:jdk.tools:jar:1.6
Run Code Online (Sandbox Code Playgroud)
怎么解决这个?
我正在使用Cloudera的Hive版本并尝试在包含第一列中的列名的csv文件上创建外部表.这是我用来做的代码.
CREATE EXTERNAL TABLE Test (
RecordId int,
FirstName string,
LastName string
)
ROW FORMAT serde 'com.bizo.hive.serde.csv.CSVSerde'
WITH SerDeProperties (
"separatorChar" = ","
)
STORED AS TEXTFILE
LOCATION '/user/File.csv'
Run Code Online (Sandbox Code Playgroud)
样本数据
RecordId,FirstName,LastName
1,"John","Doe"
2,"Jane","Doe"
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我跳过第一行或者我需要添加一个中间步骤吗?
我想检查cdh 5.7.0中的spark版本.我在互联网上搜索但无法理解.请帮忙.
谢谢
我是新来的.现在我可以在纱线上运行spark 0.9.1(2.0.0-cdh4.2.1).但执行后没有日志.
以下命令用于运行spark示例.但是,在正常的MapReduce作业中,在历史记录服务器中找不到日志.
SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar \
./bin/spark-class org.apache.spark.deploy.yarn.Client --jar ./spark-example-1.0.0.jar \
--class SimpleApp --args yarn-standalone --num-workers 3 --master-memory 1g \
--worker-memory 1g --worker-cores 1
Run Code Online (Sandbox Code Playgroud)
我在哪里可以找到logs/stderr/stdout?
有什么地方可以设置配置吗?我确实找到了控制台的输出说:
14/04/14 18:51:52 INFO客户端:ApplicationMaster的命令:$ JAVA_HOME/bin/java -server -Xmx640m -Djava.io.tmpdir = $ PWD/tmp org.apache.spark.deploy.yarn.ApplicationMaster --class SimpleApp --jar ./spark-example-1.0.0.jar --args'yarn-standalone' - worker-memory 1024 --worker-cores 1 --num-workers 3 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr
在这一行,请注意 1> $LOG_DIR/stdout 2> $LOG_DIR/stderr
LOG_DIR可以在哪里设置?
我想访问具有完全限定名称的hdfs,例如:
hadoop fs -ls hdfs://machine-name:8020/user
Run Code Online (Sandbox Code Playgroud)
我也可以简单地访问hdfs
hadoop fs -ls /user
Run Code Online (Sandbox Code Playgroud)
但是,我正在编写应该适用于不同发行版(HDP,Cloudera,MapR等)的测试用例,其中涉及访问具有限定名称的hdfs文件.
据我所知,hdfs://machine-name:8020它在core-site.xml中定义为fs.default.name.但这在不同的发行版上似乎有所不同.例如,hdfs是MapR上的maprfs.IBM BigInsights甚至没有core-site.xml在$HADOOP_HOME/conf.
hadoop似乎没有办法告诉我fs.default.name使用它的命令行选项定义了什么.
如何fs.default.name从命令行可靠地获取定义的值?
测试将始终在namenode上运行,因此机器名称很容易.但是获取端口号(8020)有点困难.我试过lsof,netstat ..但仍然找不到可靠的方法.
我一直在使用Cloudera的hadoop(0.20.2).使用此版本,如果我将文件放入文件系统,但目录结构不存在,则会自动创建父目录:
例如,如果我在hdfs和typed中没有目录:
hadoop fs -put myfile.txt /some/non/existing/path/myfile.txt
它将创建所有目录:some,non,existing和path并将文件放在那里.
现在,随着更新的hadoop(2.2.0)产品的出现,这种自动创建的目录不会发生.上面的相同命令产生:
put:`/ some/non/existing/path /':没有这样的文件或目录
我有一个解决方法,首先只做hadoop fs -mkdir,每次放置,但这不会很好.
这是可配置的吗?有什么建议?
我尝试通过hive查询hbase数据(我正在使用cloudera).我做了一个指向hbase的fiew hive外部表,但事情是Cloudera的Impala无法访问所有这些表.所有hive外部表都出现在Metastore管理器中,但是当我在Impala中执行一个简单的"show tables"时,我看到缺少3个表.这会是特权问题吗?我看到在Metastore管理器中,每个人都可以读取丢失的3个表,所以......
我想在Hadoop YARN集群模式下运行我的spark Job ,我使用以下命令:
spark-submit --master yarn-cluster
--driver-memory 1g
--executor-memory 1g
--executor-cores 1
--class com.dc.analysis.jobs.AggregationJob
sparkanalitic.jar param1 param2 param3
Run Code Online (Sandbox Code Playgroud)
我收到错误,请提出错误,命令是否正确.我正在使用CDH 5.3.1.
Diagnostics: Application application_1424284032717_0066 failed 2 times due
to AM Container for appattempt_1424284032717_0066_000002 exited with
exitCode: 15 due to: Exception from container-launch.
Container id: container_1424284032717_0066_02_000001
Exit code: 15
Stack trace: ExitCodeException exitCode=15:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:702)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:197)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:299)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Container exited with a non-zero exit …Run Code Online (Sandbox Code Playgroud) 连接到Hadoop集群时,如何知道此集群正在运行的Hadoop版本?特别是在使用Maven编译和打包Hadoop Java作业时,这对于正确配置库非常重要.
我已根据此处给出的说明使用docker安装了cloudera quickstart.
docker run --privileged=true --hostname=quickstart.cloudera -p 7180 -p 8888 -t -i 9f3ab06c7554 /usr/bin/docker-quickstart
Run Code Online (Sandbox Code Playgroud)
你可以看到我正在做-p 7180和-p 8888端口映射.
当容器成功启动时.我看到色调服务启动失败了.但我手动运行它sudo service hue restart,它显示确定.
现在我跑了
/home/cloudera/cloudera-manager --express --force
Run Code Online (Sandbox Code Playgroud)
这个命令成功我收到了一条消息,使用http://cloudera.quickstart:7180连接到CM
现在在我的主机上我做了docker-machine env default,我可以看到输出
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/abhishek.srivastava/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
Run Code Online (Sandbox Code Playgroud)
现在我在主机上的浏览器中做了
http://192.168.99.100:7180
http://192.168.99.100:8888
http://quickstart.cloudera:7180
http://quickstart.cloudera:8888
Run Code Online (Sandbox Code Playgroud)
但一切都无法连接到任何页面.所以即使在进行端口转发之后......我也无法从主机访问cloudera管理器或HUE UI.
我正在使用OSX.
我还进入了虚拟机管理器UI并选择了默认的VM.我进入设置 - >网络 - >端口转发.并做了以下条目
但我仍然无法访问cloudera经理和HUE ....