CentOs7下搭载分布式Hadoop2.9

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lxjzqj2007/article/details/78866250

最近在学习Hadoop,遇到了很多坑,下面讲讲怎么搭载。
(一)软件准备以及前提:
1,三台机器装有cetos7的机子。
2,每台linux系统安装了JDK(我用的JDK1.8)
3,hadoop-2.9.0.tar.gz(包)
以上都可以直接百度怎么安装。
(二)安装步骤:
1,创建用户(三台都要相同)
    进入root : su root
    创建用户hadoop: useradd hadoop
    修改用户密码:passwd hadoop
2.关闭防火墙及修改每台机的hosts
每台机子都按如下修改,红色部分是添加,按格式添加。
vim /etc/hosts

这里写图片描述
查看修改后的机器名字
cat /etc/hostsname
关闭防火墙:
systemctl stop firewalld.service
禁用防火墙:systemctl disable firewalld.service
查看防火墙状态firewall-cmd –state
重启 reboot
3.安装SSH、配置SSH无密码登陆(用新建的用户来创建)
su hadoop
输入登录密码
1) 在master主机生成密钥对
ssh-keygen -t rsa
这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录(如果没有在.ssh生成,可以进入在 ~/.ssh 下执行命令)
2)将公钥复制到从机上,2台从机都要
scp ~/.ssh/id_rsa.pub hadoop@192.168.40.132:/home/hadoop/
登陆从机,将公钥放到authorized_keys目录
cat /home/hadoop/id_rsa.pub >> /hadoop/.ssh/authorized_keys(如果.ssh目录不存在,新建一个)
3)给每台机子添加权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
4)测试:
在主机master上登陆从机slave
ssh hadoop@192.168.137.129
如果能切换到slave则表示成功。
注意:在切换到slave1后,如果需要测试登陆slave2的话,需要先返回到master,用命令exit
(三 )配置Hadoop集群
1,解压hadoop和建立文件
root用户下:tar zxvf /home/hadoop/hadoop-2.9.0.tar.gz -C /usr/
重命名:mv hadoop-2.7.3 hadoop
授权给hadoop: chown -R hadoop /usr/hadoop
2,创建hdfs相关文件(三台机子都需要操作)
创建存储hadoop数据文件的目录: mkdir /home/hadoopdir
mkdir /home/hadoopdir/tmp
mkdir /home/hadoopdir/dfs
存储临时文件,如pid:mkdir /home/hadoopdir/tmp
创建dfs系统使用的dfs系统名称hdfs-site.xml使用:mkdir /home/hadoopdir/dfs/name
创建dfs系统使用的数据文件hdfs-site.xml文件使用:mkdir /home/hadoopdir/dfs/data
授权给s: chown -R s /home/hadoopdir
3,配置环境变量(三台机子都需要操作)
root用户下:vim /etc/profile

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存退出后:source /etc/profile

进入到 解压的Hadoop文件的 bin目录,cd /usr/hadoop/bin
执行 ./hadoop vserion 查看 版本
这里写图片描述

4,配置hadoop文件内容
cd /usr/hadoop/etc/hadoop
修改 core-site.xml 文件,在configuration添加配置

<configuration>
       <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
       </property>
       <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/home/hadoopdir/tmp/</value>
               <description>A base for other temporary   directories.</description>
       </property>
</configuration>

修改hdfs-site.xml文件

<configuration>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:///home/hadoopdir/dfs/name</value>
       </property>
      <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:///home/hadoopdir/dfs/data</value>
       </property>    
</configuration>

修改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>
 <property>
                <name>mapreduce.jobtracker.http.address</name>
                <value>master:50030</value>
       </property>
 <property>
                <name>mapred.job.tracker</name>
                <value>master:9001</value>
       </property>
</configuration>

修改 yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
        <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.resourcemanager.hostname</name>
               <value>master</value>
       </property>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>master:8030</value>
       </property>
       <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
      </property>
      <property>
              <name>yarn.resourcemanager.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>

修改 slaves文件,同样在这个目录下
添加从机的名字
slave1
slave2
这里写图片描述

5,搭建集群(普通用户hadoop)
格式hadoop文件:hadoop namenode -format (最后出现“util.ExitUtil: Exiting with status 0”,表示成功)

发送dfs内容给slave1:scp -r /home/hadoopdir/dfs/* slave1:/home/hadoopdir/dfs

发给dfs内容给slave2:scp -r /home/hadoopdir/dfs/* slave2:/home/hadoopdir/dfs

发送hadoop文件给数据节点:scp -r /usr/hadoop/* slave1:/usr/hadoop/  scp -r /usr/hadoop/* slave2:/usr/hadoop/

进入 sbin 启动
cd /usr/hadoop/sbin
./start-all.sh

使用jps 命令查看启动情况(没有这个命令的需要安装 yum install jps*)
master
这里写图片描述
slave
这里写图片描述
出现这个就成功了。

最后离开安全模式
在master下

cd /usr/hadoop/bin
./hadoop dfsadmin  safemode  leave

可以登录网页查看:http://master:50070 (查看live node)
查看yarn环境http://master:8088

本文参考此处1
本文参考此处2

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页