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

第一步 安装虚拟机与Linux系统
(1) 下载
centos7
VMWare12
(2) 安装centos7完整版

第二步 安装JDK

注意下载jdk7与系统匹配,这里使用的是jdk7 64位,下载Hadoop2.7.1 官网是64位
(1)下载“jdk-7u79-linux-x64.gz”,放到/usr/local/soft目录下(新建soft用于存放后续上载软件)
(2)解压,输入命令,tar -zxvf jdk-7u79-linux-x64.gz
移动文件至/usr/local/jdk目录下
mv 源文件 目标文件
(3)设置环境变量: 编辑/etc/profile

export JAVA_HOME=/home/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin 

(4)使配置生效,输入命令,source /etc/profile
(5)输入命令,java -version 检查配置是否生效

免密钥登录!!
SSH免密码登录,因为Hadoop需要通过SSH登录到各个节点进行操作,我用的是root用户,每台服务器都生成公钥,再合并到authorized_keys
(1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
RSAAuthentication yes
PubkeyAuthentication yes
(2)输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
(3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
cat id_rsa.pub > authorized_keys 将密钥写入至authorized_keys文件中
再将authorized_keys 文件复制至下一个机器的.ssh路径下继续合并公钥id_rsa.pub
cat id_rsa.pub>> authorized_keys,循环将所有机器合并完成后,将最终的authorized_keys文件复制到每台机器上。over
(5)完成,ssh root@192.168.100.11、ssh root@192.168.100.12就不需要输入密码了

第三步 安装Hadoop

1)解压 hadoop安装包 至/usr/local/hadoop
2)在hadoop下创建 文件夹 tmp hdfs dfs/data、dfs/name
3)修改配置文件如下:
配置/usr/local/hadoop/etc/hadoop目录下的core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.100.10:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
</configuration>

配置/usr/local/hadoop/etc/hadoop目录下的hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.100.10:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
</configuration>

配置/usr/local/hadoop/etc/hadoop目录下的mapred-site.xml
将mapred-site.xml.template重命名为mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.100.10:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.100.10:19888</value>
    </property>
</configuration>

配置/usr/local/hadoop/etc/hadoop目录下的yarn-site.xml

<configuration>
    <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>192.168.100.10:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.100.10:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.100.10:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.100.10:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.100.10:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>768</value>
    </property>
</configuration>

配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME

export JAVA_HOME=/usr/local/jdk

第五步 配置/usr/local/hadoop/etc/hadoop目录下的slaves

删除默认的localhost,增加2个从节点,
192.168.100.11
192.168.100.12

第六步:将配置好的Hadoop复制到各个节点对应位置上,通过scp传送

scp -r /home/hadoop 192.168.0.183:/home/
scp -r /home/hadoop 192.168.0.184:/home/

第七步 在Master服务器启动hadoop

进入/usr/local/hadoop目录
(1)初始化,输入命令,bin/hdfs namenode -format !!!
(2)全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
(3)停止的话,输入命令,sbin/stop-all.sh
(4)输入命令,jps,可以看到相关信息

第八步 Web访问,直接关闭防火墙 否则无法访问

centos7 关闭firewall:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

centos6 关闭firewall:

 关闭防火墙
    执行命令    service iptables stop
    验证:        service iptables status
  关闭防火墙的自动运行
    执行命令    chkconfig iptables off
    验证:        chkconfig --list | grep iptables
浏览器打开http://192.168.100.10:50070/

安装完成。这只是大数据应用的开始,之后的工作就是,结合自己的情况,编写程序调用Hadoop的接口,发挥hdfs、mapreduce的作用。

Logo

更多推荐