总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器,解压安装JDK,解压安装Hadoop,配置hdfs、mapreduce等主从关系。

本教程用的是Centos7.2系统,Hadoop版本2.8.0

本文方法于2017年4月14日测试通过

一、准备3台服务器

可以是实体机,虚拟机或是云主机。选择CentOS7 Minimal的ISO文件即可(如果是自己安装)。

master 

node1

node2

二、配置主机

(1)创建用户密码hadoop/hadoop

[root@localhost home]# adduser hadoop
[root@localhost home]# passwd hadoop ##然后输入密码

(2)修改主机名

[root@localhost hadoop]# sudo hostnamectl set-hostname "master" ##其他两台改为对应的名称
[root@localhost hadoop]# hostnamectl status --transient
master
[root@localhost hadoop]# hostnamectl status --static
master

(3)修改/etc/hosts

[root@localhost hadoop]# vim /etc/hosts
127.0.0.1   localhost.localdomain localhost
::1         localhost6.localdomain6 localhost6
192.168.3.166   master
192.168.3.171   node1
192.168.3.172  node2

三、设置ip

(1)设置静态IP

这一步可以在路由器中进行,只要保证每台主机的ip地址固定就行

已有静态IP的话,可以跳过这一步。

如果是虚拟机的话:

首先关闭VMware的DHCP

Edit->Virtual Network Editor

20141211170400718.png

选择VMnet8,去掉Use local DHCP service to distribute IP address to VMs选项。点击NAT Settings查看一下GATEWAY地址:

20141211170412118.jpg

点击OK就可以了。


进入如下目录

[root@localhost hadoop]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# ls
ifcfg-ens33  ifdown-bnep

[root@localhost network-scripts]# vim ifcfg-ens33 

修改   BOOTPROTO="static"

添加如下内容

NETMASK=255.255.255.0
IPADDR=192.168.3.166
PREFIXO=24
GATEWAY=192.168.3.2
DNS1=192.168.3.2

:wq         保存并退出

重启网络

[root@localhost network-scripts]# service network restart

测试    ping www.baidu.com

(2)关闭防火墙

如果防火墙未安装或未开启,就跳过这一步

systemctl stop firewalld.service ##关闭防火墙
systemctl disable firewalld.service ##永久关闭

(3)安装软件

[root@master ~]# yum install -y tree

四、安装ssh,并且设置无密码登陆

切换用户:

[root@master ~]# su hadoop


进入用户主目录:

[hadoop@master root]$ cd ~

创建文件夹:

[hadoop@master ~]$ mkdir .ssh


修改权限(可选):

[hadoop@master ~]$ chmod 744 .ssh


生成加密文件:

[hadoop@master ~]$ ssh-keygen -t rsa -P ''        ##回车即可


追加文件:

[hadoop@master ~]$ cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys


修改权限:

[hadoop@master ~]$ chmod 644 ~/.ssh/authorized_keys


切换回root用户:

[hadoop@master ~]$ su


编辑文件:

[root@master hadoop]# vim /etc/ssh/sshd_config


