Hadoop2.7.5在云服务器上的完全分布式安装

准备工具:

腾讯云服务器:三台master,node1,node2,

操作系统ubuntu16.04LTS

jdk-8u161-linux-x64.tar.gz

       hadoop-2.7.5.tar.gz

安装步骤:、

    1、初始化三台服务器,使得host主机之间可以通过相互ping通。

    2.安装jdk和配置环境变量,检查是否配置成功

    3、配置ssh,实现节点间的无密码登录 ssh node1/2指令验证时候成功

    4、master配置hadoop,并将hadoop文件传输到node节点

    5、配置环境变量,并启动hadoop,检查是否安装成功,执行wordcount检查是否成功。

1.购买云服务器并且配置安全组,分配主机角色

开放端口说明:windows类端口开放方便用windows登陆和使用,这里推荐winscp和putty,软件下载和使用在网上都能找得到

linux22口开放是为了各个主机之间能互相联通,ping命令,ssh免密码登陆

主机一公网ip master

主机二公网ip node1

主机三公网ip node2

(注意别配成内网IP就行了)

主机用户自己创建或者初始化那个就行,少用root用户,以免出现问题

2.修改主机的hostname和hosts文件

以master上机器为例,打开终端,执行如下的操作,把hostname修改成master,hosts修改成如下所示的样子:
#修改hostname的指令:
sudo vi /etc/hostname
#修改hosts指令:
sudo vi /etc/hosts
#将以下内容添加到hosts中
主机1公网ip   master
主机2公网ip    node1
主机3公网ip    node2
(注意:这里的主机1公网IP是你云服务器的主机公网ip,别照搬,会出错的,修改文件用vi和gedit都行)

如图所示:(修改主机名主节点改成master,数据节点改成node1,node2)

如图所示:(给每台主机的hosts文件添加内容)


4.检验各个主机之间能否连通

ping +主机名
分别在各个主机上执行上述指令,看是否能与其他主机连通


如果都成功ping通,进行下面的操作。

5.安装jdk和配置环境变量

分别在每台主机上安装jdk,并配置环境变量。

1)下载jdk安装包(自行百度),并用winscp将安装包拖入到云主机上去当中(具体使用教程百度就行)

2)通过cd命令进入到安装包的当前目录,利用如下命令进行解压缩。
tar -zxvf jdk.....(安装包名称)
3)利用如下命令将解压后的文件夹移到/opt目录下 
#注意,这样移动到/opt以后就没有jdk1.8...这个目录了,是将这个目录下的所有文件全部移动到/usr/java下,

mv jdk1.8...(文件夹名称) /opt

(这时候可能有权限限制,使用改变文件所属用户组和对文件操作命令即可修改

chown ubuntu(主机名)/opt

chmod 777 -R /opt

4)配置环境变量

sudo vi /etc/profile

在末尾加上:

export JAVA_HOME=/opt/jdk1.8.0_161

export CLASSPATH=$JAVA_HOME/lib/

export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 

输入如下命令使配置生效:source /etc/profile

同时再用ava和javac命令试一下,一防万一。

出现如上没有报错,则说明java环境配置成功。

6.配置SSH,实现节点间的无密码登录

1..安装ssh

sudo apt-get install openssh-server 

已有ssh或者安装成功了的输入命令(云主机一般都会提前安装ssh的) ps -e | grep ssh

验证SSH是否成功安装输入

ssh localhost

如下图所示即为成功:


3.生成密钥Pair

ssh-keygen -t rsa

输入之后一直选择enter即可。生成的秘钥位于 ~/.ssh文件夹下。可用cd 命令进入查看。

4.在master上,导入authorized_keys

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

5.远程无密码登录(把master上的authorized_keys拷贝到其他主机的相应目录下)

#进入master的.ssh目录,执行复制操作
scp authorized_keys @node1:~/.ssh/
scp authorized_keys @node2:~/.ssh/

修改各台主机上authorized_keys文件的权限:

所有主机上,均执行命令:

chmod 600 .ssh/authorized_keys

完成之后,在master上执行下面操作,检查免密码登录是否成功。

ssh node1(node2)

此时,重启所有的云主机,让更改生效

7.master配置hadoop,然后将master的hadoop文件传送给node节点

1)解包移动

[plain]  view plain  copy
  1. #解压hadoop包  
  2. tar -zxvf hadoop...  
  3. #将安装包移到/usr目录下  
  4. mv hadoop... /opt

2)新建文件夹

[plain]  view plain  copy
  1. #在/opt目录下新建如下目录 
  2. mkdir filehadoop/dfs  
  3. mkdir filehadoop/dfs/name  
  4. mkdir filehadoop/dfs/data  
  5. mkdir filehadoop/tmp  

3)配置文件:hadoop-env.sh(文件都在/usr/hadoop/etc/hadoop中)

修改JAVA_HOME值(export JAVA_HOME=/opt/jdk1.8.0_161) 

4)配置文件:yarn-env.sh

修改JAVA_HOME值(export JAVA_HOME=/opt/jdk1.8.0_161

5)配置文件:slaves

将内容修改为:

node1
node2

6)配置文件:core-site.xml

[html]  view plain  copy
  1. <configuration>  
  2.     <property>  
  3.         <name>fs.defaultFS</name>  
  4.         <value>hdfs://master:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>io.file.buffer.size</name>  
  8.         <value>131072</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>hadoop.tmp.dir</name>  
  12.         <value>file:/usr/hadoop/tmp</value>  
  13.         <description>Abase for other temporary   directories.</description>  
  14.     </property>  
  15. </configuration>  

