一、机器及环境准备。
1、jdk安装不用多说,安装完成配置环境变量即可。
export JAVA_HOME=/usr/java/latest
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
运行 #source /etc/profile让环境变量生效
2、将下载的hadoop-2.8.0.tar.gz文件解压到指定目录/data/下,然后需要配置hadoop相关的环境变量,这里为了区别,特意做一个单独的配置文件,放到/etc/profile.d目录下,取名hadoop.sh,文件内容如下。
同样的为了让环境变量生效,需要运行# source /etc/profile
3、配置免密钥登录,这里需要在namenode节点上远程操作datanode节点,因此只需要在linux-node1上配置免密登录,然后将密钥拷贝到linux-node1,linux-node2,linux-node3上,linux-node1本机也需要免密登录,如果不配置这一步,在启动hdfs时,需要手动输入密码。
#ssh-keygen -t rsa -P ""
#cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
#ssh-copy-id linux-node2
#ssh-copy-id linux-node3
上面依次创建一对密钥,然后在linux-node1上将id_rsa.pub复制为authorized_keys,这样就实现了在本季免密登录。最后分别利用ssh-copy-id命令将密钥拷贝到linux-node2,linux-node3上。
说明一点:hadoop-2.8.0二进制安装包是在x64位机器上编译的,所以如果是64位虚拟机,无须下载源码编译来生成本地库,我们可以通过查看lib/native/libhadoop.so.1.0.0文件,来验证具体的编译信息。
[root@linux-node1 hadoop-2.8.0]# file lib/native/libhadoop.so.1.0.0
lib/native/libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x4f0a2f27e6f1a45560dad736ba475a8d7fb97a09, not stripped
二、准备配置文件。
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://linux-node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop-2.8.0/tmp</value>
</property>
</configuration>
根据配置文件,需要在hadoop安装目录下新建tmp目录。
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>linux-node1:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop-2.8.0/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/hadoop-2.8.0/hdfs/data</value>
</property>
</configuration>
根据配置文件,需要在hadoop安装目录下新建hdfs/name,hdfs/data两个目录。
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>linux-node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>linux-node1:19888</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>linux-node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>linux-node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>linux-node1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>linux-node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>linux-node1:8088</value>
</property>
</configuration>
slaves
[root@linux-node1 hadoop]# cat slaves
linux-node2
linux-node3
hadoop-env.sh(可选),如果安装jdk时,配置环境变量使用了软链的方式将jdk的安装目录映射到/usr/java/latest这样的目录,这里就需要将hadoop-env.sh中JAVA_HOME的值需要设置一下,否则在启动hdfs时会出现java_home未设置的错误,如果直接指定jdk的安装目录,则不用设置。
# The java implementation to use.
export JAVA_HOME=/usr/java/latest
配置文件准备好了之后,可以将hadoop-2.8.0安装包拷贝到linux-node2,linux-node3机器对应的目录下。
scp -r /data/hadoop-2.8.0 linux-node2:/data/
scp -r /data/hadoop-2.8.0 linux-node3:/data/
三、格式化和启动hdfs,yarn。
在主节点上运行以下命令:hdfs namenode -format,入下图所示,表示格式化成功。
sbin/start-dfs.sh//启动dfs文件系统,可以查看hdfs文件系统。
sbin/start-yarn.sh//启动yarn,可以运行mapreduce程序。
如果需要关闭,依次关闭yarn,hdfs
sbin/stop-yarn.sh
sbin/stop-dfs.sh
四、登录图形界面查看集群状态。
在浏览器中访问地址:http://192.168.61.21:50070
overview
datanode