拥有多个根是非法的(结语中的开始标记?)

Man*_*ish 3 xml

我在设置 hadoop 时遇到错误。

java.lang.RuntimeException:com.ctc.wstx.exc.WstxParsingException:具有多个根是非法的(结尾中的开始标记?)。在[行,列,系统ID]:[8,2,“文件:/usr/local/hadoop/etc/hadoop/core-site.xml”]

核心站点.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/app/hadoop/tmp</value>
    <description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.</description>
</property>
Run Code Online (Sandbox Code Playgroud)

看来上面的错误是由于xml格式造成的。我可以知道如何修复此类错误吗?

Ama*_*dan 5

一份 XML 只能有一个顶级(“根”)元素(<?xml>不包括处理指令)。在Hadoop中core-site.xml,这个标签应该是<configuration>。因此,请尝试以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/app/hadoop/tmp</value>
        <description>A base for other temporary directories.</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
        <description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.</description>
    </property>
<configuration>
Run Code Online (Sandbox Code Playgroud)


小智 5

按照以下步骤安装 hadoop:\n以分布式模式安装 HADOOP 的步骤\n步骤 1:-

\n
#cd /home/masternode\n# mkdirhadoopinfra\n# chown -R root:roothadoopinfra\n# chmod -R 777 hadoopinfra\n
Run Code Online (Sandbox Code Playgroud)\n

步骤 1:- 打开 /root/.bashrc 文件并在文件中添加以下行

\n
export HADOOP_HOME=/usr/lib/hadoop_package/hadoop-2.5.6\nexport HADOOP_MAPRED_HOME=$HADOOP_HOME \nexport HADOOP_COMMON_HOME=$HADOOP_HOME \nexport HADOOP_HDFS_HOME=$HADOOP_HOME \nexport YARN_HOME=$HADOOP_HOME\nexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native \nexport PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin\n
Run Code Online (Sandbox Code Playgroud)\n

步骤 2:- 现在将所有更改应用到当前运行的系统中。\nsource ~/.bashrc\n现在启动 Hadoop 配置\n步骤 3:- 您可以在位置 \xe2\x80\x9c$HADOOP_HOME 中找到所有 Hadoop 配置文件/etc/hadoop\xe2\x80\x9d。您需要根据您的 Hadoop 基础架构对这些配置文件进行必要的更改。\n$ cd $HADOOP_HOME/etc/hadoop\n为了使用 java 开发 Hadoop 程序,您必须在 hadoop-env.sh 中重置 java 环境变量通过将 JAVA_HOME 值替换为系统中 java 的位置来创建文件。\ngedit hadoop-env.sh 并将 java 路径添加到此文件\nexport JAVA_HOME=/usr/lib/hadoop_package/jdk1.8.0_161

\n

步骤 4:- core-site.xml\ncore-site.xml 文件包含 Hadoop 实例使用的端口号、为文件系统分配的内存、存储数据的内存限制以及读/写大小等信息缓冲区。\n打开 core-site.xml 并在 和 标记之间添加以下属性。

\n
<configuration>\n<property>\n<name>fs.default.name</name>\n<value>hdfs://localhost:9000</value>    //  hdfs://192.168.64.131:9000   <master ip>\n</property>\n</configuration>\n
Run Code Online (Sandbox Code Playgroud)\n

步骤 5:- hdfs-site.xml\nhdfs-site.xml 文件包含本地文件系统的复制数据值、名称节点路径和数据节点路径等信息。它意味着您要存储 Hadoop 基础设施的位置。

\n
<configuration>\n\n<property>\n<name>dfs.replication</name>\n<value>1</value>\n</property>\n<property>\n<name>dfs.name.dir</name>\n<value>file:///home/masternode/hadoopinfra/hdfs/namenode </value>\n</property>\n<property>\n<name>dfs.data.dir</name>\n<value>file:///home/masternode/hadoopinfra/hdfs/datanode </value >\n</property>\n\n</configuration>\n
Run Code Online (Sandbox Code Playgroud)\n

步骤 6:-yarn-site.xml\n此文件用于将yarn配置到Hadoop中。打开yarn-site.xml 文件并在此文件中的 , 标记之间添加以下属性。

\n
<configuration>\n<property>\n<name>yarn.nodemanager.aux-services</name>\n<value>mapreduce_shuffle</value>\n</property>\n\n</configuration>\n
Run Code Online (Sandbox Code Playgroud)\n

STEP 7:- mapred-site.xml\n此文件用于指定我们正在使用哪个 MapReduce 框架。默认情况下,Hadoop包含一个yarn-site.xml模板。首先,您需要使用以下命令将文件从 mapred-site,xml.template 复制到 mapred-site.xml 文件。\n$ cpmapred-site.xml.template mapred-site.xml\n打开 mapred-site.xml文件并在此文件中的 , 标记之间添加以下属性。

\n
<configuration>\n<property>\n<name>mapreduce.framework.name</name>\n<value>yarn</value>\n</property>\n\n</configuration>\n
Run Code Online (Sandbox Code Playgroud)\n

步骤 8:- 验证 Hadoop 安装\n以下步骤用于验证 Hadoop 安装。

\n

全部启动.sh

\n

太平绅士

\n