橙子03-Hadoop完全分布式集群配置过程

Hadoop完全分布式集群配置

完整配置视频可在b站观看hadoop完全分布式集群配置

第一步:安装虚拟机

Linux Centos6.8 64位
Vmware11

第二步:配master的固定IP

设置IP地址前要先看看vmware虚拟网络编辑器中的子网IP和网关IP
master、slave1和slave2的地址不能和网关IP重复。

固定IP设置:
vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=yes
BOOTPROTO=static

添加master的地址:
IPADDR=192.168.65.100
NETMASK=255.255.255.0
GATEWAY=192.168.65.2
DNS=192.168.65.2

保存退出:wq

输入命令 service network restart
在虚拟机(或xshell)中ping一个网址ping www.baidu.com
如果成功ping通,说明设置成功

打开xshell
新建会话
在master中下面内容:
命令 yum -y install ntp openssh-clients openssh-server vim
如果yum命名报错则需要进行换源操作
换源:
输入:vi /etc/yum.repos.d/CentOS-Base.repo
注释掉所有的mirrorlist
yum换源
yum换源

换源之后
输入 yum -y install ntp openssh-clients openssh-server vim

安装完成后,
命令 poweroff关机

第三步:克隆虚拟机,配置slave1和slave2

在vmware界面右键master虚拟机
管理→克隆→下一步→创建完整克隆
克隆slave1和slave2

克隆好后打开slave1
输入 ifconfig -a
记录 IP地址(inet addr) 和 硬件地址(HWaddr)

输入vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改:
DEVICE=eth1
HWADDR=记录的硬件地址
IPADDR=192.168.65.101

命令 vi /etc/sysconfig/network
改主机名slave1

重启虚拟机reboot

按照相同的方式改slave2(IPADDR=192.168.65.102,主机名slave2)

第四步:配置SSH无密码登录

SSH:Secure Shell,是一种建立在TCP/IP的应用层与传输层之间的协议,可以保证远程登录和传输的安全。可以从一个节点安全的访问另外的节点。

配置ip映射
每台机器上
vi /etc/hosts

添加
192.168.65.100 master
192.168.65.101 slave1
192.168.65.102 slave2

配置公钥/私钥
ssh-keygen -t rsa

查看生成的公钥和私钥
ls /root/.ssh/

将公钥发送到所有的节点上:
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

然后在master上测试
输入 ssh slave1
看看是否能切换到slave1节点

然后退出:
exit

第五步:配置NTP时间同步

NTP是用来使计算机时间同步的一种协议,Hadoop集群要求主从节点的时间必须同步,所以接下来我们来配置时间同步服务

设置master节点为NTP服务主节点
输入:vi /etc/ntp.conf
注释掉以server开头的行
添加
restrict 192.168.65.2 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

同样
在slave1和slave2上
输入vi /etc/ntp.conf
注释所有的server行
然后添加
server master

关闭所有节点防火墙(在所有节点上操作):
命令 service iptables stop & chkconfig iptables off

先启动master节点的ntp服务:
service ntpd start & chkconfig ntpd on

然后slave1,slave2和master同步:
ntpdate master

最后slave1,slave2启动ntp
service ntpd start & chkconfig ntpd on

第六步:安装java

在所有的节点上操作

先进入opt目录:
cd opt/
打开Xshell的“新建文件传输”
将jdk-8u151-linux-x654.rpm文件拖到/opt目录下

上传完成后
执行命令
rpm -ivh jdk-8u151-linux-x64.rpm

配置环境变量
输入 vi /etc/profile
再最后加入
export JAVA_HOME=/usr/java/jdk1.8.0_151
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

执行命令使修改生效:
source /etc/profile
查看是否配置成功
java -version

一定记得在所有节点上执行安装java的上述步骤

第七步:搭建Hadoop

修改hadoop基础配置文件
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
hadoop-env.sh
yarn-env.sh
slaves

进入opt目录
cd /opt
Xshell新建文件传输
上传hadoop-2.6.5.tar.gz文件到/opt目录

解压缩hadoop-2.6.5.tar.gz 文件
tar -zxvf hadoop-2.6.5.tar.gz -C /usr/local
解压后即可,看到/usr/local/hadoop-2.6.5文件夹

进入目录:
cd /usr/local/hadoop-2.6.5/etc/hadoop/
依次修改下面的文件:

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

②vi hadoop-env.sh
先注释掉上一个export行
然后添加export JAVA_HOME=/usr/java/jdk1.8.0_151

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

④首先从模板复制创建mapred-site.xml文件
cp mapred-site.xml.template mapred-site.xml
然后vi mapred-site.xml

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- jobhistory properties -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
</property>
<property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>master:19888</value>
</property>
</configuration>

⑤vi yarn-site.xml

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

⑥vi yarn-env.sh
添加java的路径
export JAVA_HOME=/usr/java/jdk1.8.0_151

⑦vi slaves
删除localhost,添加:
slave1
slave2

拷贝hadoop安装文件到集群slave节点
scp -r /usr/local/hadoop-2.6.5 slave1:/usr/local
scp -r /usr/local/hadoop-2.6.5 slave2:/usr/local

在所有的节点上
输入vi /etc/profile
添加Hadoop路径
export HADOOP_HOME=/usr/local/hadoop-2.6.5
export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:PATH

在所有机器上执行
source /etc/profile
使修改生效

格式化NameNode只在master的 上面执行
进入目录
cd /usr/local/hadoop-2.6.5/bin
对namenode执行格式化
./hdfs namenode -format

第八步: 查看集群监控

启动HDFS集群
master上执行命令
cd /usr/local/hadoop-2.6.5/sbin/
./start-dfs.sh 启动HDFS
./start-yarn.sh 启动YARN
./mr-jobhistory-daemon.sh start historyserver启动日志

在windows系统设置IP映射
cat /etc/hosts
复制ip和主机名,添加到C:\Windows\System32\drivers\etc中去

192.168.65.100 master
192.168.65.101 slave1
192.168.65.102 slave2

打开浏览器查看集群监控
http://master:50070/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值