准备工作:
1)安装VMware(激活什么的百度一下即可以解决),
2)下载Centos7镜像(建议下载Centos7 Minimal版本,因为其他版本一般都达到4G左右,minimal版本大概700M,如果电脑不给力安装非Minimal版本会很卡),下载地址:http://mirror.lzu.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
3)准备好 jdk8,hadoop-2.6.0-cdh5.10.0.tar(建议使用cdh版本的hadoop,至于原因自行百度)
jdk8地址:http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz
hadoop-2.6.0-cdh地址:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.10.0.tar.gz
4)在VM中安装Centos系统(只需要安装一台,后面的可以通过克隆,最终集群有3台主机,具体的也自己去百度)
5) 安装完成后:关闭系统防火墙,注意:Centos7与以前的防火墙不一样,Centos用的是firewalld,
执行命令(root用户)
systemctl stop firewalld
systemctl disable firewalld
6)关闭SELinux
vi /etc/sysconfig/selinux
设置 SELINUX=disabled
7)设置静态ip
1.首先设置虚拟机:编辑->虚拟网络编辑器->VMnet8->(右下角)更改设置->(VMnet8)选择NAT模式,NAT设置可以看到网关和子网,静态IP设为统一网络的IP即可
2 修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=00:0c:29:d6:7f:53 #此地址可以通过ip addr获得
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.26.20 #静态ip 本机的静态ip,自定,只要更虚拟机在同一网络即可
NETMASK=255.255.255.0 #子网掩码
NETWORK=192.168.26.2 #网关 网关为虚拟机的NAT网关
NAME=eth0
DEVICE=eth0
ONBOOT=yes
DNS1=192.168.26.2 #DNS可以写网关
3 重启服务
systemctl restart network(如果出错则重启)
注意:/etc/resolv.cfg如果ifcfg-eth0写了DNS则可以不修改,
4 测试
ip addr
输出信息可以看到设置的静态IP则设置成功
5 修改宿主机VMnet8的IP为与虚拟机在同一网络的静态IP
网络和共享中心->VMnet8->属性->ipv4
例如:
ip地址:192.168.26.1
子网掩码:255.255.255.0
默认网关:192.168.26.2
修改宿主机和Centos的hosts文件,添加以下内容
master 192.168.26.20 #主节点
slave1 192.168.26.21 #从节点
slave2 192.168.26.22 #从节点
修改hostname: vi /etc/hostname
master
创建用户,例如:hadoop
命令:
adduser hadoop
passwd hadoop
6. 测试网络
ping 192.168.26.20
如果可以ping通,则表示设置成功
7.通过VM克隆系统,并设置对应的静态ip和hostname
准备完毕!
安装步骤:
1.安装jdk
1)上传tar包到服务器
2)解压到目录
3)配置环境变量
1.打开文件 vim /etc/profile2.export JAVA_HOME=/usr/jdk目录/jdk8加压后得到的目录名
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin
4).刷新profile文件 命令:source /etc/profile5).测试jdk的安装 java -version和javac
2. 配置ssh无密钥通信
(1)编辑vim /etc/ssh/sshd_config
把以下注释打开
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
重启ssh systemctl restart sshd.service
(1)ssh-keygen -t rsa
(2)cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys或cat id_rsa.pub>> authorized_keys
目录权限问题
~权限设置为700
~/.ssh权限设置为700
~/.ssh/authorized_keys的权限设置为600
(3)修改文件”authorized_keys”权限 权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能
chmod 700 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
(4)接下来是把公钥复制所有的Slave机器上,在下边的指令中,将公钥复制到了.ssh文件夹下,在初始状态下,Slave机器默认没有.ssh目录,Slave机器上没有创建的需要手动创建,已经有的忽略。使用下面的命令格式进行复制公钥:
scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/
例如:
scp ~/.ssh/id_rsa.pub hadoop@192.168.26.21:~/.ssh
scp ~/.ssh/id_rsa.pub hadoop@192.168.26.22:~/.ssh
(5)然后分别登录slave1和slave2,将id_rsa.pub 追加到authorized_keys中,并将其权限设置为600后删除id_rsa.pub
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/.ssh/id_rsa.pub
.在master上hadoop用户登录slave上的Hadoop用户验证是否成功
ssh hadoop@192.168.26.21
ssh hadoop@192.168.26.22
【(6)slave无密码登录所有的master和slave互相免密码登录
和master无密码登录所有slave原理一样,就是把slave的公钥追加到master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)。】
设置完了记得重启ssh服务
3.安装hadoop
1) 在master上传并解压hadoop包(我一般上传在/usr/modules目录下,以便于同意管理hadoop生态的组件):
tar -xzvf hadoop-2.6.0-cdh5.10.0.tar
修改hadoop目录名称 mv hadoop-2.6.0-cdh5.10.0.tar hadoop
2)、配置/usr/modules/hadoop/etc/hadoop目录下的core-site.xml
<configuration><property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.26.20:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
</property>
</configuration>
3)、配置/usr/modules/hadoop/etc/hadoop目录下的hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/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.26.20:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4)、配置/usr/modules/hadoop/etc/hadoop目录下的mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5)、配置/usr/modules/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.26.20:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.26.20:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.26.20:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.26.20:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.26.20:8088</value>
</property>
</configuration>
6)、配置//usr/modules/hadoop/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME,不设置的话,启动不了,
export JAVA_HOME=jdk路径(一般我也放在/usr/modules下)
10、配置/usr/modules/hadoop/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,
192.168.26.21
192.168.26.22
7)、将配置好的Hadoop复制到各个节点对应位置上,通过scp传送,
scp -r /usr/modules/hadoop 192.168.26.21:/home/
scp -r /usr/modules/hadoop 192.168.26.22:/home/
8)、在Master服务器启动hadoop,从节点会自动启动,进入/usr/modules/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,可以看到相关信息
9)、Web访问,要先开放端口或者直接关闭防火墙
(1)输入命令,systemctl stop firewalld.service
(2)浏览器打开http://192.168.26.20:8088/
(3)浏览器打开http://192.168.26.20:50070/
大功告成!但这仅仅是学习大数据基本的知识,仅仅是一个开始,以后的路还长,需要花费很多时间,踩很多的坑!