硬件配置:1台NameNode节点、2台DataNode节点
一、Linux环境配置
这里我只配置NameNode节点,DataNode节点的操作相同。
1.1、修改主机名
命令:vi /etc/sysconfig/network
修改内容:
NETWORKING=yes
HOSTNAME=master
命令:hostname master
1.2、修改ip地址(桥接模式)
命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改内容:(保留最简配置)
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.12.80
NETMASK=255.255.255.0
GATEWAY=192.168.12.254
命令:service network restart 重启网络服务
1.3、配置主机名和ip地址的映射关系
命令:vi /etc/hosts
修改内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.12.80 master
192.168.12.81 slave1
192.168.12.82 slave2
1.4、关闭防火墙
命令:service iptables status 查看防火墙状态
命令:service iptables stop 关闭防火墙
1.5、设置防火墙开机不启动
命令:chkconfig iptables --list 查看防火墙开机启动状态
命令:chkconfig iptables off 设置防火墙开机不启动
二、java环境配置
使用软件SSHSecureShellClient进行文件的上传、远程命令执行等。
2.1、上传jdk
创建文件夹用于存放jdk文件,下载用于linux操作系统的jdk版本。
命令:mkdir java
2.2、解压jdk
命令:tar -zxvf jdk-8u121-linux-x64.tar.gz -C /home/bi/java
2.3、修改环境变量
命令:vi /etc/profile
修改内容:
export JAVA_HOME=/home/bi/java/jdk1.8.0_121
export PATH=${JAVA_HOME}/bin:$PATH
命令:source /etc/profile 重新加载环境变量脚本
2.4、验证java是否生效
命令:java -version
2.5、将java文件夹复制到DataNode节点下,并配置JDK环境变量
命令:
scp -r java bi@slave1:/home/bi/java
scp -r java bi@slave2:/home/bi/java
三、hadoop环境配置
3.1、上传hadoop安装包
创建文件夹用于存放hadoop安装文件
命令:mkdir hadoop
3.2、解压hadoop安装包
命令:tar -zxvf hadoop-2.7.3.tar.gz -C /home/bi/hadoop
在hadoop中有几个重要的目录:
sbin:启动或者停止hadoop相关服务的脚本
bin:对hadoop相关服务进行操作的脚本
etc:hadoop相关配置文件
share:hadoop依赖的相关jar包和文档
lib:hadoop本地库
3.3、修改环境变量
命令:vi /etc/profile
修改内容:
export HADOOP_HOME=/home/bi/hadoop/hadoop-2.7.3
export PATH=${JAVA_HOME}/bin:$PATH:${HADOOP_HOME}/bin
命令:source /etc/profile
3.4、配置hadoop(完全分布式)
命令:mkdir data 在hadoop文件夹下创建data文件夹用于存放hdfs数据
进入目录/hadoop/hadoop-2.7.3/etc/hadoop下:
1)修改core-site.xml文件
<configuration>
<!-- 配置NameNode地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 配置HDFS数据存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bi/hadoop/hadoop-2.7.3/data</value>
</property>
</configuration>
2)修改hdfs-site.xml文件
<configuration>
<!-- 配置HDFS副本备份数 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 配置SecondaryNameNode地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
</configuration>
3)修改mapred-site.xml文件
<configuration>
<!-- 配置mapreduce运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
4)修改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>
<!-- 配置resourcemanager的地址 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
5)修改slaves文件
修改内容:(删除文件中其他内容)
slave1
slave2
6)修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件
修改内容:
export JAVA_HOME=/home/bi/java/jdk1.8.0_121
3.5、配置ssh免密码登录
1)执行下列命令,让master节点能够免密码登录自身服务器
命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
2)让master节点可以免密码登录到两个子节点(slave1、slave2)
为了实现这个功能,两个slave节点的公钥文件中必须要包含主节点的公钥信息,这样master就可以顺利安全的访问这两个slave节点了。
命令:
scp -r id_rsa.pub bi@slave1:/home/bi/.ssh/authorized_keys
scp -r id_rsa.pub bi@slave2:/home/bi/.ssh/authorized_keys
命令:测试免密码登录是否成功
ssh slave1
ssh slave2
3.6、将master节点配置的hadoop文件复制到两个子节点(slave1、slave2)
命令:
scp -r hadoop bi@slave1:/home/bi
scp -r hadoop bi@slave2:/home/bi
3.7、格式化NameNode
命令:hdfs namenode -format
3.8、启动hadoop
命令:sbin目录
sbin/start-all.sh
3.9、查看启动结果
命令:jps(master节点)
命令:jps(slave节点)
也可以打开界面:192.168.12.80:50070、192.168.12.80:8088查看节点状态