CentOs7下搭载分布式Hadoop2.9

来源:互联网 发布:淘宝店铺怎么装修上新 编辑:程序博客网 时间:2024/06/05 03:07

最近在学习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/libexport 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

原创粉丝点击