ubantu18.04安装hadoop
版本:
虚拟机VM:15.5.2
ubantu:18.04
hadoop:3.1.3
jdk:1.8
官网下载可能比较慢,可以右键相应的下载包,然后复制链接到迅雷中下载。这里我也把相应的安装包上传到百度云,有需要的请下载。
链接:https://pan.baidu.com/s/1BbP6uD87rdfWt9jZHLMgYQ
提取码:y5zy
1、修改主机名:将主机名ubantu修改成hadoop100。
sudo gedit /etc/hostname
使用gedit是因为方便,实际上是自己vim不太会用,哈哈。
记住,所有的修改都要点击save保存再退出。我的截图上是修改之前的。
2、添加ip和主机名的映射关系。
sudo gedit /etc/hosts
在hosts文件里添加ip与主机名的映射,如图:
查看自己的虚拟机ip使用 ifconfig,图中红线处便是虚拟机ip。如果没有这个命令,则根据错误提示安装net-tools。
3、关闭防火墙
首先查看防火墙状态,如果是开启的,则关闭,如果是关闭的就可以跳过这一步。当然也可以不管防火墙有没有开,都强行关闭。
4、设置ssh免密登录
首先是下载ssh,命令如下:
sudo apt-get install openssh-server
接下来是设置ssh免密登录,原理不是太懂。
ssh-keygen -t rsa
执行该命令时一路按回车键就行。
cat /home/jetaime/.ssh/id_rsa.pub >> /home/jetaime/.ssh/authorized_keys
到这里就设置好ssh免密登录了,可以测试一下:
要退出ssh的话直接输入exit然后回车就可以了。
5、添加jdk、hadoop环境变量
首先下载jdk1.8和hadoop3.1.3到指定的文件夹下,由于下载下来解压缩之后文件名太长,我将文件夹名字只保留了文件名和版本号。我的存放位置如下:
然后打开环境变量文件,在根目录下的etc目录里有一个profile:
sudo gedit /etc/profile
在末尾添加如下命令:
export JAVA_HOME=/home/jetaime/soft/jdk1.8
export HADOOP_HOME=/home/jetaime/soft/hadoop3.1.3
export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
接着是使环境变量生效的操作:
source /etc/profile
这样环境变量就生效了,可以测试一下jdk是否安装成功:
可以看到jdk确实安装成功了,但是命令行最前面的字体变白了,这时可以重启ubantu系统,再打开命令行输入java -version也可以显示java版本号,但是如果不重启,直接关闭终端再打开新的终端,
输入java -version,会显示找不到java命令(我的电脑是这样的,如果你们的电脑可以,请忽略哈)
6、修改 hadoop-env.sh文件
首先进入 soft/hadoop3.1.3/etc/hadoop/这个文件夹,会发现有一个hadoop-env.sh文件,打开该文件:
gedit hadoop-env.sh
这里不用sudo是因为hadoop文件在我的家目录下,不需要root权限。
添加如下信息:
export JAVA_HOME=/home/jetaime/soft/jdk1.8
export HADOOP_LOG_DIR=/home/jetaime/data/hadoop_repo/logs/hadoop
这里的/home/jetaime/data/文件夹是新建的,用于存储hadoop在运行过程中的一些日志吧。只用新建一个data文件夹就行,后面的hadoop_repo等在后面的配置中hadoop会自动创建的
7、修改 core-site.xml文件
打开core-site.xml文件:
gedit core-site.xml
添加:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/jetaime/data/hadoop_repo</value>
</property>
</configuration>
注意,这里的fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致,hadoop.tmp.dir所在文件夹需要和你创建的data文件夹路径一致。
8、修改hdfs-site.xml文件
按照上面的操作:打开hdfs-site.xml文件,添加:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
直接粘贴就行了,不需要修改啥。
9、修改mapred-site.xml文件
同样是打开mapred-site.xml文件,添加:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
10、修改 yarn-site.xml,设置 yarn 上支持运行的服务和环境变量白名单
同样是打开yarn-site.xml文件,添加:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL
ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
11、格式化 namenode
首先往上退两层目录到 soft/hadoop3.1.3/,或者直接
cd soft/hadoop3.1.3/
然后进行namenode的格式化:
bin/hdfs namenode -format
如果看到 common.Storage: Storage directory /home/jetaime/data/hadoop_repo/dfs/name has been successfully formatted.,则说明格式化成功。如图:
12、修改start-dfs.sh文件
进入sbin目录,打开start-dfs.sh文件:
cd sbin/
gedit start-dfs.sh
添加:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
13、修改stop-dfs.sh文件
打开stop-dfs.sh文件,添加:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
14、修改 start-yarn.sh文件
打开start-yarn.sh文件,添加:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
15、修改stop-yarn.sh文件
打开stop-yarn.sh文件,添加:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
16、启动 hadoop 集群
start-all.sh
17、验证集群进程信息
jps
执行 jps 命令可以查看集群的进程信息,抛出 Jps 这个进程之外还需要有 5 个进程才说明集群是正常启动的
18、通过 webui 界面来验证集群服务是否正常
1)hdfs webui 界面:192.168.40.132:9870,这里的192.168.40.132是我的虚拟机ip,需要根据个人ip地址不同进行修改(使用ifconfig查看),后面的:9870不用改。
2)yarn webui 界面:192.168.40.132:8088,这里的192.168.40.132是我的虚拟机ip,需要根据个人ip地址不同进行修改(使用ifconfig查看),后面的:8088不用改。
19、停止集群
stop-all.sh
至此,hadoop就已经安装完成了。