1、基于Linux操作系统安装JDK1.8.0
(1)新建三台Linux虚拟机,选择CentOS 64位。
(2)主节点虚拟机命名为master,数据节点命名为slave01,slave02。
(3)选择与VMware版本相匹配的光盘映像文件。
(4)上传jdk1.8.0压缩包。
(5)使用rpm -qa|grep jdk查看Linux系统自带java并删除相关文件。
(6)使用命令tar -zxvf解压jdk安装包。
(7)配置环境变量并使其生效;添加上路径
打开bashrc文件
1)vi ~/.bashrc
在/etc/profile文件末尾加:
export JAVA_HOME=/usr/local/java/jdk1.8.0_2
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$JAVA_HOME/lib/:$JRE_HOME/lib/
export PATH=$JAVA_HOME/bin:$PATH
2)Source ~/.bashrc,使环境变量生效。
(8)检测jdk正确安装
java -version
2、Hadoop的安装
(1)关闭防火墙。
(2)解析主机名。
(3)配置节点等价性这里master节点和其他datanode节点会略有区别。首先所有节点均执行如下命令,遇到提示一路回车即可:ssh-keygen -t rsa。
我们用的root用户,公钥私钥都会保存在~/.ssh下:
(4)在主节点执行命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys。
(5)scp文件到datenode节点:scp ~/.ssh/authorized_keys slave:~/.ssh/。
(6)然后输入密码即可,以后再到其他机器就不需要密码。
测试是否成功
(7)解压缩hadoop安装包。
(8)追加bashrc文件。
#HADOOP
export HADOOP_HOME=/usr/hadoop/hadoop7
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
Export HADOOP_HOME_WARN_SUPPRESS=1
(9)确认Hadoop环境配置生效。
(10)创建HDFS存储目录cd /usr/hadoop
mkdir hdfs
cd hdfs
mkdir name data tmp
/usr/hadoop/hdfs/name --存储namenode文件
/usr/hadoop/hdfs/data --存储数据
/usr/hadoop/hdfs/tmp --存储临时文件
(11)配置文件
1)配置core-site.xml。
修改Hadoop核心配置文件/usr/hadoop/hadoop7/etc/hadoop/core-site.xml
通过fs.default.name指定 NameNode 的 IP 地址和端口号,通过hadoop.tmp.dir指定hadoop数据存储的临时文件夹。
<configuration>
<property>
<name>hadoop.tmp.dirname>
<value>/usr/hadoop/hdfs/tmpvalue>
property>
<property>
<name>fs.default.namename>
<value>hdfs://master:9000value>
property>
configuration>
2)配置hdfs-site.xml
通过dfs.replication指定HDFS的备份因子为2,通过dfs.name.dir指定namenode节点的文件存储目录,通过dfs.data.dir指定datanode节点的文件存储目录。
<configuration>
<property>
<name>dfs.replicationname>
<value>3value>
property>
<property>
<name>dfs.name.dirname>
<value>/usr/hadoop/hdfs/namevalue>
property>
<property>
<name>dfs.data.dirname>
<value>/usr/hadoop/hdfs/datavalue>
property>
<property>
<name>dfs.permissionsname>
<value>falsevalue>
property>
configuration>
3)配置mapred-site.xml。
修改MapReduce核心配置文件:
/usr/hadoop/hadoop7/etc/hadoop/mapred-site.xml
通过mapred.job.tracker属性指定JobTracker的地址和端口。
<configuration>
<property>
<name>mapreduce.framework.name name>
<value>yarnvalue>
property>
configuration>
4)配置yarn-site.xml
修改MapReduce核心配置文件:
/usr/hadoop/hadoop7/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>mastervalue>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.nodemanager.vmem-check-enabledname>
<value>falsevalue>
property>
configuration>
(12)配置masters文件。
修改/user/hadoop/conf/masters文件,该文件指定namenode节点所在的服务器机器。删除localhost,添加namenode节点的主机名K-Master;不建议使用IP地址,因为IP地址可能会变化,但是主机名一般不会变化。/usr/hadoop/hadoop7/etc/hadoop/slaves 将里面的localhost删除,配置后内容如下:
其中HOSTNAME与主机名一致。主机名如果跟系统安装时不一致请执行hostname命令让其立即生效,否则会影响各节点访问。
(13)验证启动,格式化HDFS文件系统。
因为master是namenode,slave01和slave02都是datanode,所以在master上运行:
hadoop namenode -format
格式化成功后,可以看到在/usr/hadoop/hdfs/name目录下多了一个current目录,而且该目录下有一系列文件,如下:
(14)copy整个/usr/hadoop/目录到其它机器:
scp -r hadoop root@slave01:/usr/
scp -r hadoop root@slave02:/usr/
(15)执行 start-all.sh
master上执行jps,会看到NameNode, SecondaryNameNode, ResourceManager。
其它节点上执行jps,会看到DataNode, NodeManager