思路:准备主从服务器,配置主服务器可以无密码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 [email protected]、ssh [email protected]就不需要输入密码了
第三步 安装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.defaultFSname>
<value>hdfs://192.168.100.10:9000value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>file:/usr/local/hadoop/tmpvalue>
property>
<property>
<name>io.file.buffer.sizename>
<value>131702value>
property>
configuration>
配置/usr/local/hadoop/etc/hadoop目录下的hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dirname>
<value>file:/usr/local/hadoop/dfs/namevalue>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>file:/usr/local/hadoop/dfs/datavalue>
property>
<property>
<name>dfs.replicationname>
<value>2value>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>192.168.100.10:9001value>
property>
<property>
<name>dfs.webhdfs.enabledname>
<value>truevalue>
property>
configuration>
配置/usr/local/hadoop/etc/hadoop目录下的mapred-site.xml
将mapred-site.xml.template重命名为mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>mapreduce.jobhistory.addressname>
<value>192.168.100.10:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>192.168.100.10:19888value>
property>
configuration>
配置/usr/local/hadoop/etc/hadoop目录下的yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.classname>
<value>org.apache.hadoop.mapred.ShuffleHandlervalue>
property>
<property>
<name>yarn.resourcemanager.addressname>
<value>192.168.100.10:8032value>
property>
<property>
<name>yarn.resourcemanager.scheduler.addressname>
<value>192.168.100.10:8030value>
property>
<property>
<name>yarn.resourcemanager.resource-tracker.addressname>
<value>192.168.100.10:8031value>
property>
<property>
<name>yarn.resourcemanager.admin.addressname>
<value>192.168.100.10:8033value>
property>
<property>
<name>yarn.resourcemanager.webapp.addressname>
<value>192.168.100.10:8088value>
property>
<property>
<name>yarn.nodemanager.resource.memory-mbname>
<value>768value>
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的作用。