linux平台下的Hadoop的伪分布式安装

时间:2021-10-24 23:37:11

 

 

 

 

 

Hadoop 分为两大块:HDFS 和 MapReduce
HDFS是一个分布式存储文件系统,Mapreduce是一个分布式计算的框架,两者结合起来,就可以很容易做一些分布式处理任务了。
 
一  安装JDK1.7
Linux会自带JDK,如果不使用自带版本的话需要卸载。
1.  卸载系统自带的jdk版本
查看自带的jdk
#rpm -qa | grep gcj
使用rpm -e --nodeps 命令删除上面查找的内容:
linux平台下的Hadoop的伪分布式安装
创建hadoop用户组和用户
groupadd -g  hadoop
useradd -g hadoop hadoop
passwd hadoop
 
2. 安装 java JDK
mkdir /usr/java
解压jdk包:tar -zxvf   jdkXXXXXXX.tar.gz 
linux平台下的Hadoop的伪分布式安装

安装包在其他文件夹的时候要加上解压存放路径:

  linux平台下的Hadoop的伪分布式安装

将java添加到环境变量中linux平台下的Hadoop的伪分布式安装

在文件末尾加上:
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$PATH: /usr/java/jdk1.7.0_79/bin
 
刷新配置:
source  /etc/profile
 验证jdk是否安装成功:
  linux平台下的Hadoop的伪分布式安装
二  配置SSH免密码登陆
首先,确保当前可以连接到互联网。在root下修改/etc/ssh/sshd_config文件(客户端、服务器都需要更改),将
#AuthorizedKeysFile  .ssh/authorized_keys
前面的#号去掉,即启用
AuthorizedKeysFile  .ssh/authorized_keys
如果需要root也能ssh登录,把“#PermitRootLogin yes”前面的#号也去掉。
同样root账户下,重启sshd服务使之生效
/etc/rc.d/init.d/sshd  restart
linux平台下的Hadoop的伪分布式安装
设置免密码登录,生成私钥和公钥
ssh-keygen -t dsa
服务器中,切换到需要ssh登录的帐户下:
如果服务器中尚未建立公私钥对,那么首先按照客户端的方法建立公私钥对
scp  账户名@客户端主机名或ip地址:/home/帐户名/.ssh/id_dsa.pub  /home/帐户名/
将客户端账户的公钥拷到服务器中。客户端用主机名或ip地址均可,但是需与ssh登录命令相符,建议将主机名与ip地址写入/etc/hosts中,此处用主机名即可(下同)。
yes  将客户端写入known_hosts中
输入客户端中的账户密码完成复制

 linux平台下的Hadoop的伪分布式安装

此时会在 /home/hadoop/.ssh 下生产两个文件:  id_rsa 和 id_rsa.pub , 前者为私钥,后者为公钥。
下面我们将公钥加到  authorized_keys 中,它用户保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 linux平台下的Hadoop的伪分布式安装

linux平台下的Hadoop的伪分布式安装

linux平台下的Hadoop的伪分布式安装

显示SSH已经安装成功了。输入命令:
 
登录 ssh
ssh 10.0.2.15     (本机客户IP地址或是hostname :比如loaclhost/hadoop1 ) 或是在  /etc/hosts  文件中修改 映射ip地址和主机名,
 
linux平台下的Hadoop的伪分布式安装

linux平台下的Hadoop的伪分布式安装

备注将普通用户修改为超级用户的方法:
  进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。
l  添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。
l  编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",输入"i"进入编辑模式,找到这一行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存(就是先摁一下Esc键,然后输入":wq")退出。
l  撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。
 
赋予hadoop用户和root一样的权限:
linux平台下的Hadoop的伪分布式安装

linux平台下的Hadoop的伪分布式安装

 

 

 

三   安装hadoop
   先介绍一下Hadoop对各个节点的角色意义:
          Hadoop分别从三个角度将主机划分为两种角色。第一,划分为master和salve,即主人与奴隶;第二,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目标的管理很重要,管理目录的就相当于主人,而NameNode就是目录管理者);第三,从MapReduce的角度,将主机划分为JobTracker和TaskTracker(一个job经常被划分为多个task,从这个角度不难理解它们之间的关系)。
