Hadood分布式集群搭建总结3个节点大一总结

首先是要在Linux系统上运行,安装虚拟机VMware Workstation和centos系统等

1、下载安装VMware Workstation(虚拟机),需要centos系统。jdk和hadoop在linux运行,xshell,xftp在windows方便与虚拟机联系。安装Linux系统新建名为master,为主节点,我安装centos6.8的Linux系统,配置master,设置Hostname:master.centos.com,设置登录密码,安装Minimal最小的 ,登录成功后.

任务是:搭建一个hadoop完全分布式模式。设置linux网络。(一个主节点三个从节点)

2、Master主节点设置ip为192.168.137.9和
slave1,slave2,slave3 分别ip为192.168.137.10 、 192.168.137.11 、192.168.137.12(ip后缀只要不超过范围就好)
设置linux网络,固定ip,进入linux系统,
在window系统操作打开本地已连接的网络,共享网络,打开虚拟机网络,这样是为了和虚拟机共享,编辑虚拟机上的网络设置,VMnet8设置为NAT模式IP192.168.137.0掩码255.255.255.0,dhcp修改后缀为137.几(和节点配置的ip能对应),网关192.168.137.1
修改linux中网络设置 (wq保存退出 q!不保存退出)
vi /etc/sysconfig/network-scripts/ifcfg-etho
设置为静态地址static 开机自启yes
添加IPADDR(ip地址)=192.168.137.9
NETMASK(子网掩码)=255.255.255.0
GATEWAY(网关)=192.168.137.1
DNS1(域名)=192.168.137.1
网卡设备名和mac地址需要对应 uuid可以修改不同的
service network restart重启服务(需要先将克隆过来的节点需要修改网卡名eth1和eth0修改对应mac地址ifconfig -a 看mac地址和网卡名称 否则这个会报错不存在)
一般只需要修改 /etc/hosts (添加ip对应主机名字)和 /etc/sysconfig/network(修改主机名)
这是网络能ping通过,有时候不好使可能换个ip就好了。能连接xshell就行(代码可能有误)

安装java

安装java1.7.0_80的版本,设置java在windows10环境变量:
添加用户变量CLASSPATH = .;%JAVA_HOME%\jre\lib\rt.jar;.;
添加系统变量:JAVA_HOME = jdk的1.7.0_80的安装目录
编辑环境变量里面添加 %JAVA_HOME%\bin
环境变量配好,
安装连接xshell添加master地址192.168.137.9
设置登录密码将java安装包jdk-7u80-linux-x64.rpm通过xftp放入opt
进入cd /opt
rmp -ivh jdk TAB就可直接出来 安装完成后
java -version验证通过成功

配置hadoop

然后把hadoop2.6.4通过xftp上传opt中解压修改7个配置文件
上传操作为:
tar -zxf /opt/hadoop-2.6.4.tar.gz -C /usr/local/
进入修改7个配置文件
cd /usr/local/hadoop-2.6.4/etc/hadoop
etc目录下的hadoop里面的文件需要修改
1、hadoop-env.sh是hadoop运行环境配置。需要修改jdk的位置
export JAVA_HOME=/usr/java/jdk1.7.0_80
2、yarn-env.sh是YARN框架运行环境,同理需要修改JDK位置
export JAVA_HOME=/usr/java/jdk1.7.0_80
3、mapreduce-site.xml 是服务器机器名需要修改master
4、yarn-site.xml 是YARN框架的配置,在开始命名了一个yarn.rescourcemanager.hostname的变量 添加mater
5、slaves文件有slave节点的信息,slave1 slvae2 slave3
6、hdfs-site.xml是HDFS的配置文件
7、设置ip映射 主机名与ip地址的映射
vi /etc/hosts
192.168.137.9 master master.centos.com
192.168.137.10 slave1 slave1.centos.com
192.168.137.11 slave2 slave2.centos.com
192.168.137.12 slave3 slave3.centos.com
1、

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>

2、

vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_80

3、

vi yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_80

4、

cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

<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>

5 、

vi yarn-site.xml
 <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.address</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.nodemanager.resource.cpu-vcores</name> 
    <value>1</value> 
 </property>

6 、

vi slaves
slave1
slave2
slave3

7 、

vi 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>

8 、

#设置IP映射
编辑vi /etc/hosts
192.168.137.9 master master.centos.com
192.168.137.10 slave1 slave1.centos.com
192.168.137.11 slave2 slave2.centos.com
192.168.137.12 slave3 slave3.centos.com

克隆几个节点

完成后克隆master节点 slave1 slave2 slave3
slave1,2,3都需要修改ip地址
slave1:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改ip 192.168.137.11
删除HWADDR地址和UUID唯一码,然后重启网络:
service network restart
执行(centos系统清除网卡信息 )
rm /etc/udev/rules.d/70-persistent-net.rules命令
修改 /etc/sysconfig/network文件修改为slave1
vi /etc/sysconfig/network
HOSTNAME=slave1.centos.com
重启
reboot
进入Linux中
service network restart
连接xshell 192.168.137.10

slave2:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除HWADDR UUID
修改ip 192.168.137.11
清除网卡信息
rm /etc/udev/rules.d/70-persistent-net.rules
vi /etc/sysconfig/network
修改为HOSTNAME=slave2.centos.com
reboot
service network restart
连接xshell 192.168.137.11

