hadoop分布式分类:伪分布式,全分布式
接下来我们尝试安装一下单机版的hadoop的单击配置,分布式在后续文章中会总结出来,接下来我们所需要的程序包jdk,hadoop都可以通过百度网盘链接进行提取下载链接:https://pan.baidu.com/s/1wdUsjBlWAEmQXsPRqKZS7A
提取码:jryf

创建hadoop用户

1、进入ubantu,当前用户如果使用的不是hadoop用户,那么我们需要增加一个名为hadoop的用户,打开终(快捷键Ctrl+alt+t)输入如下命令创建新用户。

sudo useradd -m hadoop -s /bin/bash

设置密码,为hadoop用户增加管理员权限,方便部署

sudo passwd hadoop
sudo adduser hadoop sudo

创建完成后我们登出当前用户,登入hadoop用户

安装ssh,配置ssh无密码登录

我们在之前使用filezilla文件传输的时候已经安装了ssh,有需要的伙伴们可以看第一篇文章filezila文件传输我们每次登录ssh都需要输入密码,所以为了避免麻烦我们将设置免密登录。
1.直接登录,会出现登录提示,输入yes就行,按提示输入hadoop的密码,这样就可以登录到本机了

ssh localhost

2.利用ssh-keygen生成秘钥

exit                  #退出刚才的 ssh localhost
cd ~/.ssh/            #若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa      #会有提示,都按回车就行
cat ./id_rsa.pub >> ./authorized_keys #加入授权

安装Java环境

安装JDK的方式有三种,我在这就给大家讲述一种
我们之前已经将包传到了downloads下了,在linux命令行界面,执行如下shell命令

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

JDK文件解压缩后可以执行如下命令查看到有一个jdk1.8.0_172目录:

cd /usr/lib/jvm
ls

下面继续执行如下命令,设置环境变量:

cd ~
vim ~/.bashrc

上面命令使用vim编辑器,在开头的位置加入以下几行内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_172
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@ubuntu:~$ java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b12, mixed mode)

安装hadoop2

我们将hadoop安装至/usr/local/中

sudo tar -zxf ~/下载/hadoop-2.10.1.tar.gz -C /usr/local    # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.10.1/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限

hadoop解压后即可使用,输入以下命令来检查hadoop是否可用,成功则会显示hadoop版本信息:

cd /usr/local/hadoop
./bin/hadoop version

hadoop单机配置(非分布式)

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*          # 查看运行结果

执行成功后如下所示,输出了作业的相关信息,输出的结果是符合正则的单词 dfsadmin 出现了1次

hadoop怎么设置免密登录 hadoop用户密码忘了如何找回_big data


值得我们注意的是,hadoop不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output删除

rm -r ./output