配置伪分布模式
1.配置xml文件:
这里需要设定3个文件:core-site.xml hdfs-site.xml mapred-site.xml,都在/home/vinking/hadoop/conf目录下
core-site.xml: Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xml: Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。
#mkdir tmp
#mkdir hdfs
#mkdir hdfs/name
#mkdir hdfs/data
配置core-site.xml
fs.default.name NameNode的IP地址和端口,通过这个配置可以知道整个hadoop集群的名称节点及监听端口在哪里,怎么样进行联系
hdfs://localhost:9000 伪分布式设置为localhost即可,若为真实的完全分布式则为名称节点真实的ip地址才能工作,否则进程可以启动,但格式化名称节点时会失败,端口普遍使用这个端口,不太有必要做改动
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
配置hdfs-site.xml:
dfs.name.dir 用逗号隔开的目录名 ${hadoop.tmp.dir}/dfs/name 存储名称节点永久元数据的目录列表。名称节点在列表的每一个目标下存储着元数据的副本。
dfs.data.dir 用逗号隔开的目录名 ${hadoop.tmp.dir}/dfs/data 数据节点存储块的目录列表
dfs.replication 在分布式文件系统里面要把数据块复制多少份,这里是伪分布式,所以是复制一份
fs.checkpoint.dir 用逗号隔开的目录名 ${hadoop.tmp.dir}/dfs/namesecondary 查点的目录的列表,它在列表的每一个目录下存储着检查点的副本。
/hdfs/data /hdfs/name 这两个文件夹都需要先建好
注意:HDFS的存储目录默认在Hadoop的临时目录下(hadoop.tmp.dir 属性,其默认目录是 /tmp/hadoop-${user.name}),所以这些属性的设置很重要,可保证数据在情况临时目录是不会丢失。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/vinking/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/vinking/hadoop/hdfs/data</value>
</property>
</configuration>
这里有个问题,<?xml version="1.0"?>前面空了一行,这个导致我后面在格式化HDFS的失败。
配置mapred-site.xml:
作业跟踪器所在位置,完全分布式的话 localhost要改为真实ip地址
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
2.格式化HDFS:
格式化hdfs,出现问题。提示 hdfs-site.xml 格式出现问题,网上查找了一下 是最上面空了一行,去掉那行后,重新格式化,就成功了。<?xml version="1.0" encoding="UTF-8"?>前面不要有任何其他字符,如空格、回车、换行这些否则就会出现上面的异常。
成功会出现如下信息:
3.启动Hadoop
接着执行start-all.sh来启动所有服务,包括namenode,datanode,start-all.sh脚本用来装载守护进程。这些验证方式是来自网上查找。
用Java的jps命令列出所有守护进程来验证安装成功
#jps
哈哈哈哈哈,千辛万苦,终于成功啦。虽然很多的命令及验证方式不太懂是什么意思。
4.检查运行状
所有的设置已完成,Hadoop也启动了,现在可以通过下面的操作来查看服务是否正常,在Hadoop中用于监控集群健康状态的Web界面:
http://localhost:50030/ - Hadoop 管理介面
http://localhost:50060/ - Hadoop Task Tracker 状态
http://localhost:50070/ - Hadoop DFS 状态