说明:环境cenots7.5 jdk8 hadoop2.7.2
集群节点说明:(此处为公网ip)
39.100.131.85 hadoop1 NameNode、DataNode、NodeManager(对应内网ip:172.26.90.185)
47.92.83.71 hadoop2 DataNode、 ResourceManager(对应内网ip:172.26.90.187)
39.100.67.111 hadoop3 DataNode、SecondaryNameNode、NodeManager(对应内网ip:172.26.90.188)
1.修改host配置文件
这里使用主机名作为互相访问方式,如果想使用ip需在hadoop的配置文件中配置使用ip连接的参数
(这里要配置ifconfig里面的ip,我的是阿里云的,一开始配置的是公网的那个ip,也就是是用来ssh连接服务器的那个,结果namenode怎么都启动不了,报错ulimit -a for user root,最后改为ifconfig查询到的ip就可以了,阿里云买的服务器会为每一个账号分配一个路由,你购买的几台服务器eth0的前三个网段是一样的,做服务配置最好都用这个ip,不要用控制台给的那个用来连接服务器的公网ip,测试服务是否可以,在浏览器中输入的地址为公网ip)
vim /etc/hosts
可以通过【ping】命令查看
(三台服务器的host都需要做相同的配置,并关闭防火墙)
2.安装jdk
下载jdk需要验证,而wget默认跳过验证所以需要在自己电脑上下载好jdk然后上传到服务器上,我的jdk是:jdk-8u202-linux-x64.tar.gz
cd /usr/local/
tar -zxvf jdk-8u202-linux-x64.tar.gz
#配置环境变量(永久生效需要vim /etc/profile 然后在最后添加下面的export信息最后source一下 )
export JAVA_HOME=/usr/local/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
#使配置的环境变量生效
source /etc/profile
#测试
java -version
3.安装hadoop
tar -zxvf hadoop-2.7.2.tar.gz -C /usr/local/
export HADOOP_HOME=/usr/local/hadoop-2.7.2/
export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile
hadoop version
4.配置配置文件
4.1配置hadoop-env.sh
是hadoop的运行环境,用来定义hadoop运行环境相关的配置信息
//文件末尾
export JAVA_HOME=/usr/local/jdk1.8.0_202
4.2配置core-site.xml
是集群的全局参数文件,用于定义系统级别的参数,如hdfs url、hadoop临时目录等
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
4.3配置 hdfs-site.xml
配置如名称节点和数据节点的存放位置,文件副本个数、文件的读取权限等
mkdir -p /home/jiabo/data/hadoop/data/
mkdir -p /home/jiabo/data/hadoop/name
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondarynamenode的地址 辅助namenode工作 -->
<property>
<name>dfs.namenode.secondary.http-address</name> <value>hadoop3:50090</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/jiabo/data/hadoop/name/</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/jiabo/data/hadoop/data/</value>
</property>
</configuration>
4.4配置yarn-site
集群资源管理系统参数,配置ResouorceManager,nodeManager的通信端口,web监控端口等
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop2</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
#当该值配置小于1024(1GB)时,NM是无法启动的
<value>1500</value>
</property>
</configuration>
4.5配置mapred-env.sh
配置MapReduce参数
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.6配置slaves
hadoop1
hadoop2
hadoop3
5.分发文件
scp -r hadoop-2.7.2 hadoop2:/usr/local
scp -r hadoop-2.7.2 hadoop3:/usr/local
6.SSH无密登录配置
ssh-keygen(一直回车就行)
ssh-copy-id -i .ssh/id_rsa.pub hadoop2
ssh-copy-id -i .ssh/id_rsa.pub hadoop3
(在另外两台机器执行相同操作)
7.启动
7.1如果集群是第一次启动,需要格式化NameNode(格式化只进行一次!)
hadoop namenode -format
7.2在hadoop1上启动NameNode
sbin/hadoop-daemon.sh start namenode
7.3在teacher1,teacher2,teacher3上分别启动DataNode
sbin/hadoop-daemon.sh start datanode
7.4集群式启动所有节点yarn
start-yarn.sh
hadoop的节点查看(使用主机名对应的公网ip地址)
http://hadoop1:50070/
Yarn的web页面查看地址:http://hadoop2:8088/
http://39.100.67.111:50090/status.html
创建文件夹测试:
上传文件
下载已上传文件