0%

hadoop伪分布式安装

安装ifconfig

1
sudo apt install net-tools -y
1
sudo apt install net-tools -y

安装vim:

1
sudo apt-get install vim-gtk

设置静态IP

查看ip地址,子网掩码,网关地址

ifconfig

route -n

设置root权限密码

1
sudo passwd root

新增用户

1
sudo useradd -m hadoop -s /bin/bash

设置密码:

1
sudo passwd hadoop

添加sudo权限

1
sudo adduser hadoop sudo

安装java8

更新apt

1
2
3
sudo apt-get update

sudo apt-get install openjdk-8-jdk

配置环境变量

1
Vim  ~/.bashrc

让配置生效

1
source ~/.bashrc

下载hadoop,使用wget下载

Wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.6.tar.gz

然后解压

1
Tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local

修改文件操作权限

1
sudo chown -R hadoop ./hadoop

查看hadoop版本号

img

通过一个案例测试hadoop(查询符合条件的单词个数,结果保留到output文件夹)

1
2
3
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'


创建一个input文件夹

1
Mkdir input

复制一些文件到input中,然后运行示例,结果保存在output文件夹当中

img

实现伪分布式需要修改的配置文件

1
sudo vim ./etc/hadoop/core-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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>
1
sudo vim ./etc/hadoop/hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<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>

启动hdfs的namenode和守护进程

1
2
3
./bin/hdfs namenode -format

./sbin/start-dfs.sh

通过jps命令查看是否启动成功

img

Bug记录:有的时候会无法启动成功,比如jps命令只显示了jps进程

这里记录一下我的解决方案:

首先查看前面的配置文件是否配置成功

检查ssh是否配置成功

方式:ssh localhost

如果还需要输入密码才能登录就代表ssh没有配置成功

解决方案:我是因为密钥的问题而导致的,所以只需要重新生成密钥并保存到指定为止即可解决

1
2
3
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

还有可能会遇到localhost: Error: JAVA_HOME is not set and could not be found.这种报错

但是Java -version又是正常的情况

这个需要修改hadoop下的一个配置文件来解决

1
sudo vim/usr/local/hadoop/etc/hadoop/hadoop-env.sh

把自己的Java安装路径放进去

1
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

完成以后就可以在浏览器看到以下界面

img

关闭就是运行sbin目录下的停止脚本

img