在Ubuntu中安装hadoop的详细过程
在Ubuntu中安装hadoop的详细过程
请自行安装Ubuntu系统(可参考:在VMWare中安装Linux虚拟机Ubuntu)
一、创建hadoop用户
如果在安装 Ubuntu 的时候不是用的 “hadoop” 用户,这时需要增加一个名为 hadoop 的用户。
首先打开终端窗口,输入如下命令创建新用户 :
sudo useradd -m hadoop -s /bin/bash
接着使用如下命令设置密码,按提示输入两次密码:
sudo passwd hadoop
可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较困难的权限问题:
sudo adduser hadoop sudo
最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。
二、更新apt
用 hadoop 用户登录后,我们要先更新一下 apt,后续我们会使用 apt 安装软件。打开终端窗口,输入如下命令:
sudo apt-get update
执行这个命令时,会让你输入hadoop用户的密码,如下:
三、安装vim
后续需要更改一些配置文件,我这里使用的是 vim,使用如下命令进行安装vim:
sudo apt-get install vim
安装软件时根据提示输入Y:
四、安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,但还需要安装 SSH server,命令如下:
sudo apt-get install openssh-server
安装后,使用如下命令登陆本机:
ssh localhost
输入该命令会有如下提示(SSH首次登陆提示),这时按照提示输入 yes 。然后按提示输入密码,这样就登陆到本机了。
但是这样登陆每次都需要输入密码,所以我们需要配置成SSH无密码登陆。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授权
五、安装Java环境
我这里使用的共享方式安装的JDK
首先点击虚拟机设置,点击选项,再点击共享文件夹,选择总是启用或者是在下次关机或挂起前一直启用:
点击添加,出现如下图所示:
然后点击下一步,添加共享文件夹向导,选择浏览,选择主机路径,设置名称(名称可不改,看自己命名习惯),再点击下一步,再点击完成,最后点击确定,共享文件夹就设置成功了。
接下来进入共享文件夹,ls显示该文件夹的内容列表:
cd /mnt/hgfs
ls
根据自己文件夹的实际地址进入,我这里的文件夹是BaiduNetdiskDownload:
cd BaiduNetdiskDownload/
ls
接下来进行安装java环境,先返回主目录,安装jdk,我这里安装的是JDK1.8:
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd /mnt/hgfs #进入共享文件夹
ls
cd BaiduNetdiskDownload/
ls
sudo tar -zxvf ./jdk-8u371-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
JDK文件解压缩以后,可以使用如下命令去查看一下:
cd /usr/lib/jvm
ls
然后接下来进行设置环境变量,使用vim进行编辑:
cd ~
vim ~/.bashrc
在环境配置文件中进行如下配置:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_371
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
添加完成后保存退出编辑,然后使用下面的命令使其立即生效:
source ~/.bashrc
然后使用如下命令查看是否安装成功:
java -version
出现如下页面就表示安装成功:
六、安装 Hadoop3.3.5
进行安装Hadoop,这里依然选择用共享文件夹的方式进行安装,根据上一部分的做法进入共享文件夹:
cd /mnt/hgfs #进入共享文件夹
ls
cd BaiduNetdiskDownload/
ls
sudo tar -zxvf ./hadoop-3.3.5.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.5/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
cd /usr/local/hadoop
./bin/hadoop version #命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息,如图所示
接下来进行Hadoop伪分布式配置,首先修改配置文件 core-site.xml,输入如下命令:
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>
接下来修改配置文件 hdfs-site.xml,输入 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>
将以上内容配置完成后,执行 NameNode 的格式化,输入如下命令:
cd /usr/local/hadoop
./bin/hdfs namenode -format
成功的话会返回如下图类似的信息:
接着开启 NameNode 和 DataNode 守护进程:
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
执行完如上命令之后,显示如下:
启动完成后,可以输入jps判断是否成功启动,启动成功则显示如下内容:
若是 DataNode 没有启动成功的话,可以做如下尝试:
# 针对 DataNode 没法启动的解决方法
cd /usr/local/hadoop
./sbin/stop-dfs.sh # 关闭
rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format # 重新格式化 NameNode
./sbin/start-dfs.sh # 重启
成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
关闭 Hadoop,则运行如下命令:
./sbin/stop-dfs.sh
注意: 下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以了。