确保下面的可用(去掉前面的#)


RSAAuthentication yes


PubkeyAuthentication yes


AuthorizedKeysFile .ssh/authorized_keys


:wq       ##保存并退出

重启服务:

[root@master hadoop]# service sshd restart

切换用户:

[root@master hadoop]# su hadoop

验证:

[hadoop@master ~]$ ssh localhost

 或者:

[hadoop@master ~]$ ssh master


第一次登陆直接输入yes即可,以后即可免登陆

先设置这些,主机间的配置稍后介绍。


五、安装Java

请参照:CentOS下使用yum命令安装Jdk


六、安装配置hadoop

root用户登录

进入hadoop文件目录:

[root@master opt]# cd /opt


解压hadoop文件:

[root@master opt]# tar xzvf hadoop-2.8.0.tar.gz

改变用户及群组:

[root@master opt]# chown -R hadoop:hadoop hadoop-2.8.0

设置环境变量:

[root@master opt]# vim /etc/profile


在文件末尾添加如下

export HADOOP_HOME=/opt/hadoop-2.8.0
export PATH=$PATH:$HADOOP_HOME/bin


:wq   ##保存退出


刷新配置:

[root@master opt]# . /etc/profile

或者   

[root@master opt]# source /etc/profile

 验证:

[root@master opt]# echo $HADOOP_HOME
/opt/hadoop-2.8.0

切换用户:

[root@master etc]# su hadoop


进入如下文件夹并创建下列文件夹


[hadoop@master etc]$ cd /opt/hadoop-2.8.0
[hadoop@master hadoop-2.8.0]$ mkdir -p dfs/name
[hadoop@master hadoop-2.8.0]$ mkdir -p dfs/data
[hadoop@master hadoop-2.8.0]$ mkdir -p tmp


进入文件夹:

[hadoop@master hadoop-2.8.0]$ cd etc/hadoop


配置slaves :

[hadoop@master hadoop]$ vim slaves 
node1
node2


:wq      ##保存并退出



修改hadoop-env.sh和yarn-env.sh

注:这里必须用绝对地址

[hadoop@master hadoop]$ vim hadoop-env.sh 
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
[hadoop@master hadoop]$ vim yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk


修改core-site.xml

[hadoop@master hadoop]$ vim core-site.xml
                        fs.defaultFS                hdfs://master:9000                                hadoop.tmp.dir                /opt/hadoop-2.8.0/tmp


修改hdfs-site.xml


[hadoop@master hadoop]$ vim hdfs-site.xml
            dfs.namenode.name.dir        file:/opt/hadoop-2.8.0/dfs/name                dfs.datanode.data.dir        file:/opt/hadoop-2.8.0/dfs/data                dfs.replication        2                dfs.namenode.secondary.http-address        master:9001                dfs.permissions        false

配置mapred-site.xml

[hadoop@master hadoop]$ cd /opt/hadoop-2.8.0
[hadoop@master hadoop-2.8.0]$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
[hadoop@master hadoop-2.8.0]$ vim etc/hadoop/mapred-site.xml
            mapreduce.framework.name        yarn                mapreduce.jobtracker.http.address        master:50030                mapreduce.jobhistory.address        master:10020                mapreduce.jobhistory.webapp.address        master:19888

配置yarn-site.xml


[hadoop@master hadoop-2.8.0]$ vim etc/hadoop/yarn-site.xml
 
     
        yarn.nodemanager.aux-services  
        mapreduce_shuffle 
     
     
        yarn.nodemanager.auxservices.mapreduce.shuffle.class 
        org.apache.hadoop.mapred.ShuffleHandler 
     
     
        yarn.resourcemanager.address 
        master:8032 
     
     
        yarn.resourcemanager.scheduler.address 
        master:8030 
     
     
        yarn.resourcemanager.resource-tracker.address 
        master:8031 
     
     
        yarn.resourcemanager.admin.address 
        master:8033 
     
     
        yarn.resourcemanager.webapp.address 
        master:8088

七、配置另两台机器

(1)重复上述二~五的操作

(2)复制Hadoop文件

scp -r /opt/hadoop 192.168.3.171:/opt/
scp -r /opt/hadoop 192.168.3.172:/opt/

(3)配置ssh无密码登录

在master机器上

[hadoop@master .ssh]$ ssh-copy-id hadoop@node1

在salve机器上

[root@node1 ~]# cat /home/hadoop/.ssh/id_rsa.pub | ssh hadoop@master 'cat >> ~/.ssh/authorized_keys'


两台机器修改的内容相似

八、格式化master的namenode,启动并测试

以hadoop用户登录

[hadoop@master hadoop-2.8.0]$ hdfs namenode -format


启动:

[hadoop@master hadoop-2.8.0]$ ./sbin/start-dfs.sh


启动:

[hadoop@master hadoop-2.8.0]$ ./sbin/start-yarn.sh


在各个机器上用jps查看节点


查看master的jps


[hadoop@master hadoop-2.8.0]$ jps
12121 Jps
10715 NameNode
10928 SecondaryNameNode
11087 ResourceManager

查看slave的jps


[hadoop@slave1 logs]$ jps
8030 Jps
7122 DataNode
7254 NodeManager

查看各节点日志


查看master是否监听其他节点

[hadoop@master hadoop-2.8.0]$ netstat -an | grep 9000

浏览器查看

浏览器打开 http://master:50070/,会看到hdfs管理页面

浏览器打开 http://master:8088/,会看到hadoop进程管理页面

浏览器打开 http://master:8088/cluster 查看cluster情况


验证(WordCount验证)

1.dfs上创建input目录

[hadoop@master hadoop-2.8.0]$ bin/hadoop fs -mkdir -p input


2.把hadoop目录下的README.txt拷贝到dfs新建的input里

[hadoop@master hadoop-2.8.0]$ bin/hadoop fs -copyFromLocal README.txt input


3.运行WordCount

[hadoop@master hadoop-2.8.0]$ bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.0-sources.jar org.apache.hadoop.examples.WordCount input output


4.运行完毕后,查看单词统计结果

[hadoop@master hadoop-2.8.0]$ bin/hadoop fs -cat output/*


假如程序的输出路径为output,如果该文件夹已经存在,先删除

[hadoop@master hadoop-2.8.0]$ bin/hadoop dfs -rmr output


关闭hadoop 

[hadoop@master hadoop-2.8.0]$ ./sbin/stop-dfs.sh
[hadoop@master hadoop-2.8.0]$ ./sbin/stop-yarn.sh


安装成功后的网页图:


赞助本站,网站的持续发展离不开你们的支持!一分也是爱ヾ(◍°∇°◍)ノ゙
 本文链接: ,花了好多脑细胞写的,转载请注明链接喔~~
登陆
      正在加载评论
 书籍推荐