Hadoop集群的搭建及配置
VMware下安装CentOS
一、先安装一个虚拟机
安装好后要右键,找到用管理员的方式打开
也可以设置成每次打开都是以管理员身份运行
二、安装一个CentOS,这里使用的是7版本的
三、打开VMware,创建新的虚拟机
来到这个界面可以等待60秒,也可以按下tab键下一步。
我这里选择英文,各位可以选择中文。
继续添加
设置密码
到这里就安装好啦
四、ping本地与百度的设置
1.重启服务
service network restart
2.修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
如果进入的是空表,用cd进入这里,然后用“ll”查看那个带ifcfg的文件,进入编辑
我这里是ifcfg-ens33
cd /etc/sysconfig/network-scripts
ll
如果你这里是$符号请用这个命令,使用超级用户,变成#
DEVICE是指设备名
HWADDR是指网卡地址
ONBOOT是设置系统启动时是否激活网卡
BOOTPROTO的值可以设置为dhcp、none、bootp、static
dhcp 设置网卡绑定的时候通过DHCP协议的方法来获得地址
none 设置网卡绑定的时候不使用任何协议
bootp 设置网卡绑定的时候使用BOOTP协议
static 设置网卡绑定的时候使用静态协议
将该文件的ONBOOT=no改为ONBOOT=yes,将BOOTPROTO=dhcp改为BOOTPROTO=static
添加IP地址IPADDR、子网掩码NETMASK、网关GATEWAY以及DNS1等信息
这是我未修改的样子(不会如何修改的跟保存的请百度)
点击编辑里面的虚拟网络编辑器
要用管理员身份使用软件才能更改设置
当使用管理员身份后这里会有三个,选NAT模式
这里最后一段要选不一样的,最好是3位数
这里两个要一样
修改完保存退出后重启一下服务
service network restart
查看IP
ifconfig
3.ping一下百度跟本地,看一下连接是否通畅
ping www.baidu.com ping 192.168.235.233
ctel+c退出ping
4.安装yum源
执行cd /etc/yum.repos.d 进入etc/yum.repos.d目录
cd /etc/yum.repos.d
查看yum.repos.d目录下的文件
CentOS-Base.repo 是网络的
CentOS-Media.repo是本地的
5.执行重命名命令
如果要用网络下载,就改名全部(改名是为了禁用,需要用的话就把名字改回去)
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-Media.repo
mv CentOS-Media.repo CentOS-Media.repo.bak
vi CentOS-Media.repo.bak
将baseurl的值修改为:file:///media/ ,将gpgcheck的值改为0 ,将enabled的值修改为 1
修改前:
修改后
6.挂载
执行以下命令进行挂在
mount /dev/dvd /media #6.8版本
mount /dev/cdrom /media #7版本
如果没有第一条的话,修改第二条
7.更新yum源。
yum clean all
8.用阿里云安装软件
打开阿里云登录
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
9.安装Java
使用xshell7
使用ctel+alt+f打开共享文件
放到opt目录下
在命令行安装Java
进入opt目录安装
rpm -ivh jdk-7u80-linux-x64.rpm
五.搭建Hadoop完全分布式集群
1.把Hadoop安装包hadoop-xxxxx / 上传到虚拟机master的/opt目录下
然后进入opt目录下输入下面语句,将hadoop安装包解压到虚拟机上
tar -zxf hadoop-xxxx -C /usr/local
Hadoop配置涉及的文件都在/usr/local/hadoop-2.6.4/etc/hadoop/目录下
2.修改core-site.xml文件
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
</property>
</configuration>
然后在hadoop目录下创建一个tmp文件夹
mkdir tmp
3.修改hadoop-env.sh
vi hadoop-env.sh
4.修改yum-env.sh文件
5.复制mapred-site.xml.template 并命名为mapred-site.xml并修改
cp mapred-site.xml.template mapred-site.xml
修改mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- jobhistory properties -->
<property>
<name>mapreduce.jobhistory.address</name>
<valve>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
6.修改yarn-site.xml文件
vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.adress</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/tmp/logs</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs/</value>
<description>URL for job history server</description>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</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.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodmanager.resource.cpu-vcores</name>
<value>1</value>
</property>
</configuration>
7.修改slaves文件
vi slaves
slave1
slave2
slave3
8.修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
9.返回最初目录,进入/etc,修改hosts文件
在最后面添加以下代码,主要符合自己的ip跟主机名
192.168.235.233 master master.centos.com
192.168.235.234 slave1 slave1.centos.com
192.168.235.235 slave2 slave2.centos.com
192.168.235.236 slave3 slave3.centos.com
10.修改完后关机,进行克隆。
右击master,管理,克隆
11.打开虚拟机slave1
(1)执行以下命令,删除70-persistent-net.rules
rm -rf /etc/udev/rules.d/70-persistent-net.rules
(2)执行命令:ifconfig -a 查看HWADDR,记录HWADDR(每个机器的此值是不一样的)
找不到另一种方法(如果是可视化的)
(3)修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改HWADDR、IPADDR以及注释掉UUID开头的一行代码,并修改HWADDR的内容为实际的地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
如果进入的是空表,用cd进入这里,然后用“ll”查看那个带ifcfg的文件,进入编辑
我这里是ifcfg-ens33
cd /etc/sysconfig/network-scripts ll
如果你这里是$符号请用这个命令,使用超级用户,变成#
(4)修改机器名,执行命令
vi /etc/sysconfig/network
打开文件,修改机器名为 slave1.centos.com
(5)使用reboot命令重启虚拟机。
(6)验证slave1是否配置成功。在master下执行ping slave1 如果ping得通,说明配置成功。
注意要master跟slave1两个虚拟机都打开才能互ping