一、环境介绍
IP | host | JDK | linux版本 | hadop版本 |
192.168.0.1 | master | 1.8.0_111 | centos7.2.1511 | hadoop-2.7.3 |
192.168.0.2 | slave1 | 1.8.0_111 | centos7.2.1511 | hadoop-2.7.3 |
192.168.0.3 | slave1 | 1.8.0_111 | centos7.2.1511 | hadoop-2.7.3 |
二、系统环境配置
1. 安装JDK
tar –zvxf jdk-8u111-linux-x64.tar.gz –C /usr/local/
2. 配置系统级的JDK环境变量(root权限)
vi /etc/profile,增加如下配置
export JAVA_HOME=/usr/local/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3. 安装hadoop
tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local/
4. 配置hadoop的系统变量(非必须)
在/etc/profile中增加HADOOP_HOME
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/local/jdk1.8.0_111
export HADOOP_HOME=/usr/local/hadoop-2.7.3 export PATH=$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/bin
5. 环境配置生效
source /etc/profile
6. 配置host
vi /etc/hosts
192.168.0.1 master
192.168.0.2 salve1 192.168.0.3 salve2
7. 修改hostname(非必须)
vi /etc/sysconfig/network,将HOSTNAME改成相应的host
8. 配置ssh免密码登录
ssh-keygen -t dsa,回车三次(三个节点都执行),会在/home/<用户>下面新建一个.ssh文件夹,.ssh中有两个文件。
id_dsa
id_dsa.pub
在.ssh中touch authorzied_keys,将其他两台机器中的id_dsa.pub追加到authorzied_keys中,然后修改authorzied_keys和.ssh的权限,chmod 600 authorzied_keys,chmod 700 .ssh
9. 关闭防火墙
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
10. 集群时钟同步(时间一致则省去这步)
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate time.nist.gov
三、hadoop配置
1. hadoop环境变量配置涉及etc/hadoop目录下的三个文件:hadoop-env.sh,mapred-env.sh,yarn-env.sh,将这些文件中的JAVA_HOME改为JAVA_HOME=/usr/local/jdk1.8.0_111
2. 修改hadoop的配置文件
2.1. core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name> <value>hdfs://master:9000</value> <description>主节点namenode的host和端口</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> <description>hdfs中namenode和datanode数据的默认存放目录,可在hdfs中分别配置其目录</description> </property> </configuration>
2.2. hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name> <value>/usr/hadoop/hdfs/name</value> <description>namenode数据的存放目录</description> </property> <property> <name>dfs.data.dir</name> <value>/usr/hadoop/hdfs/data</value> <description>datanode数据的存放目录</description> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> <description>secondarynamenode的web地址</description> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> <description>提供web访问hdfs的权限</description> </property> </configuration>
注:访问namenode的hdfs使用50070端口,访问datanode的webhdfs使用50075端口。要想不区分端口,直接使用namenode的IP和端口进行所有的webhdfs操作,就需要在所有的datanode上都设置hdfs-site.xml中的dfs.webhdfs.enabled为true。
2.3. mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> <description>jobhistory是Hadoop自带了一个历史服务器,记录Mapreduce历史作业</description> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> <description>jobhistory的http地址</description> </property> </configuration>
jobhistory是Hadoop自带了一个历史服务器,记录Mapreduce历史作业。默认情况下,jobhistory没有启动,可用以下命令启动:
sbin/mr-jobhistory-daemon.sh start historyserver
2.4. yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <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> <description>yarn资源管理的http地址</description> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>768</value> </property> </configuration>
2.5 编辑slaves
master
slave1
slave2
2.6 同步配置
将hadoop配置同步到其他节点
scp -r /usr/local/hadoop-2.7.3/etc/* slav1:/usr/local/hadoop-2.7.3/etc/
scp -r /usr/local/hadoop-2.7.3/etc/* slav2:/usr/local/hadoop-2.7.3/etc/
四、启动hadoop集群
1. 格式化namenode(初次启动执行)
bin/hdfs namenode –format
2. 启动hdfs
sbin/start-dfs.sh
3. 启动yarn
start-yarn.sh
4. jps查看进程
4.1 master进程
ResourceManager
JobHistoryServer
NameNode
SecondaryNameNode
DataNode
Jps
4.2 slave进程
DataNode
Jps
五、通过浏览器查看集群运行状态
1.http://master:50070 namenode的hdfs页面地址
2.http://master:8088/cluster/cluster yarn资源的页面地址