# cat hadoop-env.sh
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
export HADOOP_HOME=/usr/lib/hadoop
export JAVA_HOME=/opt/programs/jdk1.7.0_67/
export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC -XX:ParallelGCThreads=8"
export HADOOP_HEAPSIZE=16384
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/lib/hadoop-lzo.jar
在/etc/hadoop/conf/slaves中指定集群的hostname
# cat slaves
bd-ops-test-74
bd-ops-test-75
bd-ops-test-76
bd-ops-test-77
4.2修改hadoop配置文件
在/etc/hadoop/conf/core-site.xml中设置fs.defaultFS属性值,该属性指定NameNode是哪一个节点以及使用的文件系统是file还是hdfs,格式:hdfs://<namenode host>:<namenode port>/,默认的文件系统是file:///:
<property>
<name>fs.defaultFS</name>
<value>hdfs://bd-ops-test:8020</value>
</property>
在/etc/hadoop/conf/hdfs-site.xml中设置dfs.permissions.superusergroup属性,该属性指定hdfs的超级用户,默认为hdfs,你可以修改为hadoop:
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
</property>
更多的配置信息说明,请参考 Apache Cluster Setup
4.3指定本地文件目录
在hadoop中默认的文件路径以及权限要求如下:
目录 所有者 权限 默认路径
hadoop.tmp.dir hdfs:hdfs drwx------ /var/hadoop
dfs.namenode.name.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/name
dfs.datanode.data.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/data
dfs.namenode.checkpoint.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/namesecondary
说明你可以在 hdfs-site.xm l中只配置hadoop.tmp.dir,也可以分别配置上面的路径。这里使用分别配置的方式,hdfs-site.xml中配置如下:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoop/data/hdfs/nn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///opt/hadoop/data1/hdfs/dn,file:///opt/hadoop/data2/hdfs/dn,file:///opt/hadoop/data3/hdfs/dn</value>
</property>
在NameNode上手动创建 dfs.name.dir 或 dfs.namenode.name.dir 的本地目录:
mkdir -p /opt/hadoop/data/hdfs/nn
在DataNode上手动创建 dfs.data.dir 或 dfs.datanode.data.dir 的本地目录:
mkdir -p /opt/hadoop/data{1,2,3}/hdfs/dn
修改上面目录所有者:
chown -R hdfs:hdfs /opt/hadoop/*
hadoop的进程会自动设置 dfs.data.dir 或 dfs.datanode.data.dir,但是 dfs.name.dir 或 dfs.namenode.name.dir 的权限默认为755,需要手动设置为700:
# chmod 700 /opt/hadoop/data/hdfs/nn
注意:DataNode的本地目录可以设置多个(我这里有三个),你可以设置 dfs.datanode.failed.volumes.tolerated 参数的值,表示能够容忍不超过该个数的目录失败。
4.4开启回收站功能
回收站功能默认是关闭的,建议打开。在 /etc/hadoop/conf/core-site.xml 中添加如下两个参数:
fs.trash.interval,该参数值为时间间隔,单位为分钟,默认为0,表示回收站功能关闭。该值表示回收站中文件保存多长时间,如果服务端配置了该参数,则忽略客户端的配置;如果服务端关闭了该参数,则检查客户端是否有配置该参数;
fs.trash.checkpoint.interval,该参数值为时间间隔,单位为分钟,默认为0。该值表示检查回收站时间间隔,该值要小于fs.trash.interval,该值在服务端配置。如果该值设置为0,则使用 fs.trash.interval 的值。
4.5开启WebHDFS
在NameNode节点上安装:
# yum install hadoop-httpfs -y
然后修改 /etc/hadoop/conf/core-site.xml配置代理用户: