一 Centos7安装
我选择的是最小安装,如果你想安装别的版本可以去也可以,安装位置我是默认,你有特别的需求可以视自己情况而定
选择虚拟机-编辑-虚拟网络编辑器-Nat模式-Nat设置
之后等待安装程序完成,重启 即可
二配置Centos
创建hadoop用户并把用户添加到root用户组,创建完成后,使用passwd hadoop,给hadoop用户设置密码
使用命令visudo,使用户hadoop拥有临时root权限,注意:中间用Tab隔开,然后保存退出
使用命令vi /etc/hostname,修改主机名,修改完成后,使用命令reboot重启,使用命令hostname就可以看到主机名了
使用 vi /etc/sysconfig/network-scripts/ifcfg-ens33,修改网络配置(IP地址等 获取:选择虚拟机-编辑-虚拟网络编辑器-Nat模式-Nat设置)。
使用vi /etc/hosts,修改hosts
以上步骤是主机的,丛机和主机步骤一样,ip地址、主机名不能一样
这一步是window和虚拟机centos连通
先设置Vmnet8
设置ip地址,网关,子网掩码
在window电脑C:\Windows\System32\drivers\etc中的hosts文件中
作完以上的步骤,主机和丛机就可以连通了,同时主机和丛机也能ping通外网,window也能和主机丛机互相ping通了(可以使用这个命令systemctl restart network重启网络服务,主机和丛机互相ping)
关闭防火墙和selinux(都是临时的,重启要重新关闭,主机和丛机都要关闭)
使用systemctl stop firewalld关闭防火墙,使用systemctl status firewalld查看防火墙状态
selinux关闭:setenforce 0关闭 getenforce查看状态
以上操作实在root下操作的,主机和丛机都是
三SSH无密码登录
首先主机和丛机都切换到到hadoop用户
1.使用ssh localhost登录hadoop用户,然后使用exit退出
2.使用ls -a 看到.ssh目录,使用cd .ssh/进入到.ssh中,执行ssh-keygen -t rsa生成公钥(一路回车)
3.执行cat id_rsa.pub >> authorized_keys,使用chmod 600 authorized_keys改变权限
4.执行scp authorized_keys hadoop@slave:~/.ssh把master的公钥传到从机上去
5.使用ssh slave,这时候就可以无密码登录到slave了
1-5步是主机操作步骤,丛机只需执行第1步,然后执行ls -a,有.ssh文件夹就可以了
四.配置环境变量
1配置JDK(主机和丛机都配置)
首先要把jdk传上去,我用的是Xshell工具传上去的
(1).先执行sudo yum install -y jdk*安装jdk (*号是你的版本号,你自己安装什么版本,换成什么版本),然后cd~。
(2).执行vi .bashrc开始配置jdk环境变量
2.配置hadoop(主机和丛机都配置)
(1).首先要把hadoop-2.7.3.tar.gz传上去,自己可以去官网下一个(我用的是Xshell工具传上去的)
(2).执行tar -xzvf hadoop-2.7.3.tar.gz 解压hadoop,执行vi .bashrc开始配置hadoop环境变量
# Hadoop Environment Variables
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3(这个是我的地址)
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
(3).执行source .bashrc重新加载环境变量
(4).在centos中进入/home/hadoop/hadoop-2.7.3/etc/hadoop把:core-site.xml,hdfs-site.xml,mapred-site.xml,template,slaves,yarn-site.xml这五个文件放到window下修改,修改完毕之后从哪来的放回哪去。(这五个文件主机和丛机都的修改)
文件core-site.xml修改成:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>(这里是master是主机名)
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop-2.7.3/tmp</value>
</property>
</configuration>
文件mapred.xml修改成 (这里在原文件夹下它的名字是mapred.xml.template,要把.template去掉):
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
文件hdfs.xml修改成:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--临时目录文件位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop-2.7.3/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-2.7.3/tmp/dfs/data</value>
</property>
</configuration>
文件yarn.xml修改成:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
文件slave:这里面是所有丛机的主机名
(5).执行hdfs namenode -format格式化所有节点(在主机上执行)
五 启动hadoop
1.在Master节点启动 按顺序启动(jps查看)
jps查看所有进程
(1)执行start-dfs.sh(如果需要关闭执行stop-dfs.sh)
(2)执行start-yarn.sh(如果需要关闭执行stop-yarn.sh)
(3)执行mr-jobhistory-daemon.sh start historyserver(如果需要关闭执行mr-jobhistory-daemon.sh stop historyserver)
六外部网络查看日志
查看之前要确定防火墙和selinux关闭了
查看本机的端口状态:netstat -an(产看是否有8088 , 9000 50070等)
(1)在浏览器执行master:8088
(2)在浏览器执行master:50070
到这里一个基本的集群就配置好了!!
如果过程中有不足之处,还请大家见谅!!