我是hadoop的新手.
我正在尝试在Pseudo-Distributed模式下在笔记本电脑中安装hadoop.
我用root用户运行它,但我收到以下错误.
root@debdutta-Lenovo-G50-80:~# $HADOOP_PREFIX/sbin/start-dfs.sh
WARNING: HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX.
Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined.
Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined.
Aborting operation.
Starting secondary namenodes [debdutta-Lenovo-G50-80]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation. …Run Code Online (Sandbox Code Playgroud) 我在 debian/stretch64 上有一个 vagrant box 我尝试使用文档http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.htm安装 Hadoop3
当我运行 start-dfs.sh 时,我收到了这条消息
vagrant@stretch:/opt/hadoop$ sudo sbin/start-dfs.sh
Starting namenodes on [localhost]
pdsh@stretch: localhost: connect: Connection refused
Starting datanodes
pdsh@stretch: localhost: connect: Connection refused
Starting secondary namenodes [stretch]
pdsh@stretch: stretch: connect: Connection refused
vagrant@stretch:/opt/hadoop$
Run Code Online (Sandbox Code Playgroud)
当然,我尝试使用以下命令更新我的 hadoop-env.sh:export HADOOP_SSH_OPTS="-p 22"
ssh localhost 工作(无密码)
我不知道我可以改变什么来解决这个问题
我正在从我的 Windows 机器上的 hadoop 集群上运行字数统计程序,该集群是在远程 linux 机器上设置的。程序运行成功,我得到了输出,但我得到了以下异常并且我的 waitForCompletion(true) 没有返回 true。
java.io.IOException: java.net.ConnectException: Your endpoint configuration is wrong; For more details see: http://wiki.apache.org/hadoop/UnsetHostnameOrPort
at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:345)
at org.apache.hadoop.mapred.ClientServiceDelegate.getJobStatus(ClientServiceDelegate.java:430)
at org.apache.hadoop.mapred.YARNRunner.getJobStatus(YARNRunner.java:870)
at org.apache.hadoop.mapreduce.Job$1.run(Job.java:331)
at org.apache.hadoop.mapreduce.Job$1.run(Job.java:328)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1682)
at org.apache.hadoop.mapreduce.Job.updateStatus(Job.java:328)
at org.apache.hadoop.mapreduce.Job.isComplete(Job.java:612)
at org.apache.hadoop.mapreduce.Job.monitorAndPrintJob(Job.java:1629)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1591)
at practiceHadoop.WordCount$1.run(WordCount.java:60)
at practiceHadoop.WordCount$1.run(WordCount.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1682)
at practiceHadoop.WordCount.main(WordCount.java:24)
Caused by: java.net.ConnectException: Your endpoint configuration is wrong; For more details see: http://wiki.apache.org/hadoop/UnsetHostnameOrPort
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) …Run Code Online (Sandbox Code Playgroud) 我想使用 Spark 2.2 版和 Hadoop 最新版 3.1。我可以手动集成 Spark 和 Hadoop 吗?
我已经在 Hadoop 2.6 或更高版本中安装了 Spark 2.2,但我想更新 Hadoop。是否可以使用 Hadoop 文件夹在 Spark 中找到 Hadoop 目录?
我已经下载了没有 hadoop 的 Spark 2.2 和 hadoop 3.1.0。两者都在运行,但是当我使用 hadoop_home 配置 spark.env.sh.template 文件时,它不起作用。任何人都可以分享正确的配置吗?
谢谢
我尝试在 Windows-10 上安装 Hadoop(3.1.2),但数据节点和节点管理器关闭。
我尝试下载 winutils.exe 和 hadoop.dll 文件并将其放置在 bin 目录下。我还尝试更改文件的权限并以管理员身份运行。但它并没有修复错误
Datanode关闭错误
2019-02-12 12:01:30,856 INFO checker.ThrottledAsyncChecker: Scheduling a check for [DISK]file:/D:/Installs/IT/hadoop-3.1.2/data/datanode
2019-02-12 12:01:30,888 WARN checker.StorageLocationChecker: Exception checking StorageLocation [DISK]file:/D:/Installs/IT/hadoop-3.1.2/data/datanode
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$POSIX.stat(Ljava/lang/String;)Lorg/apache/hadoop/io/nativeio/NativeIO$POSIX$Stat;
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.stat(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.getStat(NativeIO.java:455)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfoByNativeIO(RawLocalFileSystem.java:796)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:710)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission(RawLocalFileSystem.java:678)
at org.apache.hadoop.util.DiskChecker.mkdirsWithExistsAndPermissionCheck(DiskChecker.java:233)
at org.apache.hadoop.util.DiskChecker.checkDirInternal(DiskChecker.java:141)
at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:116)
at org.apache.hadoop.hdfs.server.datanode.StorageLocation.check(StorageLocation.java:239)
at org.apache.hadoop.hdfs.server.datanode.StorageLocation.check(StorageLocation.java:52)
at org.apache.hadoop.hdfs.server.datanode.checker.ThrottledAsyncChecker$1.call(ThrottledAsyncChecker.java:142)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2019-02-12 12:01:30,888 ERROR datanode.DataNode: Exception in secureMain
org.apache.hadoop.util.DiskChecker$DiskErrorException: Too many failed volumes - current valid volumes: 0, volumes …Run Code Online (Sandbox Code Playgroud) 我正在使用 Hadoop 3 处理 Hadoop 集群 (HDP)。还安装了 Spark 和 Hive。
由于 Spark 和 Hive 目录是分开的,因此有时会有点混乱,要知道如何以及在 Spark 应用程序中保存数据的位置。
我知道,该属性spark.sql.catalogImplementation可以设置为in-memory(使用基于 Spark 会话的目录)或hive(使用 Hive 目录进行持久元数据存储 -> 但元数据仍与 Hive DB 和表分开)。
我想知道物业metastore.catalog.default是做什么的。当我将其设置hive为时,我可以看到我的 Hive 表,但由于这些表存储/warehouse/tablespace/managed/hive在 HDFS的目录中,我的用户无权访问该目录(因为 hive 是所有者)。
那么,metastore.catalog.default = hive如果我无法从 Spark 访问表,为什么要设置, 呢?和 Hortonwork 的 Hive Warehouse Connector 有关系吗?
感谢您的帮助。
Hadoop 3中的资源模型允许我们定义自定义资源类型。我进行了一些谷歌搜索,但是找不到任何可以告诉我们如何配置YARN FairScheduler以便在池中分配/隔离这些资源的信息。
我正在尝试构建一个 Oozie 工作流程来每天执行需要特定库才能运行的 python 脚本。
目前,我在集群的一个节点(由 11 个节点组成)上创建了一个 python 虚拟环境(使用 venv)。通过 Oozie,我发现可以使用指定包含虚拟环境的节点的 SSH 操作来运行脚本。或者,可以使用 Shell 操作来运行 python 脚本,但这需要在将执行 shell 的节点(任何集群节点)上创建虚拟环境,并在库方面具有相同的依赖关系。
我想避免共享密钥或配置所有集群节点来实现这一点,并在文档中查找我发现本节讨论使用 Docker 容器启动应用程序,但在我的集群的 Hadoop 版本中,此功能是实验性的且不完整(Hadoop 3.0 .0)。我认为,如果您可以从 shell 启动 Docker 容器,那么您应该也可以从 Oozie 启动它们。
所以我的问题是:有人尝试过这样做吗?这样使用docker是不是有什么技巧呢?
我遇到过这个问题,但迄今为止 2019/09/30 还没有具体答案。
更新:我尝试这样做,并且它有效(您可以在我对这个问题的回答中找到更多信息)。我仍然想知道这是否是正确的方法。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/home/admin/hadoop-3.1.0</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/home/admin/hadoop-3.1.0</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/home/admin/hadoop-3.1.0</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
虽然我已经设置了yarn.app.mapreduce.am.env和其他参数; 我收到无法找到或加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster错误.我正在尝试远程运行map reduce程序,其中hadoop安装在linux机器上,我从windows机器运行它.以下是我的作业配置设置.
public class WordCount {
public static void main(String[] args)
throws IOException, ClassNotFoundException, InterruptedException {
//
UserGroupInformation ugi = UserGroupInformation.createRemoteUser("admin");
ugi.doAs(new PrivilegedExceptionAction<Void>() {
public Void run() throws Exception {
try {
Configuration configuration = new Configuration();
configuration.set("yarn.resourcemanager.address", "192.168.33.75:50001"); // see step 3
configuration.set("mapreduce.framework.name", "yarn");
// configuration.set("yarn.app.mapreduce.am.env",
// "HADOOP_MAPRED_HOME=/home/admin/hadoop-3.1.0");
// configuration.set("mapreduce.map.env", "HADOOP_MAPRED_HOME=/home/admin/hadoop-3.1.0");
// configuration.set("mapreduce.reduce.env",
// "HADOOP_MAPRED_HOME=/home/admin/hadoop-3.1.0"); …Run Code Online (Sandbox Code Playgroud) hadoop3 ×10
hadoop ×9
apache-spark ×3
debian ×1
docker ×1
hadoop-yarn ×1
hive ×1
java ×1
oozie ×1
ssh ×1