> 文章列表 > Hadoop3.1.3单机(伪分布式配置)

Hadoop3.1.3单机(伪分布式配置)

Hadoop3.1.3单机(伪分布式配置)

参考:林子雨老师网站博客
Hadoop安装搭建伪分布式教程(全面)吐血整理

环境

Vmare12
Ubuntu16.04

创建Hadoop用户

若安装Ubuntu不是用的“hadoop”用户,则需要增加一个名为"hadoop"的用户

  1. 直接快捷键ctrl+alt+t或者点击小箭头,以打开终端窗口,输入该命令创建新用户
$ sudo useradd -m hadoop -s /bin/bash

该条命令创建了可以登录的hadoop用户,且使用/bin/bash作为shell

  • sudo命令:Ubuntu中一种权限管理机制。管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。
    当使用sudo命令时,需要输入当前用户密码
  • 密码:在linux的终端中输入密码,终端不显示任何你当前输入的密码,也不会提示已输入了多少字符密码(在windows系统中,输入密码往往会是*)
  • 输入法中英文切换:ubuntu中终端输入的命令一般是用英文输入。
  • Ubuntu终端复制快捷键:ctrl+v+shift
  1. 设置密码
    以密码hadoop为例
$ sudo passwd hadoop

可以给hadoop用户增加管理员权限,方便部署

$ sudo adduser hadoop sudo
  1. 注销当前用户
    点击屏幕右上角的齿轮,选择注销,返回登陆界面。在登陆界面选择刚创建的hadoop用户进行登录。

更新apt

  1. (1)为后续一些apt软件安装,更新apt
$ sudo apt-get update 

(2)系统设置(左边的小齿轮)→软件和更新(系统)→from中选择other→列表中选[mirrors.aliyun.com]→choose server(右下角)→关闭→重新载入
(3)再次执行sudo apt-get update
2. 为后续方便更改配置文件,安装vim
sudo apt-get install vim
安装时照例有确认,输入y即可

vim常用模式:命令模式,插入模式,可视模式,正常模式
(1)正常模式
主要用来浏览文本内容。
一开始打开vim是正常模式,且在任何模式下按esc键可以返回正常模式
(2)插入编辑模式
用来向文本添加内容。
在正常模式下,输入i键进入插入编辑模式
(3)推出vim
利用vim修改任何文本时,都别忘了保存。
esc键退回到正常模式中,输入:wq可保存并退出vim

安装SSH、配置SSH无密码登录

SSH登录(类似于远程登录,可以登录某台Linux主机,且在上面运行命令)在集群、单节点模式都需用到。
Ubuntu默认已安装了SSH client,此外还需要安装SSH server

sudo apt-get install openssh-server

安装后,登录本机

ssh localhost

SSH首次登录提示,输入yes再按提示输入密码,以登录本机(但该种登录方式需要密码)

  • 配置SSH无密码登录
    推出刚才的ssh,回到原先的终端窗口,利用ssh-keygen生成密钥,并把密钥加入到授权中
exit # 退出刚才的ssh localhostcd ~/.ssh/ # 若没有该目录,先执行一次ssh localhostssh-keygen -t rsa # 会有提示,按回车即可(当前面又是$再输入下条命令)cat ./id_rsa.pub >> ./authorized_keys #加入授权

~ :在Linux系统中,~代表的是用户的主文件夹,即"/home/用户名"。如你的用户名是hadoop,则 ~ 代表"/home/hadoop/"
#: 其后的内容为注释

此时再用ssh localhost命令,无需输入密码就可以直接登录

安装Java环境

版本匹配:Hadoop3.1.3需要JDK版本在1.8及以上。

  • 本机文件传输到虚拟机

借助FileZilla

  • 在Linux命令行界面中,执行如下Shell命令(当前登录用户名是hadoop)
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目录下

(复制加shift)

  • 确认是否添加成功
cd /usr/lib/jvm
ls

看到/usr/lib/jvm目录下有jd1.8.0目录

  • 设置环境变量
cd ~
vim ~/.bashrc

使用vim编辑器,输入i进入编辑状态,
在文件开头添加

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

按esc键退出编辑状态,输入:wq保存并退出

  • 让.bashrc文件的配置立即生效
source ~/.bashrc
  • 查看是否安装成功
java -version

返回版本号啥的说明🆗

安装hadoop3.1.3

hadoop3.1.3
链接:https://pan.baidu.com/s/1BnF9IaBMH8QazFe7BurxOw
提取码:j756

同上用FileZilla传到Ubuntu中,以保存在Downloads为例

sudo tar -zxf ~/Downloads/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 # 修改文件权限

hadoop解压后即可使用。
输入命令检查Hadoop是否可用,显示Hadoop版本信息即为欧克

cd /usr/local/hadoop
./bin/hadoop version
./ 相对路径,以/usr/local/hadoop为当前目录

配置方式(单机&伪单机)

Hadoop单机配置(非分布式)

Hadoop默认模式就是非分布式模式(本地模式),无需进行其他配置即可运行。
非分布式即单Java进程,方便进行调试。

运行./bin/hadoop jar ./share/hadoop/marreduce/hadoop-mapreduce-examples-3.1.3.jar可以看到所有例子。Hadoop附带了丰富的例子,例如wordcount,terasort,join,grep

  • 例如运行grep例子,把input文件夹中的所有文件作为输入,筛选当中符合正则表达式dfs[a-z.]+的单词并统计出现的次数,最后输出结果到output文件夹中
cd /usr/localhadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input #把配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/* #查看运行结果(符合正则规矩的单词出现了一次)

Hadoop默认不会覆盖结果文件,则再次运行上面实例的话会提示出错,需要先把./output
删除

rm -r ./output

Hadoop伪分布式配置

  • 配置
    Hadoop的配置文件位于/usr/local/hadoop/etc/hadoop/中
cd /usr/local/hadoop
cd etc
cd hadoop

伪分布式需要修改两个配置文件:core-site.xml和hdfs-site.xml.

vim core-site.xml

把其中的

<configuration>
</configuration>

改为(退出的时候记得保存)

<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>

同理,把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>

Hadoop的运行方式是由配置文件决定的(运行Hadoop时会读取配置文件)。
若需要从伪分布式模式切换为非分布式模式,需要删除core-site.xml中的配置项。

  • 格式化
cd /usr/local/hadoop
./bin/hdfs namenode -format

返回的一大堆信息中,后半部分有“successfully formatted”即为成功

  • 启动Namenode和DataNode守护进程
cd /usr/local/hadoop # 已进入该目录则无需重复
./sbin/start-dfs.sh # start-dfs.sh是个完整的可执行文件,中间没有空格
  • 检查是否启动成功
jps

若出现了以下三个进程(除jps的三个)(缺一不可),说明🆗
Hadoop3.1.3单机(伪分布式配置)

简单运行Hadoop伪分布式实例

创建多级目录并检查
Hadoop3.1.3单机(伪分布式配置)
Hadoop3.1.3单机(伪分布式配置)