该准备工做在三台机器上都须要进行,首先使用 vmvare 建立 1 个虚拟机,这台虚拟机是 master,一会须要把 master 克隆出两台 slave
java
点肯定而后开启此虚拟机node
而后添加/boot 分区,大小为 1G,文件系统选 ext4 linux
而后添加 swap 分区,注意,swap 分区为内存的 2 倍,文件系统则选择为 swap web
而后点完成 shell
而后等待安装完成,而后点重启apache
到此系统安装就完成了,而后设置网络 vim
点完肯定后,而后再进去查看下网关浏览器
点取消,记住这个网关 缓存
一、我先换下主机名 网络
[root@localhost ~]# hostnamectl set-hostname wangmaster [root@localhost ~]# hostname wangmaster [root@localhost ~]# exit
二、从新登陆,而后设置网卡
[root@wangmaster ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 DEVICE=eno16777736 ONBOOT=yes //启用网卡 IPADDR=192.168.225.100 //设置 IP NETMASK=255.255.255.0 //设置掩码 GATEWAY=192.168.225.2 //设置网关,就是记住的网关 DNS1=114.114.114.114 //设置 DNS DNS2=114.114.114.115 //设置备用 DNS [root@wangmaster ~]# systemctl restart network.service //重启网络
三、设置网络 YUM 源
选择远程登陆工具登陆操做 (能够用Xshell)
点击文件传输按钮,进入Xftp软件,进行传输文件。
将上面保存的文件传入/etc/yum.repos.d文件夹下。
[root@wangmaster ~]# cd /etc/yum.repos.d/ [root@wangmaster yum.repos.d]# ls CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo [root@wangmaster yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak //使原来的 yum 失效 [root@wangmaster yum.repos.d]# yum clean all //清除 yum 缓存 已加载插件:fastestmirror 正在清理软件源: base extras updates Cleaning up everything [root@wangmaster yum.repos.d]# yum repolist //更新 yum 库 已加载插件:fastestmirror base | 3.6 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 (1/4): base/7/x86_64/group_gz | 155 kB 00:00 (2/4): extras/7/x86_64/primary_db | 139 kB 00:00 (3/4): base/7/x86_64/primary_db | 5.6 MB 00:09 (4/4): updates/7/x86_64/primary_db | 3.9 MB 00:11 Determining fastest mirrors 源标识 源名称 状态 base/7/x86_64 CentOS-7 - Base - 163.com 9,363 extras/7/x86_64 CentOS-7 - Extras - 163.com 311 updates/7/x86_64 CentOS-7 - Updates - 163.com 1,126 repolist: 10,800 [root@wangmaster yum.repos.d]# [root@wangmaster yum.repos.d]# yum install -y vim //安装 VIM 工具
四、关闭 selinux
[root@wangmaster yum.repos.d]# vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are pro tected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
五、中止防火墙功能
[root@wangmaster ~]# systemctl stop firewalld.service 中止防火墙 [root@wangmaster ~]# systemctl disable firewalld.service 中止防火墙开机自启动 [root@wangmaster ~]# systemctl status firewalld 查看防火墙状态
六、规划为 3 个虚拟机,分别为 master,slave1,slave2,在/etx/hosts 文件中修改
[root@wangmaster ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.225.100 wangmaster 192.168.225.101 wangslave1 192.168.225.102 wangslave2
而后重启虚拟机(必定要重启,由于 selinux 设置重启才生效)
(注意:在全部三台虚拟机中都进行这样的修改,ip 地址根据实际状况进行修改)
七、使用以下命令在线安装
[root@wangmaster ~]$ yum install –y wget [root@wangmaster ~]$ yum install –y net-tools
八、建立目录
[root@wangmaster ~]# mkdir /opt/bigdata
九、将 jdk 拷贝到 192.168.225.100 的 opt 的 bigdata 目录
[root@wangmaster bigdata]# ls hadoop-2.7.3.tar.gz jdk1.8.tar.gz 这里我提早在 bigdata 中传入了所须要的软件
十、在 master 中建立用户 hadoop
[root@wangmaster bigdata]# useradd hadoop [root@wangmaster bigdata]# id hadoop uid=1000(hadoop) gid=1000(hadoop) 组=1000(hadoop) [root@wangmaster ~]# passwd hadoop 更改用户 hadoop 的密码 。我设置的密码是 123456,须要打两遍 新的 密码: 无效的密码: 密码少于 8 个字符 从新输入新的 密码: passwd:全部的身份验证令牌已经成功更新。 [root@wangmaster ~]#
十一、使用户成为 sudoers,以 root 用户修改文件/etc/sudoers,修改方式以下:
[root@wangmaster bigdata]# vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALL hadoop ALL=(ALL) ALL
十二、修改/opt/bigdata 文件夹的权限
[root@wangmaster ~]# chmod -R 777 /opt/bigdata [root@wangmaster ~]# chown -R hadoop.hadoop /opt/bigdata [root@wangmaster ~]# ll /opt 总用量 4 drwxrwxrwx. 2 hadoop hadoop 4096 4 月 9 05:28 bigdata
1三、安装 JDK 运行环境
[hadoop@wangmaster bigdata]# tar -zxvf jdk1.8.tar.gz [hadoop@wangmaster bigdata]# mv /opt/bigdata/jdk1.8 /opt/bigdata/ hadoop@wangmaster bigdata]# ls hadoop-2.7.3.tar.gz jdk1.8 jdk1.8.tar.gz opt
1四、在修改/etc/profile 文件,配置 java 环境:
[root@wangmaster ~]$ vim /etc/profile #java configuration JAVA_HOME=/opt/bigdata/jdk1.8 JAVA_BIN=/opt/bigdata/jdk1.8/bin PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar export JAVA_HOME export JAVA_BIN export PATH export CLASSPATH [hadoop@wangmaster ~]# source /etc/profile [hadoop@wangmaster bigdata]$ java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) [hadoop@wangmaster bigdata]$ javac -version javac 1.8.0_111
(注:上图中,JAVA_HOME 为你安装的 JDK 路径)
1五、安装 hadoop
[hadoop@wangmaster bigdata]$ tar -zxvf hadoop-2.7.3.tar.gz [hadoop@wangmaster bigdata]$ ll 总用量 386500 drwxr-xr-x. 9 hadoop hadoop 4096 8 月 18 2016 hadoop-2.7.3 -rwxrwxrwx. 1 hadoop hadoop 214092195 3 月 13 19:16 hadoop-2.7.3.tar.gz drwxrwxrwx. 8 hadoop hadoop 4096 3 月 13 00:14 jdk1.8 -rwxrwxrwx. 1 hadoop hadoop 181668321 3 月 22 23:31 jdk1.8.tar.gz
1六、在 hadoop 目录下创建 tmp 目录,并将权限设定为 777
[hadoop@wangmaster bigdata]$ cd hadoop-2.7.3 [hadoop@wangmaster hadoop-2.7.3]$ mkdir tmp [hadoop@wangmaster hadoop-2.7.3]$ chmod 777 tmp [hadoop@wangmaster hadoop-2.7.3]$ mkdir dfs [hadoop@wangmaster hadoop-2.7.3]$ mkdir dfs/name [hadoop@wangmaster hadoop-2.7.3]$ mkdir dfs/data
Hadoop 是大数据生态圈的基石,下面首先以 Hadoop 的安装与配置开始。
一、进入安装目录
[hadoop@wangmaster ~]$ cd /opt/bigdata/hadoop-2.7.3
二、环境配置
[hadoop@wangmaster hadoop-2.7.3]$ cd etc/hadoop [hadoop@wangmaster hadoop]$ vim yarn-env.sh # some Java parameters export JAVA_HOME=/opt/bigdata/jdk1.8
三、core 配置
[hadoop@wangmaster hadoop]$ vim core-site.xml <property> <name>hadoop.tmp.dir</name> <value>/opt/bigdata/hadoop-2.7.3/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://wangmaster:9000</value> </property> <property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property>
四、hdfs 配置
[hadoop@wangmaster hadoop]$ vim hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property>
<name>dfs.namenode.name.dir</name> <value>/opt/bigdata/hadoop-2.7.3/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/bigdata/hadoop-2.7.3/dfs/data</value>
</property> <property> <name>dfs.web.ugi</name> <value>hdfs,hadoop</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
五、yarn 配置
[hadoop@wangmaster hadoop]$ vim yarn-site.xml <configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>wangmaster</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>wangmaster:8088</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>wangmaster:8081</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>wangmaster:8082</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.web-proxy.address</name> <value>wangmaster:54315</value> </property> </configuration>
六、mapreduce 配置
[hadoop@wangmaster hadoop]$ vim mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapred.job.tracker</name> <value>wangmaster:9001</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>wangmaster:10020</value> </property> </configuration>
七、slaves 配置(master、slave1 和 slave2 均做为 datanode)
[hadoop@wangmaster hadoop]$ vim slaves
wangmaster
wangslave1
wangslave2
master02
slave01
slave02
slave03
八、配置系统环境
[root@wangmaster bin]# vim /etc/profile 末尾添加这两句 export HADOOP_HOME=/opt/bigdata/hadoop-2.7.3 export PATH=$HADOOP_HOME/bin:$PATH
使配置生效:
[hadoop@wangmaster hadoop]$ source /etc/profile
九、将虚拟机复制成 wangslave1 和 wangslave2 上。
把 CentOS 64 位 Minimal 重名为 wangmaster,克隆 wangmaster,创建 wangslave1 和 wangslave2 节点,克隆教程
首先给 wangmaster 关机
复制事后的虚拟机不能直接使用,须要进行以下操做:
[root@wangmaster ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 HWADDR=00:50:56:36:BF:60 //修改这个里 mac 地址,改为刚才生成的 TYPE="Ethernet" BOOTPROTO="static" DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" NAME="eno16777736" DEVICE="eno16777736" ONBOOT="yes" IPADDR=192.168.225.101 //这里改为 wangslave1 的 ip 192.168.225.101 NETMASK=255.255.255.0 GATEWAY=192.168.225.2 DNS1=114.114.114.114 DNS2=114.114.114.115 [root@wangmaster ~]# systemctl restart network.service //重启网络
而后修改主机名
[root@wangmaster ~]# hostnamectl set-hostname wangslave1 [root@wangmaster ~]# hostname wangslave1 [root@wangmaster ~]# exit 从新登陆 测试 ping 本身 [root@wangslave1 ~]# ping wangslave1 PING wangslave1 (192.168.225.101) 56(84) bytes of data. 64 bytes from wangslave1 (192.168.225.101): icmp_seq=1 ttl=64 time=0.012ms
根据上面操做,克隆出 wangslave2
十、须要在 hadoop 用户下进行 master 和 slave 之间的免密
Master 给本身和 slave1,slave2 发证书
[hadoop@wangmaster ~]$ ssh-keygen [hadoop@wangmaster ~]$ ssh-copy-id -i .ssh/id_rsa.pub hadoop@wangslave1 [hadoop@wangmaster ~]$ ssh-copy-id -i .ssh/id_rsa.pub hadoop@wangslave2 [hadoop@wangmaster ~]$ ssh-copy-id -i .ssh/id_rsa.pub hadoop@wangmaster 这步完成后,正常状况下就能够无密码登陆本机了,即 ssh localhost,无需输入密码。
而后 slave1 给 master 发证书
[hadoop@ wangslave1 ~]$ ssh-keygen [hadoop@ wangslave1 ~]$ ssh-copy-id -i .ssh/id_rsa.pub hadoop@wangmaste
而后 slave2 给 master 发证书 (略)
十一、首次启动以前格式化 hdfs:
[hadoop@wangmaster ~]$ hdfs namenode -format
启动各组件
[hadoop@wangmaster ~]$ cd /opt/bigdata/hadoop-2.7.3/sbin
所有启动:
[hadoop@wangmaster sbin]$ ./start-all.sh 验证 [hadoop@wangmaster sbin]$ jps 1666 DataNode 2099 NodeManager 2377 Jps 1853 SecondaryNameNode 1998 ResourceManager 1567 NameNode [hadoop@wangslave1 ~]$ jps 1349 NodeManager 1452 Jps 1245 DataNode [hadoop@wangslave2 ~]$ jps 1907 Jps 1703 DataNode 1807 NodeManager
在浏览器里输入 http://192.168.225.100:50070 ,判断是否启动成功
十二、所有中止
[hadoop@wangmaster sbin]$ ./stop-all.sh
一、使用
[hadoop@wangmaster ~]$ hadoop fs -mkdir /wang [hadoop@wangmaster ~]$ cd /opt/bigdata/hadoop-2.7.3 [hadoop@wangmaster hadoop-2.7.3]$ hadoop fs -put LICENSE.txt /wang [hadoop@wangmaster ~]$ hadoop fs -ls /wang
二、实验,进行 wordcount 程序(可选)。一个统计文本单词个数的程序,它会统计放入文件夹内的文本的总共单词的出现个数
[hadoop@wangmaster hadoop-2.7.3]$ hadoop fs -ls /wang 查看 Found 1 items -rw-r--r-- 3 hadoop supergroup 84854 2017-04-09 07:34 /wang/LICENSE.txt [hadoop@wangmaster hadoop-2.7.3]$ cd /opt/bigdata/hadoop-2.7.3/share/hadoop/mapreduce [hadoop@wangmaster mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /wang /output 执行程序 [hadoop@wangmaster mapreduce]$ hadoop fs -ls /output 查看程序运行的输出文件 Found 2 items -rw-r--r-- 3 hadoop supergroup 0 2017-04-09 07:38 /output/_SUCCESS -rw-r--r-- 3 hadoop supergroup 22002 2017-04-09 07:38 /output/part-r-00000 [hadoop@wangmaster mapreduce]$ hadoop fs -cat /output/part-r-00000 查看结果