salve3:
vi /etc/sysconfig/network-scripts/ifcfg-eth0删除 UUID HWADDR
修改ip 192.168.137.12
rm /etc/udev/rules.d/70-persistent-net.rules 清除网卡信息
vi /etc/sysconfig/network
修改为HOSTNAME=slave3.centos.com
reboot
service network restart
连接xshell 192.168.137.12

SSH免密登录

在master输入命令:
ssh-keygen -t rsa 回车几次
连接远程机器(有四个节点):
ssh-copy-id -i/root/.ssh/id_rsa.pub master
ssh-copy-id -i/root/.ssh/id_rsa.pub slave1
ssh-copy-id -i/root/.ssh/id_rsa.pub slave2
ssh-copy-id -i/root/.ssh/id_rsa.pub slave3

验证无密钥登录
ssh slave1 exit 退出slave1
ssh slave2 exit 退出slave2
ssh slave3 exit 退出slave3

时间同步NTP

建立快照(恢复之前)ntp前
打开虚拟机虚拟机里面设置已连接,(挂载 清除 安装)
进行挂载 mount /dev/dvd /media
清除:yum clean all
安装NTP命令:yum -y install ntp
显示 complete完成
slave1 2 3分别执行(挂载清除安装)
mount /dev/dvd/media
yum clean all
yum -y install ntp
然后master执行
vi /etc/ntp.conf
注释掉server开头的加#
添加地址
restrict 192.168.137.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

slave1,2,3分别执行
vi /etc/ntp.conf
注释掉server开头的加#
添加地址
restrict 192.168.137.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

然后4个节点永久关闭防火墙
service iptables stop & chkconfig iptables off
master启动
ntpd master执行
service ntpd start & chkconfig ntpd on(开机ntpd自动启动永久)
在slave1,2,3上执行
ntpdate master 即可同步时间
在slave1,2,3上执行
service ntpd start & chkconfig ntpd on
开机ntpd自动启动永久ntp服务

启动集群

启动集群前可建立快照
vi /etc/profile 添加JAVA_HOME Hadoop路径
最后添加下面两行

export HADOOP_HOME=/usr/local/hadoop-2.6.4
export PATH=$HADOOP_HOME/bin:$PATH:/usr/java/jdk1.7.0_80/bin

source /etc/profile 修改生效
重复在在slave1,2,3
vi /etc/profile
最后添加

export HADOOP_HOME=/usr/local/hadoop-2.6.4
export PATH=$HADOOP_HOME/bin:$PATH:/usr/java/jdk1.7.0_80/bin

source /etc/profile 生效
格式化NameNode
进入opt cd /opt
解压缩
tar -zxf hadoop-2.6.4.tar.gz
cd /opt/hadoop-2.6.4/bin(进bin目录)
hadfs namenode -format (格式化)

启动集群进入hadoop安装目录sbin下
cd /usr/local/hadoop-2.6.4/sbin
./start-all/sh(直接启动两个)
./mr-jobhistory-daemon.sh start historyserver
jps命令查看进程图

windows系统hosts文件设置
C盘下 System32\divers\etc
192.168.137.9 master master.centos.com
192.168.137.10 slave1 slave1.centos.com
192.168.137.11 slave2 slave2.centos.com
192.168.137.12 slave2 slave3.centos.com

测试操作

确保启动集群启动了,jps可以测试下
master下每次进入hadoop安装目录(sbin)目录下
cd /usr/local/hadoop-2.6.4/sbin
执行启动集群:
./start-dfs.sh
./start-yarn.sh
./start-all.sh(直接启动两个)
./mr-jobhistory-daemon.sh start historyserver
jps测试

测试:浏览器访问地址
http://master:50070 NameNode集群的存储系统信息
http://master:50070/dfshealth.jps 文件存储目录HDFS监控 各节点信息
http://master:8088 ResourceManager YARN监控 查看集群信息
http://master:19888 MapReduceJobHistory Server 日志监控

集群data/hadoop/hdfs/name/current VERSION 下有id号

操作:hdfs dfsadmin -report
-live在线 -dead失效的 -decommissioning停用的hdfs
http://master:50075
创建目录:hdfs dfs -mkdir
hdfs dfs -mkdir -p /多级目录
上传文件:
hdfs dfs -copyFromLocal /路径文件 /目标路径 拷贝到hdfs文件系统
moveFromLocal 移动到HDFS文件系统
-put 上传到HDFS文件系统
下载文件
hdfs dfs -copyToLocal /文件 /本地 HDFS拷贝到本地
hdfs dfs -get /hdfs文件 /本地
查看文件
hdfs dfs -cat /hdfs文件所在地
-tail输出HDFS文件最后1024字节
删除文件/目录
hdfs dfs -rm -f /hdfs上的文件 删除HDFS上的文件
hdfs dfs -rmdir /目录 删除一个目录
hadoop fs -rm -r -skipTrash /Test01/list/lisi(删除文件)
hadoop fs -rm -r -skipTrash /Test01(删除文件夹)

运行MapReduce任务
jar包在 /usr/local/hadoop-2.6.4/share/hadoop/mapreduce
hadoop jar包hadoop-mapreduce-examples-2.6.4.jar 模板名称 文件所在目录 文件输出目录
模块
如:wordcount频数统计
1、hadoop jar /opt/hadoop-2.6.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount /intput /output
同时提交多个MapReduce任务 msater:8088监控集群在RUNNING
Kill Application可以Killed终止掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值