这次我记录了一下我在Ubuntu中安装Hadoop的过程。
当然前提是安装好虚拟机软件VMware Workstation或VitualBox并安装好虚拟机,这里就不做赘述了。那么下面进入正题。
这里提醒一下,安装的时候请使用64位的Ubuntu,否则可能会出现Hadoop的shell命令使用不了的情况,解决起来挺麻烦的。
1、新建用户
在安装Hadoop之前,我们最好新建一个用户来专门使用Hadoop。
命令如下:
sudo useradd -m Hadoop 其中的Hadoop是用户名,当然名字可以自己决定
sudo passwd Hadoop 这里的Hadoop也是用户名,之后你可以设置你的密码,注意,Ubuntu中一个用户如果没有密码是不能够登录该用户的,所以一定要记得设置密码
在设置完之后,我们就可以登录这个新建的用户并开始我们的下一步了
2、安装JDK
安装JDK之前,最重要的就是看清我们的Ubuntu的版本,是32位还是64位的,如果下错了版本,我们在全部步骤都完成后使用命令java -version时会发现显示不了java的信息。
umane -m来查看自己的Ubuntu版本,如果是i686(或i386),则是32位的,如果是x86_64,就表明你的OS是64位的。
这里可以看到我的Ubuntu是32位的,所以我就下了这个玩意:jdk-8u161-linux-i586.tar.gz
下载后我们先在/usr/lib目录下新建一个文件夹,名字可以叫jdk或jvm,打开终端输入如下命令:
cd /usr/lib
sudo mkdir jvm 创建名字为jvm的目录
下载之后进入放置该压缩包的文件夹并打开终端,然后输入以下命令:
sudo tar zxfv jdk-8u161-linux-i586.tar.gz -c /usr/lib/jvm 解压该压缩包
cd /usr/lib/jvm
sudo mv jdk1.8.0_161 java1.8 给该JDK改名
接下来我们使用vi编辑器修改.bashrc文件配置环境变量,而我这里使用的是vim,输入以下命令:
vim ~/.bashrc
然后输入如下代码
接着保存退出,并执行命令:
source ~/.bashrc
最后我们来测试一下JDK安装成功与否:
java -version
如果出现了以下的信息则证明安装成功:
3、SSH的安装与配置
安装ssh服务是为了以后连接hadoop,然后为了以后连接不用每次都输入密码,我们在安装完后设置一下ssh的免密码登录,利用ssh-******生成**,并将**加入到授权中
sudo apt-get install openssh-server 安装ssh
ssh-****** -t rsa -P "" 接着一路回车,直到出现一个图形并跳出终端输入的行
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
现在登录ssh看看是否成功:
ssh localhost
这里可以看到已经成功了
4、Hadoop的安装
经过了这么多的前置步骤,我们终于要开始安装Hadoop了~
那么首先我们先打开官网下载我们的Hadoop:
点进去之后第一个连接就是我们要下载的Hadoop了,当然,你也可以下其他的版本,我这里下的是hadoop-2.8.3.tar.gz
下面我们把解压完的hadoop放置到我们的/usr/local/目录下,命令参照我们安装JDK时的操作,然后就是配置我们的Hadoop了
我们这次配置的是Hadoop的伪分布式,因此我们只需要修改/usr/local/hadoop/etc/hadoop目录下的core-site.xml和hdfs-site.xml两个配置文件
首先core-site.xml:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
</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>
之后我们执行namenode的格式化:
bin/hdfs namenode -format
注意:如果出现如图的信息则表明成功了,如果显示的是Exiting with status 1则表明格式化失败
开启namenode和datanode的守护进程:
sbin/start-dfs.sh
之后我们使用jps命令检查是否成功,只要出现了namenode、datanode和SecondaryNamenode则表明启动成功
如果namenode、datanode其中之一问题,可尝试将hdfs-site.xml里的/usr/local/hadoop/tmp/dfs/name这个路径里的两个node的前一个目录,我这里也就是dfs目录,直接删除,再从初始化那里开始输入命令就行了
如果Secondary没显示,可以使用sbin/stop-dfs.sh关闭再用sbin/start-dfs.sh开启
最后,我们使用http://localhost:50070就能看到控制Hadoop的网页了。