7)配置文件:hdfs-site.xml

[html]  view plain  copy
  1. <configuration>  
  2.        <property>  
  3.                 <name>dfs.namenode.secondary.http-address</name>  
  4.                <value>master:9001</value>  
  5.        </property>  
  6.      <property>  
  7.              <name>dfs.namenode.name.dir</name>  
  8.              <value>file:/usr/hadoop/dfs/name</value>  
  9.        </property>  
  10.       <property>  
  11.               <name>dfs.datanode.data.dir</name>  
  12.               <value>file:/usr/hadoop/dfs/data</value>  
  13.        </property>  
  14.        <property>  
  15.                <name>dfs.replication</name>  
  16.                <value>2</value>  
  17.         </property>  
  18.         <property>  
  19.                  <name>dfs.webhdfs.enabled</name>  
  20.                   <value>true</value>  
  21.          </property>  
  22. </configuration>  

8)配置文件:mapred-site.xml

进入到/opt/hadoop2.7.5目录下:

 cp etc/hadoop/mapred-site.xml.template /opt/hadoop2.7.5/etc/hadoop/mapred-site.xml

vi etc/hadoop/mapred-site.xml

[html]  view plain  copy
  1. <configuration>  
  2.           <property>                                                                    
  3.         <name>mapreduce.framework.name</name>  
  4.                 <value>yarn</value>  
  5.            </property>  
  6.           <property>  
  7.                   <name>mapreduce.jobhistory.address</name>  
  8.                   <value>master:10020</value>  
  9.           </property>  
  10.           <property>  
  11.                 <name>mapreduce.jobhistory.webapp.address</name>  
  12.                 <value>master:19888</value>  
  13.        </property>  
  14. </configuration>  

9)配置文件:yarn-site.xml

[html]  view plain  copy
  1. <configuration>  
  2.         <property>  
  3.                <name>yarn.nodemanager.aux-services</name>  
  4.                <value>mapreduce_shuffle</value>  
  5.         </property>  
  6.         <property>                                                                  
  7. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
  8.                <value>org.apache.hadoop.mapred.ShuffleHandler</value>  
  9.         </property>  
  10.         <property>  
  11.                <name>yarn.resourcemanager.address</name>  
  12.                <value>master:8032</value>  
  13.        </property>  
  14.        <property>  
  15.                <name>yarn.resourcemanager.scheduler.address</name>  
  16.                <value>master:8030</value>  
  17.        </property>  
  18.        <property>  
  19.             <name>yarn.resourcemanager.resource-tracker.address</name>  
  20.              <value>master:8031</value>  
  21.       </property>  
  22.       <property>  
  23.               <name>yarn.resourcemanager.admin.address</name>  
  24.                <value>master:8033</value>  
  25.        </property>  
  26.        <property>  
  27.                <name>yarn.resourcemanager.webapp.address</name>  
  28.                <value>master:8088</value>  
  29.        </property>  
  30. </configuration>  

10)将hadoop传输到node1和node2 /opt目录,(如果传输时报错说 :权限拒绝,先把文件传送到非/opt目录下,然后在node上把这个文件再移动到/opt

 scp -r /opt/hadoop2.7.5 @node1:/opt
7、配置环境变量,并启动hadoop,检查是否安装成功
1)配置环境变量
#编辑/etc/profile
sudo vi /etc/profile
#以上已经添加过java的环境变量,在后边添加就可以
  1. #hadoop  
  2. export HADOOP_HOME=/opt/hadoop-2.7.5  
  3. export PATH=$PATH:$HADOOP_HOME/sbin  
  4. export PATH=$PATH:$HADOOP_HOME/bin  

执行 

source /etc/profile

使文件生效。

2)启动hadoop,进入hadoop安装目录

bin/hdfs namenode -format
sbin/start-all.sh

3)启动后分别在master, node下输入jps查看进程

看到下面的结果,则表示成功

master节点:


datanode:


此时Hadoop集群基本搭建成功!!!!

可能遇到的问题:

1、在修配置完ssh免密码登录后,忘记reboot重启所有服务器

2、所有节点启动正常,无报错,但用jps查看时发现master节点除了jps其他hadoop进程都没启动

修改方法:将主节点的关于端口的IP配置,都将相应的master修改成0.0.0.0

或者发现datanode链接不上master的9000端口,解决方案如下:

例如:

配置文件:core-site.xml

[html]  view plain  copy
  1. <configuration>  
  2.     <property>  
  3.         <name>fs.defaultFS</name>  
  4.         <value>hdfs://master:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>io.file.buffer.size</name>  
  8.         <value>131072</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>hadoop.tmp.dir</name>  
  12.         <value>file:/usr/hadoop/tmp</value>  
  13.         <description>Abase for other temporary   directories.</description>  
  14.     </property>  
  15. </configuration>  


将其修改成为:

配置文件:core-site.xml

[html]  view plain  copy
  1. <configuration>  
  2.     <property>  
  3.         <name>fs.defaultFS</name>  
  4.         <value>hdfs://0.0.0.0:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>io.file.buffer.size</name>  
  8.         <value>131072</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>hadoop.tmp.dir</name>  
  12.         <value>file:/usr/hadoop/tmp</value>  
  13.         <description>Abase for other temporary   directories.</description>  
  14.     </property>  
  15. </configuration>  

修改地址是127.0.0.1,只有自己服务器本地可以访问,其他的来源ip是无法访问的,0.0.0.0代表的是公网地址,所有地址均可以访问。

其他关于master的配置文件都按这个改即可!!!










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值