03-Ubuntu18.04+Hadoop3.1.3安装配置(完全分布式)

说明

我这里实际上是把jdk和hadoop安装在了/home/wolf/opt/app/中,而非正常的/opt/app/中,所以路径可能会有点怪,所以看这篇文章的时候要时刻注意路径问题,我也非常建议把软件放在/opt/app/中(记得提前chown把权限给好),这样比较符合市面上大多数的教程的路径。

参考链接:Ububtu18.04安装Hadoop3.1.3全分布集群-持续更新问题集-腾讯云开发者社区-腾讯云

目录

说明

1.设置主机名

2.配置/etc/hosts文件

3.SSH免密登录

4.使用SSH工具把Hadoop3.1.3和jdk8的压缩包上传到虚拟机上

5.安装jdk

6.安装Hadoop 

7.测试本地运行模式

8.完全分布式搭建及运行测试


1.设置主机名

# 临时设置hostname
sudo hostname master
# 永久设置hostname
sudo vim /etc/hostname
# 填写hostname,这里填写master

重启虚拟机即应用成功,对于其他的虚拟机可以填写hostname为slave1、slave2......

2.配置/etc/hosts文件

sudo vim /etc/hosts

配置成类似这样,注意修改ip地址。

3.SSH免密登录

在主机输入

ssh master

 进行ssh登录,这时还需要密码登录。

设置SSH免密登录

exit                           # 退出刚才的 ssh localhost
# 若没有该目录,请先执行一次ssh localhost
cd ~/.ssh/                     
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权方法1
# 加入授权方法2 或这种方法
ssh-copy-id -i .ssh/id_rsa.pub  wolf@192.168.199.129 

4.使用SSH工具把Hadoop3.1.3和jdk8的压缩包上传到虚拟机上

我用的是finalshell,其他的各种shell或者putty都可以,这里就不多赘述了。压缩包可以去参考链接里下载。

5.安装jdk

先在主目录中(注:关于安装目录的问题,见“说明”)

mkdir opt/app/jdk

解压下载的jdk文件到 /home/用户名/opt/app/jdk目录下 

tar zxf jdk-8u162-linux-x64.tar.gz -C ~/opt/app/jdk

在主目录

sudo vim .bashrc

在最后插入 

export JAVA_HOME=/home/用户名/opt/app/jdk
export JRE_HOME=/home/用户名/opt/app/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

重启虚拟机,在终端输入

java -version

6.安装Hadoop 

同理,在opt/app/中创建一个hadoop目录

mkdir /opt/app/hadoop
tar -zxf hadoop-3.1.3.tar.gz -C ~/opt/app/hadoop

在主目录

sudo vim .bashrc

在最后插入 

export HADOOP_HOME=/home/用户名/opt/app/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

编辑Hadoop目录下的子目录etc/hadoop目录文件Hadoop-env.sh文件:

将JAVA_HOME设为jdk所在绝对路径(否则运行时可能会出现找不到的情况)

export JAVA_HOME=/home/用户名/opt/app/jdk

单机测试,参考博客的内容:

# 查看版本号
hadoop version
    
