hadoop集群配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop集群配置相关的知识,希望对你有一定的参考价值。

hadoop fs -ls使用该命令后出现
[Fatal Error] mapred-site.xml:7:3: The content of elements must consist of well-formed character data or markup.
11/09/11 12:56:10 FATAL conf.Configuration: error parsing conf file: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1167)
at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:1029)
at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:979)
at org.apache.hadoop.conf.Configuration.get(Configuration.java:381)
at org.apache.hadoop.conf.Configuration.getInt(Configuration.java:450)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:181)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:169)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1373)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1385)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:191)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95)
at org.apache.hadoop.fs.FsShell.init(FsShell.java:82)
at org.apache.hadoop.fs.FsShell.run(FsShell.java:1731)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.fs.FsShell.main(FsShell.java:1880)
Caused by: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1078)
... 17 more
这是什么错误,该如何解决??

你的配置文件mapred-site.xml有问题,估计是哪个配置项写错了,是否可以将此文件内容贴出来看看,最简单的情况下mapred-site.xml的配置如下,一个自定义选项即可,以下是伪分布式或者单机部署配置,分布式将<value>修改为你的jobtracker节点即可。
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>追问

zyn@zyn-desktop:~/hadoop/hadoop-0.20.1/bin$ hadoop fs -ls

11/09/12 10:11:44 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:8020. Already tried 0 time(s).
……
11/09/12 10:11:54 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:8020. Already tried 9 time(s).
Bad connection to FS. command aborted.
改过之后运行时又变成这样了

追答

你配置的是分布式吗,几个节点,namenode和jobtracker是同一节点吗,看样子像是core-site.xml配置的namenode的DFS位置有误,提示上看是无法和名称节点取得联系,你是按照什么文档配置的呢,要按照官方问文档上面的。

追问

能不能在QQ上聊的?1034993675
我刚开始看这个,不是很懂的

追答

这是工作时间,现在正忙着不便聊天,留个邮箱:nuoline@163.com,
可以参考http://hadoop.apache.org/common/docs/stable/single_node_setup.html
你也可以参看这本书《hadoop-开源云计算平台》,我是这本书的作者,书的详情:http://www.buptpress.com/product/book_content.jsp?pid=4979&cid=1&pstate=2

参考技术A hadoop的conf目录中的hadoop-env.sh文件中是否有配置JAVA_HOME?
export JAVA_HOME=你的Java环境路径

[hadoop@s12094 ~]$ cat hadoop-0.20.2/conf/hadoop-env.sh
.......
export JAVA_HOME=/usr/java/jdk1.6.0_21
.......
柳州电脑网
jhadoop集群配置

学习笔记Hadoop—— Hadoop集群的安装与部署—— 配置Hadoop集群

四、配置Hadoop集群

Hadoop集群总体规划

Hadoop集群安装采用下面步骤:

  1. 在Master节点:上传并解压Hadoop安装包 。
  2. 在Master节点:配置Hadoop所需configuration配置文件。
  3. 在Master节点:拷贝配置好的Hadoop安装包到其他节点。
  4. 在所有节点:创建数据存储目录 。
  5. 在Master节点:执行HDFS格式化操作。

4.1、上传并解压Hadoop安装包

(这里我已经用Xshell连接到Master结点了)

Hadoop安装包链接:https://pan.baidu.com/s/1teHwnBH2Qm6F7iWZ3q-hSQ
提取码:cgnb

上传

完成后用 ls 指令查看
在这里插入图片描述
解压

tar -zxf hadoop-2.6.5.tar.gz -C /opt/

4.2、修改配置文件:hadoop-env.sh

首先进入/opt/hadoop-2.6.5/etc/hadoop/目录

cd /opt/hadoop-3.1.4/etc/hadoop/

配置hadoop-env.sh

vi hadoop-env.sh

4.3、修改配置文件:core-site.xml & hdfs-site.xml

首先进入/opt/hadoop-2.6.5/etc/hadoop/目录

cd /opt/hadoop-3.1.4/etc/hadoop/

配置core-site.xml

vi core-site.xml

<configuration> </configuration>间添加如下

<!--hdfs临时路径-->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/data/hadoop/tmp</value>
</property>
<!--hdfs 的默认地址、端口 访问地址-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
</property>


配置hdfs-site.xml

vi hdfs-site.xml

<configuration> </configuration>间添加如下

<property>
    <name>dfs.namenode.http-address</name>
    <value>master:50070</value> 
</property>
<!-- 副本数-->
<property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
<!-- 是否启用hdfs权限检查 false 关闭 -->
       <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
<!-- 块大小,默认字节, 可使用 k m g t p e-->
       <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
    <value>/data/hadoop/namenode</value>
    </property>
    <property>
      <name>dfs.datanode.name.dir</name>
      <value>/data/hadoop/datanode</value>
    </property>

4.4、修改配置文件:mapred-site.xml & yarn-site.xml & workers

首先进入/opt/hadoop-2.6.5/etc/hadoop/目录

cd /opt/hadoop-3.1.4/etc/hadoop/

配置mapred-site.xml

vi mapred-site.xml

<configuration> </configuration>间添加如下

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.1.4</value>
</property>
<property>
        <name>mapreduce.application.classpath</name>
        <value>/opt/hadoop-3.1.4/share/hadoop/mapreduce/*:/opt/hadoop-3.1.4/share/hadoop/mapreduce/lib/*</value>
</property>

配置yarn-site.xml

vi yarn-site.xml

<configuration> </configuration>间添加如下

<!--集群master-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>

<!-- NodeManager上运行的附属服务-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 关闭内存检测-->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

配置workers

vi workers

把里面内容改为

node1
node2
node3

4.5、拷贝Hadoop安装包

进入/opt目录,通过指令(依次执行)拷贝到node1、node2、node3目录
(可以多建立几个会话,速度会快些)

scp -r hadoop-3.1.4/ node1:/opt/
scp -r hadoop-3.1.4/ node2:/opt/
scp -r hadoop-3.1.4/ node3:/opt/

4.6、创建数据目录

(依次执行下面语句)

mkdir -p /data/hadoop/tmp
mkdir -p /data/hadoop/namenode
ssh node1 "mkdir -p /data/hadoop/tmp & mkdir -p /data/hadoop/datanode"
ssh node2 "mkdir -p /data/hadoop/tmp & mkdir -p /data/hadoop/datanode"
ssh node3 "mkdir -p /data/hadoop/tmp & mkdir -p /data/hadoop/datanode"

4.7、格式化HDFS

进入hadoop安装下的bin目录

cd /opt/hadoop-3.1.4/bin/

执行

./hdfs namenode -format demo


格式化完成,集群配置完成

以上是关于hadoop集群配置的主要内容,如果未能解决你的问题,请参考以下文章

hadoop集群配置

搭建hadoop集群,稳定运行多久

Hadoop集群及组件

学习笔记Hadoop—— Hadoop集群的安装与部署—— Hadoop配置参数介绍Hadoop集群启动与监控

Hadoop运行模式编写Hadoop集群常用脚本Hadoop集群启停脚本常用端口号说明集群时间同步时间服务器配置其他机器配置

HBase集群配置Snappy压缩算法