Hadoop有官方发行版与cloudera版,其中cloudera版是Hadoop的商用版本。下面介绍Hadoop官方发行版的安装方法。
Hadoop有三种运行方式:单节点方式、单击伪分布方式与集群方式。乍看之下,前两种方式并不能体现云计算的优势,在实际应用中并没有什么意义,但是在程序的测试与调试过程中,他们还是很有意义的。
 
 
1.上传hadoop包,我这里使用FileZilla上传到 linux下/root/centos目录下
    
2.解压hadoop包
   
          tar -zxvf hadoop-2.2.0.tar.gz -C /usr/local/
   mv  hadoop-2.2.0 hadoop

 linux平台下的Hadoop的伪分布式安装

3.配置hadoop伪分布式(要修改etc/下的4个文件)
   可以把伪分布式的Hadoop看作是一个节点的集群,在这个集群中,这个节点既是master,也是salve;既是NameNode也是DataNode;既是JobTracker,也是TaskTracker。
伪分布式的配置过程也很简单,只需要修改几个文件,如下所示。
linux平台下的Hadoop的伪分布式安装
第一个:hadoop-env.sh    ( 指定JDK的安装位置)
     vim hadoop-env.sh
     export JAVA_HOME=/usr/java/jdk1.7.0_79
  linux平台下的Hadoop的伪分布式安装

 

第二个:core-site.xml
<configuration>
  <property>
      <name>fs.default.name</name>
      <value>hdfs://hadoop1:9000</value>
  </property>
</configuration>
这是hadoop核心的配置文件,这里配置的是HDFS的地址和端口号。

linux平台下的Hadoop的伪分布式安装

 

 

第三个:hdfs-site.xml
 
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>
这是Hadoop中的HDFS的配置,配置的备份方式默认为3,��单机版的Hadoop中,需要将其改为1.

 linux平台下的Hadoop的伪分布式安装

第四个:mapred-site.xml (需要从此文件复制mapred-site.xml.template) 即cp mapred-site.xml.template  mapred-site.xml
<configuration>
  <property>
      <name>mapred.job.tracker</name>
      <value>hadoop1:9001</value>
  </property>
</configuration>
这是Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
需要注意的是,如果安装的是0.20之前的版本,那么只有一个配置文件,即为Hadoop-site.xml。
 
4.将Hadoop添加到环境变量中
vim /etc/profile

 linux平台下的Hadoop的伪分布式安装

5.初始化HDFS(格式化文件系统,此步类似刚买U盘需要格式化)

linux平台下的Hadoop的伪分布式安装

linux平台下的Hadoop的伪分布式安装

首先赋予hadoop用户hadoop文件夹的使用权限:

 linux平台下的Hadoop的伪分布式安装

输入命令:linux平台下的Hadoop的伪分布式安装

利用jps查看已经启动的服务:

linux平台下的Hadoop的伪分布式安装

找不到 java进程:
 
原因是系统自带的jdk没有删除干净,导致java路径读取的是原系统的路径:

 linux平台下的Hadoop的伪分布式安装

linux平台下的Hadoop的伪分布式安装

linux平台下的Hadoop的伪分布式安装

再查看jps:

 linux平台下的Hadoop的伪分布式安装

使用 http://localhost:50070/.会看到 hdfs的管理界面

 linux平台下的Hadoop的伪分布式安装

但是   mapreduce的web页面打不开可能有3个原因:
1.防火墙没有关闭,
     查看防护墙状态
     service iptables statu 
     关闭
     service iptables stop     
     查看防火墙开机启动状态
     chkconfig iptables --list
     关闭开机启动
     chkconfig iptables off
 
2.端口没有打开;

 linux平台下的Hadoop的伪分布式安装

3   /etc/profile 文件中  HADOOP_HOME 路径配置错误

 linux平台下的Hadoop的伪分布式安装

然后重新执行  sbin/start-all.sh

 linux平台下的Hadoop的伪分布式安装

再  jps查看一下进程:

 linux平台下的Hadoop的伪分布式安装

验证是否安装成功:
 
linux平台下的Hadoop的伪分布式安装