cd /home/用户名/opt/app/hadoop
mkdir ./input
# 将配置文件作为输入文件
cp ./etc/hadoop/*.xml ./input   
# 测试MR程序
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*
# 输出如下表示正确
1       dfsadmin

hadoop目录结构

7.测试本地运行模式

在hadoop目录中

mkdir wcinput
cd wcinput

新建word.txt

vim word.txt

 随便输入一些文本,用来统计词频

 返回hadoop安装目录

cd ..

 使用hadoop提供的examples包进行词频统计,注意输出目录不能已存在

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ ./wcoutput

查看一下输出结果

part-r-00000里面存的是输出结果

8.完全分布式搭建及运行测试

这里参考的是尚硅谷的Hadoop教程

27_尚硅谷_Hadoop_入门_scp&rsync命令讲解_哔哩哔哩_bilibili

这里是重点,最好搭建三遍以上。

首先要编写脚本分发hadoop和jdk(脚本这里暂时没看,所以使用scp,脚本编写可以看视频)

(1)在slave1和slave2上新建文件夹opt/app

(2)把master的jdk和hadoop拷贝到slave1和slave2

sudo scp -r jdk/ wolf@slave1:~/opt/app/
sudo scp -r jdk/ wolf@slave2:~/opt/app/
sudo scp -r hadoop/ wolf@slave1:~/opt/app/
sudo scp -r hadoop/ wolf@slave2:~/opt/app/

(3)设置slave的环境变量

跳到5、6的环境配置,然后重启。

(4)免密登录

希望master可以免密登录slave1和slave2

在master中

ssh-keygen -t rsa
ssh-copy-id slave1

输入密码后,再次登录slave1即可免密登录

ssh slave1 # 登录
exit # 退出

常见问题

如果出现下图这种“Network is unreachable”

在slave中

sudo vim /etc/ssh/sshd_config

把下图中的两行解除注释,然后把no改成yes 

重启ssh服务,然后重启机器即可解决。

systemctl restart ssh.service
sudo reboot

然后可以依次对slave1和slave2进行类似的免密登录配置,使三台机器可以互相免密登录,在任何一台主机上都可以启动和操作集群。

(5) 集群配置

 (a)配置core-site.xml

cd etc/hadoop/
vim core-site.xml

我们要把配置信息放在蓝色框范围内,注意修改路径

<configuration>
	<!-- 指定NameNode的地址 -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:8020</value>
	</property>
	<!-- 指定hadoop数据的存储目录 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/wolf/opt/app/hadoop/data</value>
	</property>

	<!-- 配置HDFS网页登录使用的静态用户为wolf -->
	<property>
		<name>hadoop.http.staticuser.user</name>
		<value>wolf</value>
	</property>
</configuration>

(b)配置hdfs-site.xml

vim hdfs-site.xml

<configuration>
	<!-- namenode web 端访问地址 -->
	<property>
		<name>dfs.namenode.http-address</name>
		<value>master:9870</value>
	</property>
	<!-- 2nn web 端访问地址 -->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>slave2:9868</value>
	</property>
</configuration>

(c)配置yarn-site.xml

vim yarn-site.xml

<configuration>

	<!-- 指定MR走shuffle -->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>

	<!-- 指定ResourceManeger的地址 -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>slave1</value>
	</property>

	<!-- 环境变量的继承 -->
	<property>
		<name>yarn.nodemanager.env-whitelist</name>

<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>

</configuration>

(d)配置mapred-site.xml

vim mapred-site.xml


<configuration>
	<property>
    		<name>yarn.app.mapreduce.am.env</name>
    		<value>HADOOP_MAPRED_HOME=/home/wolf/opt/app/hadoop</value>
	</property>
	<property>
    		<name>mapreduce.map.env</name>
    		<value>HADOOP_MAPRED_HOME=/home/wolf/opt/app/hadoop</value>
	</property>
	<property>
    		<name>mapreduce.reduce.env</name>
    		<value>HADOOP_MAPRED_HOME=/home/wolf/opt/app/hadoop</value>
	</property>
	<!-- 指定MapReduce程序运行在Yarn上 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

(e)把配置好的文件发送到slave上

sudo scp -r hadoop/ wolf@slave1:~/opt/app/hadoop/etc/
sudo scp -r hadoop/ wolf@slave2:~/opt/app/hadoop/etc/

(6)群起集群并测试

(a)配置workers

vim opt/app/hadoop/etc/hadoop/workers

同样分发

sudo scp -r hadoop/ wolf@slave1:~/opt/app/hadoop/etc/
sudo scp -r hadoop/ wolf@slave2:~/opt/app/hadoop/etc/

(b)启动集群

注意:第一次启动要初始化,在master格式化NameNode。

hdfs namenode -format

用sbin目录下的start-dfs.sh启动 

sbin/start-dfs.sh

集群启动成功,在浏览器中输入master:9870启动web端,查看dfs的NameNode

 (c)在slave1启动YARN(因为ResourceManager在slave1)

sbin/start-yarn.sh

Web端查看Yarn的ResourceManager

http://slave1:8088

 至此,我们已经在Ubuntu18.04上安装并配置了Hadoop3.1.3(完全分布式运行模式),接下来就是Hadoop具体操作的学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 以下是Ubuntu 18.04安装Hadoop的教程: 1. 安装Java Hadoop需要Java环境,因此需要先安装Java。在终端中输入以下命令: sudo apt-get update sudo apt-get install default-jdk 2. 下载HadoopHadoop官网下载最新版本的Hadoop,下载地址为:https://hadoop.apache.org/releases.html 3. 解压Hadoop 将下载的Hadoop压缩包解压到指定目录,例如解压到/opt/hadoop目录中。在终端中输入以下命令: sudo tar -zxvf hadoop-3.3..tar.gz -C /opt/ 4. 配置Hadoop环境变量 打开/etc/profile文件,添加以下内容: export HADOOP_HOME=/opt/hadoop-3.3. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 保存并退出文件,然后在终端中输入以下命令使环境变量生效: source /etc/profile 5. 配置Hadoop 进入Hadoop安装目录,编辑etc/hadoop/hadoop-env.sh文件,将JAVA_HOME设置为Java的安装路径,例如: export JAVA_HOME=/usr/lib/jvm/default-java 然后编辑etc/hadoop/core-site.xml文件,添加以下内容: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:900</value> </property> </configuration> 接着编辑etc/hadoop/hdfs-site.xml文件,添加以下内容: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop-3.3./data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop-3.3./data/datanode</value> </property> </configuration> 最后编辑etc/hadoop/mapred-site.xml文件,添加以下内容: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 6. 启动Hadoop 在终端中输入以下命令启动Hadoop: start-all.sh 7. 验证Hadoop是否正常运行 在浏览器中输入http://localhost:50070/,如果能够看到Hadoop的Web界面,则说明Hadoop已经正常运行。 以上就是Ubuntu 18.04安装Hadoop的教程,希望能够帮助到你。 ### 回答2: Hadoop是一个开源的基于Java的分布式计算平台,主要用于处理大规模数据。ubuntu18.04是目前较为常见的一个Linux发行版,本文将对如何在ubuntu18.04安装hadoop进行具体介绍。 1. 安装Java环境 Hadoop是基于Java开发的,因此需要先安装Java环境。在终端执行以下命令: sudo apt-get update sudo apt-get install openjdk-8-jdk 2. 配置SSH Hadoop需要使用SSH来进行节点之间的通信,因此需要先配置SSH。在终端执行以下命令: sudo apt-get install ssh ssh-keygen -t rsa -P '' 这样在当前用户的home目录下就会生成.id_rsa.pub和id_rsa两个文件,这两个文件分别是公钥和私钥。 3. 下载与安装Hadoop 可以从官网下载Hadoop二进制安装包,解压后将文件夹移动到指定的目录即可。 tar -xzvf hadoop-2.7.3.tar.gz sudo mv hadoop-2.7.3 /usr/local/hadoop 4. 配置Hadoop环境变量 为了在任何目录下都可以使用Hadoop命令,需要将Hadoop的bin目录添加到环境变量中。打开~/.bashrc文件,在最后添加以下代码: export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin 保存文件后,执行以下命令,让环境变量立即生效: source ~/.bashrc 5. 修改Hadoop配置文件 目前,需要修改三个配置文件:hadoop-env.sh,core-site.xml和hdfs-site.xml。 hadoop-env.sh配置文件: 打开$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件,找到以下一行: #export JAVA_HOME=${JAVA_HOME} 将其修改为: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ core-site.xml配置文件: 打开$HADOOP_HOME/etc/hadoop/core-site.xml文件,找到以下代码块: <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> 将其修改为: <property> <name>fs.defaultFS</name> <value>hdfs://localhost:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop_scratch</value> </property> hdfs-site.xml配置文件: 打开$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件,找到以下代码块: <property> <name>dfs.replication</name> <value>1</value> </property> 修改为: <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop-2.7.3/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop-2.7.3/dfs/data</value> </property> 6. 格式化Hadoop文件系统 在终端执行以下命令: hdfs namenode -format 执行该命令后,会将Hadoop文件系统初始化。 7. 启动Hadoop集群 在终端执行以下命令启动Hadoop集群: start-dfs.sh start-yarn.sh 8. 验证Hadoop集群是否正常 执行以下命令: hadoop fs -mkdir /test 如果命令执行成功,则说明Hadoop集群已经成功安装配置! 以上就是在Ubuntu18.04上安装Hadoop的教程。Hadoop作为一个大数据处理框架,安装配置相对较为繁琐,需要仔细操作。希望本文能够帮助到读者,为日后的工作和学习提供方便。 ### 回答3: Ubuntu 18.04安装Hadoop的步骤如下: 1. 安装Java JDK:Hadoop是用Java编写的,所以必须要安装JDK。在终端中使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install default-jdk ``` 2. 确认Java是否成功安装: ``` java -version ``` 3. 下载Hadoop:在Hadoop的官网上下载二进制文件,也可以使用以下命令来下载: ``` wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz ``` 4. 解压缩Hadoop文件: ``` tar -xzf hadoop-3.2.2.tar.gz ``` 5. 设置Hadoop环境变量:编辑~/.bashrc文件并添加以下内容: ``` export HADOOP_HOME=/path/to/hadoop-3.2.2 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 6. 配置Hadoop:打开Hadoop配置文件进行编辑: ``` cd ~/hadoop-3.2.2/etc/hadoop/ sudo nano hadoop-env.sh //编辑文件 ``` 找到以下内容: ``` export JAVA_HOME=${JAVA_HOME} ``` 将“${JAVA_HOME}”更改为实际的Java JDK路径: ``` export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 //修改后 ``` 7. 配置Hadoop的核心文件:打开core-site.xml文件进行编辑: ``` sudo nano core-site.xml //编辑文件 ``` 添加以下内容: ``` <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 8. 配置Hadoop的HDFS:打开hdfs-site.xml文件进行编辑: ``` sudo nano hdfs-site.xml //编辑文件 ``` 添加以下内容: ``` <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/<username>/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/<username>/hadoop/hdfs/datanode</value> </property> </configuration> ``` 将“<username>”更改为您的用户名。 9. 格式化HDFS: ``` hdfs namenode -format ``` 10. 启动Hadoop服务: ``` start-dfs.sh ``` 11. 验证Hadoop: 使用以下命令创建一个测试文件并将其上传到HDFS: ``` echo "Hello World" > test.txt hdfs dfs -mkdir /inputs hdfs dfs -put test.txt /inputs ``` 查看HDFS中是否存在test.txt: ``` hdfs dfs -ls /inputs ``` 以上就是在Ubuntu 18.04上安装Hadoop的全部步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值