前提:
1.准备三台虚拟机IP分别为:
192.168.1.104 master
192.168.1.105 slave1
192.168.1.106 slave2
2.到官方下载相应的hadoop包,我这里下载的是2.7.7 主要是考虑到后面会安装spark.
具体的下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
3.下载官方 JDK
jdk-8u181-linux-x64.tar.gz
具体安装 hadoop,在虚拟机根目录下创建hadoop目录,相关文件都放在此目录中。
1.简单的配置三台虚拟机分别为 master slave1 slave2
1.打开 /etc/hosts 文件,注释掉 127.0.1.1 ubuntu ,这一行,同时添加
192.168.1.104 master
192.168.1.105 slave1
192.168.1.106 slave2
修改后如图所示:
在三台虚拟机上执行相同的操作。
修改虚拟机的名称分别为 master slave1 slave2:
打开 /etc/hostname, 填写主机名称 master,其它两台分别命令为 slave1 和 slave2
2.安装JDK
1.分别上传 jdk-8u181-linux-x64.tar.gz 到三台虚拟机目录 /hadoop/
2.解压 jdk,在各个机器上分别执行命令
cd /hadoop/
tar zxvf jdk-8u181-linux-x64.tar.gz
3. 在系统文件 /etc/profile 中添加以下内容:
JAVA_HOME=/hadoop/jdk1.8.0_181
export JRE_HOME=/hadoop/jdk1.8.0_181/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
4.执行命令 source /etc/profile,使配置生效
5. 查看jdk安装是否成功 java -version,配置正确,控制台会输出安装的JDK版本
3.配置三台机器之间ssh免密码登陆:
1.执行命令 ssh-keygen -t rsa
2. 一路回车,会在 /root/ 生成 .ssh 的隐藏目录
3. 执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
4. 测试 ssh localhost 第一次登录会提示 yes/or 以后登录就不会。
同样的操作在三台机器上执行后,分别把每个机器上的 authorized_keys 内容复制到另外两台机器上,这样三台机器之间就可以免 ssh 登录 ,可以使用 ssh master,ssh slave1, ssh slave2,命令分别到各个机器之间来测试,是否可以免密码登录
4.配置hadoop。
1.上传下载好的hadoop包至服务器 master 目录/hadoop/
2.解压。 tar zxvf hadoop-2.7.7.tar.gz
3.修改hadoop的配置文件 /hadoop/hadoop-2.7.7/etc/hadoop/hadoop-env.sh
将 export JAVA_HOME=${JAVA_HOME}
修改为:export JAVA_HOME=/hadoop/jdk1.8.0_181/
4.修改 /hadoop/hadoop-2.7.7/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hadoop-2.7.7/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
5.修改 /hadoop/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/hadoop-2.7.7/hdfs/namenode</value>
<description>。。。。</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/hadoop-2.7.7/hdfs/datanode</value>
<description>。。。。</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
6.复制/hadoop/hadoop-2.7.7/etc/hadoop/mapred-site.xml.template
改名为 /hadoop/hadoop-2.7.7/etc/hadoop/mapred-site.xml
内容修改为:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
<description>Host or IP and port of JobTracker.</description>
</property>
</configuration>
7.新建文件 /hadoop/hadoop-2.7.7/etc/hadoop/masters,内容只有一行
master
8.修改 /hadoop/hadoop-2.7.7/etc/hadoop/slaves 内容只有两行,分别指定两个slave机器,内容如下:
slave1
slave2
9.利用scp命令将hadoop文件夹复制到各个从机上。
scp -r /hadoop/hadoop-2.7.7/ root@slave1:/hadoop/
scp -r /hadoop/hadoop-2.7.7/ root@slave2:/hadoop/
10.启动Hadoop
进入master机器的hadoop目录,格式化HDFS文件系统的namenode,执行命令
cd /hadoop/hadoop-2.7.7/bin/
hdfs namenode -format
执行完后,可以看到 namenode has been successfully formatted.
11.启动Hadoop集群
cd /hadoop/hadoop-2.6.0/sbin
./start-all.sh
用jps命令可以看到以下进程
ResourceManager
SecondaryNameNode
NameNode
Jps
到slave1,slave2机器上同样用jps命令来查看
DataNode
NodeManager
Jps
-------------------至此hadoop的完全分布式已经安装完成----------------------
本文暂时没有评论,来添加一个吧(●'◡'●)