CentOS-7-x86_64-Minimal-1810.iso
下载地址 http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
jdk-8u181-linux-x64.tar.gz
下载地址 https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
hadoop-2.9.2.tar.gz
下载地址 https://archive.apache.org/dist/hadoop/core/hadoop-2.9.2/
我用的是CentOS7,安装方法参考博客 http://blog.csdn.net/pucao_cug/article/details/71229416
安装3个机器,机器名称分别命名 hserver1、hserver2、hserver3如图所示(安装一个机器后其他两个直接克隆即可)。
使用ifconfig命令,查看这3个机器的IP。我的机器名和ip的对应关系是:
192.168.198.14 hserver1
192.168.198.15 hserver2
192.168.198.16 hserver3
注意:创建虚拟机时机器是动态分配IP,关机重启后IP可能会变,需把3个机器的IP手动修改为静态。
手动配置机器IP参考博客地址 https://blog.csdn.net/twingao/article/details/80217938
首先用hostname命令查看机器的名称,发现机器名称为localhost.localdomain,这个机器名称不是我们想要的。不过这个好办, 我给它改个名称,命令是:
hostname hserver1
执行完成后,在检查看,是否修改了,敲入hostname命令
类似的,将其他两个机器,分别改名为hserver2和hserver3。
修改这3台机器的/etc/hosts文件,在文件中添加以下内容:
192.168.198.14 hserver1
192.168.198.15 hserver2
192.168.198.16 hserver3
使用命令:vim /etc/hosts
配置完成后使用ping命令检查这3个机器是否相互ping得通,以hserver1为例,在什么执行命令:
ping -c 3 hserver2
以hserve1为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:
ssh-keygen -t rsa -P ‘’
使用同样的方法为hserver2和hserver3生成秘钥(命令完全相同,不用做如何修改)。
接下来要做的事情是在3台机器的/root/.ssh/目录下都存入一个内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为3台机器生成的公钥。为了方便,我下面的步骤是现在hserver1上生成authorized_keys文件,然后把3台机器刚才生成的公钥加入到这个hserver1的authorized_keys文件里,然后在将这个authorized_keys文件复制到hserver2和hserver3上面。
命令是: touch /root/.ssh/authorized_keys
然后将hserver1上的/root/.ssh/id_rsa.pub文件内容,hserver2上的/root/.ssh/id_rsa.pub文件内容,hserver3上的/root/.ssh/id_rsa.pub文件内容复制到这个authorized_keys文件中。最后将authorized_keys文件复制到其他机器。
测试使用ssh进行无密码登录
以hserver1为例输入命令: ssh hserver2
(hserver2、hserver3也是类似操作)
安装jdk
安装jdk不细说可参考博客:https://blog.csdn.net/qq_32786873/article/details/78749384
注意: 3台机器上都需要重复下面步骤操作。
在opt目录下新建一个名为hadoop的目录(命令:mkdir hadoop),并将下载得到的hadoop-2.9.2.tar.gz上载到该目录下。
文件上传命令:rz
解压命令:
tar -xvf hadoop-2.9.2.tar.gz
在/root目录下新建几个目录,复制粘贴执行下面的命令:
mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data
修改core-site.xml
执行命令:vim /opt/hadoop/hadoop-2.9.2/etc/hadoop/core-site.xml
在configuration节点内加入配置:
hadoop.tmp.dir
/root/hadoop/tmp
Abase for other temporary directories.
fs.default.name
hdfs://hserver1:9000
**修改hadoop-env.sh **
执行命令:vim /opt/hadoop/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME}
修改为:
export JAVA_HOME=/opt/java/jdk1.8.0_192 (修改为自己的JDK路径)
修改hdfs-site.xml
执行命令:vim /opt/hadoop/hadoop-2.8.2/etc/hadoop/hdfs-site.xml
在configuration节点内加入配置:
dfs.name.dir
/root/hadoop/dfs/name
Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.
dfs.data.dir
/root/hadoop/dfs/data
Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.
dfs.replication
2
dfs.permissions
false
need not permissions
新建并且修改mapred-site.xml
在该目录下,有一个名为mapred-site.xml.template的文件,复制该文件,然后改名为mapred-site.xml,命令是:
cp /opt/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop-9.2/etc/hadoop/mapred-site.xml
修改这个新建的mapred-site.xml文件,在configuration节点内加入配置:
mapred.job.tracker
hserver1:49001
mapred.local.dir
/root/hadoop/var
mapreduce.framework.name
yarn
修改slaves文件
执行命令:vim /opt/hadoop/hadoop-2.9.2/etc/hadoop/slaves
将里面的localhost删除,添加如下内容:
hserver2
hserver3
修改yarn-site.xml文件
执行命令: vim /opt/hadoop/hadoop-2.9.2/etc/hadoop/yarn-site.xml
在configuration节点内加入配置:
yarn.resourcemanager.hostname
hserver1
The address of the applications manager interface in the RM.
yarn.resourcemanager.address
${yarn.resourcemanager.hostname}:8032
The address of the scheduler interface.
yarn.resourcemanager.scheduler.address
${yarn.resourcemanager.hostname}:8030
The http address of the RM web application.
yarn.resourcemanager.webapp.address
${yarn.resourcemanager.hostname}:8088
The https adddress of the RM web application.
yarn.resourcemanager.webapp.https.address
${yarn.resourcemanager.hostname}:8090
yarn.resourcemanager.resource-tracker.address
${yarn.resourcemanager.hostname}:8031
The address of the RM admin interface.
yarn.resourcemanager.admin.address
${yarn.resourcemanager.hostname}:8033
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.scheduler.maximum-allocation-mb
2048
每个节点可用内存,单位MB,默认8182MB
yarn.nodemanager.vmem-pmem-ratio
2.1
yarn.nodemanager.resource.memory-mb
2048
yarn.nodemanager.vmem-check-enabled
false
在namenode上执行初始化
因为hserver1是namenode,hserver2和hserver3都是datanode,所以只需要对hserver1进行初始化操作,也就是对hdfs进行格式化。
执行命令: cd /opt/hadoop/hadoop-2.9.2/bin
执行初始化脚本,也就是执行命令: ./hadoop namenode -format
稍等几秒,不报错的话,即可执行初始化成功
格式化成功后,可以在看到在/root/hadoop/dfs/name/目录多了一个current目录,而且该目录内有一系列文件
关闭防火墙
执行命令,关闭防火墙,CentOS7下,命令是: systemctl stop firewalld.service
测试hadoop
在本地浏览器访问地址(我的hserver1机器IP 192.168.198.14): http://192.168.198.14:50070
自动跳转到了overview页面
点击Datanodes查看节点运行情况
在本地浏览器里访问如下地址:http://192.168.198.14:8088
自动跳转到了cluster页面
参考博客地址:https://blog.csdn.net/pucao_cug/article/details/71698903