Hadoop2.7.1伪分布安装及配置


前言

上一篇blog介绍了多节点Linux集群的构造,本篇blog介绍基于单一节点Hadoop伪分布安装,有时间再尝试多节点Hadoop安装。Hadoop有三种安装模式,分别是:

  • 单机模式:所有程序都在单个JVM上执行,不使用HDFS,主要用于调试MapReduce程序的应用逻辑。
  • 伪分布模式:所有文件储存在单一节点上,所有的守护进程都运行在同一台机器上。
  • 集群安装:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。这时,数据就可以分布到多个节点上,不同数据节点上的数据计算可以并行执行,这时的MapReduce分布式计算能力才能真正发挥作用。

一、创建用户

添加一名“hadoop”用户,并给与管理员权限,方便系统的部署。

  • 创建新用户hadoop
sudo useradd -m hadoop -s /bin/bash
  • 设置密码,按照提示输入密码
sudo passwd hadoop
  • 设置管理员权限
sudo adduser hadoop sudo

二、安装配置SSH

Ubuntu默认安装了SSH client,还需要安装SSH server。

sudo apt-get install openssh-server

安装后需要使用密码登录本机,先看下是否安装成功。

ssh localhost

每次登录要密码显然不方便,需要配置为SSH无密码登录,设置方法如下:

exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 采用rsa加密,在/home/当前用户/.ssh目录下找到id_rsa(私钥)和id_rsa.pub(公钥)
cat ./id_rsa.pub >> ./authorized_keys  # 将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容)

代码含义如注释所写。
最后,使用ssh localhost查看是不是不需要输入秘钥就可以直接登陆了。

三、安装Java环境

下载JDK版本为1.8及以上的版本,创建安装目录,将文件解压到安装目录。

cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd Downloads  #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm  #把JDK文件解压到/usr/lib/jvm目录下

设置环境变量

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

让配置生效

source ~/.bashrc

检查是否安装成功,返回正确的版本信息就是安装成功了

java -version

四、安装hadoop

hadoop官网下载安装文件到本地。本文是基于2.7.1装的,其他的版本好像也大差不差。

  • 解压。
sudo tar -zxf ~/下载/hadoop-3.1.3.tar.gz -C /usr/local    # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.1.3/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限
  • 检查是否成功,如果返回正确的版本信息就说明可用。
cd /usr/local/hadoop
./bin/hadoop version

五、hadoop伪分布式配置

在伪分布式中,节点即作为NameNode也作为DataNode,同时读取HDFS中的文件。需要修改位于/usr/local/hadoop/etc/hadoop/ 中的core-site.xml 和 hdfs-site.xml两个文件。
1、修改core-site.xml 文件

cd /usr/local/hadoop
vim ./etc/hadoop/core-site.xml 

把文件改为

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

上述配置是设定hadoop的临时目录(hadoop.tmp.dir)和分布式文件系统的地址(fs.defaultFS),通过这个地址访问分布式文件系统的各种数据。
2、修改 hdfs-site.xml文件

cd /usr/local/hadoop
vim ./etc/hadoop/hdfs-site.xml 

把文件改为

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

dfs.replication代表副本的个数,由于伪分布式文件就只在一个机器上,副本数量设置为1。dfs.namenode.name.dir设置namenode的文件保存位置;dfs.datanode.data.dir设置DataNode的文件保存位置。
3、NameNode初始化

cd /usr/local/hadoop
./binfs namenode -format

4、开启NameNode和DataNode守护进程

cd /usr/local/hadoop
./sbin/start-dfs.sh  

如果出现SSH提示,输入yes就好了
5、检查是否启动成功

jps

如果启动成功就有以下界面:
在这里插入图片描述
如果少一个,就要查看提示信息,看看是不是前面的配制出错了,详细检查一下。

运行实例

通过简单的实例看hadoop是否安装成功

./bin/hdfs dfs -mkdir -p /user/hadoop  #在HDFS中创建用户目录
./bin/hdfs dfs -mkdir input            #在用户目录下创建一个input文件夹
./bin/hdfs dfs -put ./etc/hadoop/*.xml input#把./etc/hadoop文件下所有的xml文件复制上传到input文件夹中
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+' #执行一个grep操作并将结果放到output的文件夹中
./bin/hdfs dfs -cat output/* #查看文件运行结果

如果出现以下结果说明安装好了
在这里插入图片描述
虽然运行成功了,但发现老是出现Unable to load native-hadoop library for your platform… using builtin-java classes where applicable这个错误。虽然不影响运行结果,但这玩意还是挺烦的哈。于是就搜了一些资料,比较好的有:

vim ~/.bashrc   #更改环境变量

在环境变量文件中加入红框中的三行内容
在这里插入图片描述

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

当然,保存后需要再次让配置文件生效。

source ~/.bashrc

应该最后就不会报错了。

说明:
博主本人还是属于初级学习阶段,很多东西没解释明白。如果有错误欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值