linux系统上搭建Hadoop2.6分布式集群

搭建环境以及服务器说明:4台服务器:1master,3slave,基于centos7hadoop使用版本2.6 ,jdk使用版本1.8,默认已经安装好虚拟机。本次使用VM12+centos7(最小化主机安装)

一、新建用户(可以忽略不计)

分别给4台服务器注册rookie用户(使用普通用户的时候会遇到一些权限的问题,如果不会解决权限问题,可使用root用户)

useradd rookie  添加rookie用户

passwd  rookie 设置rookie用户的密码

使用rookie 用户登录时,不能修改hosts文件 用sudo提示rookie不在sudoers 文件中,

root登录然后再etc/sudoers中添加 rookie ALL=(ALL:ALL) ALL

二、配置hosts

192.168.144.128  master

192.168.144.129  slave1

192.168.144.130  slave2

192.168.144.131  slave3

关闭防火墙使用systemctl disable firewalld.service  开机禁用,然后使用reboot重启电脑

几台虚拟机都要进行这一步操作

三、配置SSH免**登录(都是用rookie用户登录)

a) ssh-****** -t rsa

b) cd /home/ rookie /.ssh(哪个用户安装 就在哪个用户home的下面)

c) cat id_rsa.pub>>authorized_keys

d) ssh   IP地址cat /home/rookie/.ssh/id_rsa.pub>>authorized_keys

e) scp authorized_keys ip:/home/ rookie /.ssh/

f) 普通用户需要将authorized_keys权限设置为600,chmod 600 authorized_keys

四、安装JDK

a)解压到/usr/local/java目录下

b)配置环境变量 vim /etc/profile添加

export JAVA_HOME=/usr/local/java/jdk

jdk解压文件的名字改为jdk,为了修改版本时,不用修改环境变量

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

c) source /etc/profile 刷新环境变量,不用重启电脑

五、安装Master节点的hadoop

Linux中无论安装什么都要把文件名字去掉版本号,为了修改版本时,不用修改环境变量

a) 解压hadoop/usr/local/rookie

然后配置环境变量 sudo  vim /etc/profile

export HADOOP_HOME=/usr/local/rookie/hadoop

export HADOOP_CONF_HOME=$HADOOP_HOME/etc/hadoop/

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

之后source /etc/profile

使用 hadoop version 命令来检测是否安装配置成功,以下是安装成功截图

linux系统上搭建Hadoop2.6分布式集群

b) 修改hadoop配置

i. 修改core-site.xm(添加变量)

<configuration>

<property>

              <name>fs.defaultFS</name>

             <value>hdfs://master:9000</value><!--master节点 -->

         </property>

<property>  

         <name>hadoop.tmp.dir</name>  <!—这个是hdfs namedata的保存位置-->

         <value>/usr/local /tmp</value>

</property>

</configuration>

ii. 修改hdfs-site.xm(添加变量)

<configuration>

    <property>

       <name>dfs.replication</name>

       <value>1</value><!--  hdfs备份的数量,eclipse上传到服务器hdfs,需要修改备份数,则在程序中设置此参数-->

    </property>

    <property>    

         <name>dfs.namenode.secondary.http-address</name>    

          <value>master:9001</value><!--  主机名:9001-->

    </property>    

     <property>    

          <name>dfs.webhdfs.enabled</name>    

          <value>true</value>    

     </property>    

     <property>    

          <name>dfs.permissions</name>    

          <value>false</value>    

     </property>

</configuration>

iii. 修改yarn-site.xm(添加变量)

  网上有些教程修改了端口,作为初学者不应该修改端口号,默认即可,不然后面在写代码的时候各种问题就出来了(此处被坑过)

<configuration>

<!-- Site specific YARN configuration properties -->

<property>    

   <name>yarn.resourcemanager.hostname</name>    

   <value>master</value>   <!—yarn的主机名 -->

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

</configuration>

iv. 修改mapred-site.xml (添加变量)

<-- 设置yarn调度-->

<configuration>

  <property>

       <name>mapreduce.framework.name</name>

       <value>yarn</value>

    </property>

</configuration>

v. 添加 masters文件和内容(当前文datanode节点拥有即可)

里面内容是:master

vi. 添加slaves文件和内容(当前文件namenode节点拥有即可)

里面内容是:hosts配置的iphostname对应

slave1

slave2

slave3

vii. 设置hadoop中的java环境变量:hadoop路径/etc/hadoop/hadoop-env.sh

找到对应的位置修改(修改后如下)

export JAVA_HOME=/usr/local/rookie/java/jdk

六、安装slave节点的hadoop   

复制 jdk hadoop的文件到salve节点,并修改相关的配置变量(slave的文件夹需要提前建好)

scp  -r /usr/local/rookie/hadoop  ip:/usr /local/rookie  

scp  -r /usr/local/java /jdk  ip:/usr /local/java

sudo scp /etc/profile  ip:/etc

上面复制需要分别复制到3个节点上

使各节点的配置文件生效 source /etc/profile (每一个slave都要执行该命令)

经过上面的步骤,hadoop分布式集群已经初步搭建完成,现在可以尝试启动集群

--------------------------------------------------------启动集群--------------------------------------------------------------------------------

首先 hadoop  namenode format 格式化namenode

格式化一次,下次不用重新格式化,namenode里面保存的元数据,没有元数据不能定位到文件具体存在那些datanode节点

第一次启动的时候如果卡在了启动datenode  可能需要输yes (记住当前的hosts)

然后 start-dfs.sh 启动,没有报错则视为启动成功,成功后日志如下

linux系统上搭建Hadoop2.6分布式集群

Jps 查看

master:

linux系统上搭建Hadoop2.6分布式集群

slave:

linux系统上搭建Hadoop2.6分布式集群

然后 start-yarn.sh启动yarn

yarn:

linux系统上搭建Hadoop2.6分布式集群

jps:

linux系统上搭建Hadoop2.6分布式集群

最终打开在浏览器 http://master:50070 mater 为hadoop master节点ip 大致这样就算成功

linux系统上搭建Hadoop2.6分布式集群

linux系统上搭建Hadoop2.6分布式集群