ubuntu安装hadoop伪分布式
虚拟机选用:VMware Workstation 15使用镜像选择:ubuntu 20.04.1环境:OpenJdk-11.0.8、hadoop-3.2.1一、首先进行虚拟机镜像的安装(步骤省略)二、创建一个hadoop用户(可跳过)通过ctrl+alt+t呼出终端窗口,分别输入:#创建一个可以登录的hadoop用户,并且使用/bin/bash作为shell命令sudo useradd -m ha
虚拟机选用:VMware Workstation 15
使用镜像选择:ubuntu 20.04.1
环境:OpenJdk
ubuntu安装hadoop伪分布式
虚拟机镜像安装
一、首先进行虚拟机镜像的安装(步骤省略)
创建hadoop用户
二、创建一个hadoop用户(可跳过)
通过ctrl+alt+t呼出终端窗口,分别输入:
#创建一个可以登录的hadoop用户,并且使用/bin/bash作为shell命令
sudo useradd -m hadoop -s /bin/bash
#创建一个hadoop用户的登录密码
sudo passwd hadoop
#给hadoop用户管理员权限,防止因为权限而导致错误
sudo adduser hadoop sudo
(由于我在hadoop用户中输入的以上指令,所以提示均为already exists)
然后进行用户注销(右上角齿轮状的地方选择Log out),在选择hadoop用户即可。
更改软件源
三、更改软件源(可跳过)
由于会进行OpenJdk等文件的下载,如果下载速度缓慢则需要进行改源,改源方法如下:
1. 获取ubuntu代号(ubuntu的每个发行版本都有自己的代号)
lsb_release -a
2.将源内的代号更改为自己ubuntu版本的代号
我的ubuntu代号为focal,则将以下所有bionic替换为focal即可
# 阿里云源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
##測試版源
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
# 源碼
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
##測試版源
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
3.备份软件源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bcakup
4.进入源文件编辑,ctrl+A替换整个软件源文件
sudo gedit /etc/apt/sources.list
5.更新与升级
sudo apt-get update
sudo apt-get upgrade
更新下载源
四、进行准备工作
1.更新apt
为了防止因为没有更新而导致有些软件无法安装的情况,所以在一开始就进行apt的更新。
sudo apt-get update
2.下载vim(实在不想用,也可以采用gedit文本编辑)
vim为vi的升级版,相比于vi更加方便使用
sudo apt-get install vim
安装配置SSH免密登陆
五、安装SSH并配置SSH免密登陆
由于hadoop的单机和分布式都需要用到SSH登陆,所以需要先配置好SSH
1.安装SSH server
因为ubuntu默认安装了SSH client,所以只需要安装SSH server
sudo apt-get install openssh-server
安装完成后就可以通过ssh localhost
登陆本机
当SSH首次登陆时会有提示(yes/no),输入yes并按提示输入hadoop用户登录密码后即可登陆成功。
但是这个登陆是需要密码的,接下来配置免密登陆
2.配置免密登陆
#退出ssh localhost
1. exit
2. cd ~/.ssh/
#利用ssh-keygen生成密钥(会有一系列提示,全部回车即可)
3. ssh-keygen -t rsa
#将密钥加入授权
4. cat ./id_rsa.pub >> ./authorized_keys
3.再次输入ssh localhost
查看是否直接登陆无需密码
安装OpenJdk
六、安装OpenJdk
1.进行OpenJdk的下载
sudo apt-get install default-jre default-jdk
2.进行环境变量的配置
通过vim ~/.bashrc
进入环境变量编辑
在第一行插入:
export JAVA_HOME=/usr/lib/jvm/default-java
3.使环境变量生效
source ~/.bashrc
4.通过java -version查看是否安装成功
安装hadoop单机
七、安装hadoop单机
1.通过ubuntu内置的火狐浏览器下载hadoop包
http://mirror.bit.edu.cn/apache/hadoop/common/
选择stable里面的非src版本,src版本是需要编译后使用的,非src版本是已经编译好了直接使用的版本,我选择的是hadoop-3.2.1.tar.gz
2.将下载好了的hadoop包解压
#解压到/usr/local目录(以下的下载可参考自身情况更换为Downloads)
1. sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local
2. cd /usr/local/
#更改hadoop-3.2.1的名称为hadoop
3. sudo mv ./hadoop-3.2.1/ ./hadoop
#更改hadoop用户的使用权限(如果用户不为hadoop,请将-R后的hadoop更改为自己的用户名,即sudo chown -R xxx ./hadoop)
4. sudo chown -R hadoop ./hadoop
#进入hadoop目录
5. cd /usr/local/hadoop
#检测是否安装成功
6. ./bin/hadoop version
安装hadoop伪分布式
八、安装hadoop伪分布式
1.更改 /usr/local/hadoop/etc/hadoop/中的配置文件core-site.xml和hdfs-site.xml
1)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>
2)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>
2.进行NameNode的格式化
注意:多次对NameNode进行格式化会出现DataNode无法启动的情况
解决方法请参考:https://blog.csdn.net/weixin_45899210/article/details/109062497
#格式化NameNode
./bin/hdfs namenode -format
格式化成功后可以看到:
3.启动hadoop
#先进入hadoop目录
cd /usr/local/hadoop
./sbin/start-dfs.sh
4.查看是否启动成功
#通过jps命令查看NameNode、DataNode、 SecondaryNameNode是否存在
jps
实例验证
九、hadoop伪分布式实例验证
1.首先在HDFS中创建用户目录:
因为伪分布式读取的是HDFS上的数据,需要使用HDFS
./bin/hdfs dfs -mkdir -p /user/hadoop
2.创建input文件夹
#创建input文件夹
1. ./bin/hdfs dfs -mkdir input
#将 /usr/local/hadoop/etc/hadoop 复制到分布式⽂文件系统中的 /user/hadoop/input
2. ./bin/hdfs dfs -put ./etc/hadoop/*.xml input
#查看文件列表
3. ./bin/hdfs dfs -ls input
3.伪分布式运行MapReduce作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(可以将单机步骤中创建的本地input文件夹,输出结果output文件夹都删掉来验证这一点)
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
#查看位于HDFS的运行结果
./bin/hdfs dfs -cat output/*
4.拉取到本地查看
#先删除本地的output文件夹(若没有则不管)
1. rm -r ./output
# 将HDFS上的output⽂件夹拷贝到本机
2. ./bin/hdfs dfs -get output ./output
3. cat ./output/*
5.Hadoop运行程序时,输出目录不能存在,否则会提示错误 “org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists” ,因此若要再次执行,需要删除output文件夹:
#删除output文件夹
./bin/hdfs dfs -rm -r output
通过以上步骤,hadoop伪分布式就安装成功啦
更多推荐
所有评论(0)