Ubuntu 18.04 安装 Hadoop-3.1.1

基本安装的5个步骤:(步骤来自课本)

(1)创建Hadoop用户

(2) 安装java

(3) 设置SSH无密码登录

(4)单机安装配置

(5) 伪分布式安装配置

安装前准备:

1、创建一个新用户 hadoop, 密码再使用passwd设置

useradd hadoop

2、确保本地已经安装好java,因为Hadoop本身是用Java语言编写的,所以需要Java程序的运行环境,版本要在1.6以上。这里用的是Java10。

3、SSH登录权限设置(重要)

因为Hadoop启动时名称节点需要启动集群中所有机器的Hadoop守护进程,这个过程需要SSH登录来实现,但是Hadoop并没有提供SSH密码输入的形式,因此需要将所有节点配置为名称节点可以无密码登录

为了实现SSH无密码登录,首先要让名称节点生成自己的SSH密钥

ssh-keygen -t rsa -p '' // 按照默认的来,会在~/.ssh目录下生成一个 id_rsa 和 id_rsa.pub文件

生成之后,我们将id_rda.pub文件的内容复制到 ~/.ssh/authorized.keys(如果没有这个文件就自己创建)

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized.keys

这时我们可以通过 ssh localhost 来测试是否需要输入密码

4、安装单机Hadoop

这里使用的版本是3.1.1,下载地址为http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz

下载后解压到自己喜欢的目录,这里放在home目录下,用户和用户组都是 hadoop的。

tar -xzvf ~/Downloads/hadoop-3.1.1.tar.gz -C ~

对于单机安装,我们需要配置Hadoop的运行环境,需要更改~/hadoop-3.1.1/etc/hadoop/hadoop.env.sh。其实就是添加HAVA_HOME 的环境变量到本机的JDK目录,命令如下

export JAVA_HOME=/path/to/you/jdk/directory

完成之后,可以尝试查看hadoop版本信息(当前在~/hadoop-3.1.1目录下)

./bin/hdfs version
Hadoop 3.1.1
Source code repository https://github.com/apache/hadoop -r 2b9a8c1d3a2caf1e733d57f346af3ff0d5ba529c
Compiled by leftnoteasy on 2018-08-02T04:26Z
Compiled with protoc 2.5.0
From source with checksum f76ac55e5b5ff0382a9f7df36a3ca5a0
This command was run using /home/jia/hadoop-3.1.1/share/hadoop/common/hadoop-common-3.1.1.jar

#### 利用文档自带的 WordCount 例子来测试是否安装成功

###### 1.在hadoop目录下创建 input 文件夹;然后将 etc/hadoop 文件夹下的目录复制到 input 文件夹,然后执行下面的代码

$ cd ~/hadoop-3.1.1 && mkdir ./input
$ cp ./etc/hadoop/*.xml ./input
$ ./hadoop-3.1.1/bin/hdfs jar ~/hadoop-3.1.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'

###### 2.执行之后,查看输出数据的内容,可以得到结果为 " dfsadmin " [不包括双引号]

cat ./output/*

5. Hadoop 伪分布式安装

对于伪分布式安装,需要修改 core-site.xml 、hdfs-site.xml这两个文件(etc/hadoop 文件夹下)

5.1 修改后的 core-site.xml 文件

<configuration>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>file:/home/hdoop/hadoop-3.1.1/tmp</value>
		<description>Abase for other temporary directories.</description>
	</property>

	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://localhost:9000</value>
	</property>
</configuration>

5.2 修改后的 hdfs-site.xml 文件

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/home/hadoop/hadoop-3.1.1/tmp/dfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/home/hadoop/hadoop-3.1.1/tmp/dfs/data</value>
	</property>
	<property>
  		<name>dfs.http.address</name>
  		<value>0.0.0.0:50070</value>
	</property>
</configuration>

5.3 配置部分已经结束,现在需要初始化文件系统,执行初始化命令

./hadoop-3.1.1/bin/hdfs namenode -format 

5.4 启动所有需要的进程,然后用jps命令查看进程,可以得到如下类似的结果

./hadoop-3.1.1/sbin/start-all.sh
~$ jps
4288 Main
16677 Launcher
12070 NameNode
4440 RemoteMavenServer
23880 Jps
12523 SecondaryNameNode
12253 DataNode

接下来访问Web界面(http://localhost:50070)来查看Hadoop信息

5.4 接下来在HDFS中创建用户目录

./hadoop-3.1.1/bin/hdfs dfs -mkdir -p /user/hadoop

5.5 接下来将本地的文件上传(put)到文件系统中, 将本地 input 文件夹的内容上传到HDFS的input文件夹上

./hadoop-3.1.1/bin/hdfs dfs -put ./input

注意:如果在这里失败了,可能是因为之前多次初始化文件系统导致了spaceId不一致,我们只需要将 core-site.xml 中 hadoop.tmp.dir对应文件夹删除,然后在初始化文件系统就可以了

5.6 再次运行字数统计测试样例

./hadoop-3.1.1/bin/hdfs jar ~/hadoop-3.1.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
./hadooop-3.1.1/bin/hdfs fs -cat output/*

到此就安装完成了。

最后需要指出,如果要重新启动程序,需要先将HDFS中的 output文件夹删除,然后再去运行程序

猜你喜欢

转载自blog.csdn.net/innocent_jia/article/details/82733157