ubuntu16.04 安装 hadoop 3.0.1


1. 检查是否安装JDK:

hadoop是用java实现的,所以需要现在ubuntu上安装合适版本的Java开发工具包(JDK),可以执行下列命令查看是否安装了java:

java -version

如果返回不存在这样的命令,则说明没安装java。ubuntu安装java教程可以看我的另一个博客。


2.下载、配置hadoop

(1)下载地址:

  •  3.0.1 版本下载地址:            
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.0.1/hadoop-3.0.1.tar.gz
  • 其它版本下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/

(2)将下载的压缩包解压:

 进入存放压缩包的目录中,运行如下命令:

sudo tar -zxvf hadoop-3.0.1.tar.gz -C /usr/local

加压后的目录名是hadoop-3.0.1,为了方便起见,重命名为hadoop:

cd /usr/local 
sudo mv hadoop-3.0.1  hadoop

(3)切换到root下,更改配置文件:

编辑/etc/profile :

sudo vim /etc/profile

在文档末尾加入以下代码:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

使改动的配置文价生效:

source /etc/profile

编辑hadoop-env.sh :

 该文件在/usr/local/hadoop/etc/hadoop 目录下,编辑hasoop-env.sh文件,搜索JAVA_HOME,并取消注释,加入java的安装路径,如图:



(4)安装SSH:

ssh是远程登录协议,在ubuntu环境下,已经自带了ssh-client,所以只需要安装ssh-server :

sudo apt-get install openssh-server
创建OpenSSL密钥对(工作目录为当前用户的Home目录):
ssh-keygen

将生成的公钥复制到已授权秘钥列表:

cp .ssh/id_rsa.pub .ssh/authorized_keys

 初次连接主机:

ssh localhost

由于是初次连接主机,会有类似如下图所示的警告,然而不用理会,输入yes就行:


由于Hadoop需要在一台或多台计算机上的多个进程之间通信,所以需要确保正在使用Hadoop的用户不用输入密码即可连接到所需的每台主机。通过创建有一个空口令的SSH的秘钥对来实现这一点。于是使用ssh-keygen命令启动这一进程,并接受所提供的缺省设置。一旦创建了密钥对,需要将生成的公钥添加到可信秘钥的存储列表。这就意味着,当试图连接这台机器时,公钥会被信任然后,使用ssh命令连接本地机器,应该会获得一个如上图显示的关于信任主机证书的警告。确认后,就可以连接而不再需要密码或出现提示。


(5)配置伪分布式模式

本次配置需要对hadoop安装路径下的 etc目录里的core-site.xml、hdfs-site.xml和mapred-site.xml这三个文件进行修改。

修改core-site.xml文件:

在<configuration>和</configuration>之间插入配置代码,

<property>
<name>dfs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>

原理分析:变量dfs.default.name保存了NameNode的位置,HDFS和MapReduce组件都需要它。这就是它出现在core-site.xml文件中而不是hdfs-site.xml文件中的原因。

修改hdfs-site.xml文件:

在<configuration>和</configuration>之间插入配置代码,

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

原理分析:变量dfs.replication指定了每个HDFS数据块的复制次数。HDFS确保每个数据被复制到多台不同主机(通常是3台),以此方式处理故障。由于我们只有 一台主机和一个为分布式模式的DataNode,所以将此值修改为1.

修改mapred-site.xml文件:

在<configuration>和</configuration>之间插入配置代码,

<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>

原理分析:变量mapred.job.tracker保存了JobTracker的位置。因为只有MapReduce组件需要知道这个位置,所以它出现在mapred-site.xml文件中。

(6)修改HDFS的根目录

创建Hadoop保存数据的目录(不一定非得把目录建在hadoop安装目录下):

mkdir /usr/local/hadoop/tmp

修改目录权限,确保任何用户都可在此目录写入数据:

chmod 777 /usr/local/hadoop/tmp

再次修改core-site.xml文件,添加下列属性:

<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>

原理分析:Hadoop默认使用hadoop.tmp.dir属性作为根目录,所有文件和数据都写入给目录。而hadoop.tmp.dir的默认值为/tmp,也就是Linux系统中存放临时文件的目录,一些版本的Linux系统会自动删除/tmp内的数据。所以,明确规定数据存放的位置更为安全。

(7)格式化NameNode

hdfs namenode -format

如果成功,会输出类似如下的数据:



(8)启动Hadoop

启动hadoop

start-dfs.sh

查看结果

jps

如果输出与下图类似,则说明hadoop启动成功了:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值