一:Hadoop伪分布式配置:
node
1.core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/mysoftware/hadoop-2.6.4/tmp</value> </property> <property> <name>hadoop.native.lib</name> <value>false</value> </property> </configuration> 2.hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/mysoftware/hadoop-2.6.4/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/mysoftware/hadoop-2.6.4/dfs/data</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> 3.mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 4.yarn-site.xml <configuration> <property> <description>The hostname of the RM.</description> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce.shuffle</value> </property> </configuration>
1. 在conf/hadoop-env.sh文件中增长:apache
export JAVA_HOME=/mysoftware/jdk1.7.0_80 (这是个人JDk的安装路径)分布式
2. 在core-site.xml文件中增长以下内容:oop
<!-- fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都须要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才能够被使用。独立的客户端程序经过这个URI跟DataNode交互,以取得文件的块列表。-->测试
<property> spa
<name>fs.defaultFS</name> 插件
<value>hdfs://master:9000</value> code
</property> orm
【这里的值指的是默认的HDFS路径。当有多个HDFS集群同时工做时,用户若是不写集群名称,那么默认使用哪一个哪?在这里指定!该值来自于hdfs-site.xml中的配置】xml
<!—hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,不少路径都依赖它。若是hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/mysoftware/hadoop-2.6.4/tmp</value>
</property>
3. 在hdfs-site.xml中增长以下内容:
<!-- dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它应该被设为3(这个数字并无上限,但更多的备份可能并无做用,并且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会形成数据丢失)-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上 的这个路径没有必要彻底相同,由于每台机器的环境极可能是不同的。但若是每台机器上的这个路径都是统一配置的话,会使工做变得简单一些。默认的状况下,它的值hadoop.tmp.dir, 这个路径只能用于测试的目的,由于,它极可能会丢失掉一些数据。因此,这个值最好仍是被覆盖。
dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不须要使用到它。上面对于/temp类型的警告,一样也适用于这里。在实际应用中,它最好被覆盖掉。-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/mysoftware/hadoop-2.6.4/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/mysoftware/hadoop-2.6.4/dfs/data</value>
</property>
<!—解决:org.apache.hadoop.security.AccessControlException:Permission denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x 。
由于Eclipse使用hadoop插件提交做业时,会默认以 DrWho 身份去将做业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/hadoop , 因为 DrWho 用户对hadoop目录并无写入权限,因此致使异常的发生。解决方法为:
放开 hadoop 目录的权限, 命令以下 :$ hadoop fs -chmod 777 /user/hadoop -->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
4. mapred-site.xml中增长以下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
[ 指定运行mapreduce的环境是yarn ]
5.yarn-site.xml
<configuration>
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
</configuration>
【指定定ResourceManager的地址,仍是单点】
6.文件slaves:
master
[ 指定全部的DataNode节点列表,每行一个节点名称 ]