Linux环境下安装配置Hadoop教程
Linux环境下安装配置Hadoop教程
在Linux环境下,安装配置Hadoop教程。
准备工作
1.VMware虚拟机
2.Linux环境:CentOS 7
3.远程登陆:Xshell 6 & Xftp 6
4.Hadoop安装包 百度网盘【t0vz】
5.Vim命令
操作 | 描述 |
---|---|
vi 文件名 | 打开文件 |
i | 编辑 |
esc | 退出编辑 |
:wq | 保存并退出 |
方向键↑↓←→ | 控制光标 |
搭建Hadoop
搭建3个节点的Hadoop的完全分布式,即1个nameNode,2个dataNode,分别如下:
名称 | 类型 | ip地址 |
---|---|---|
CentOS7 | nameNode | 192.168.44.128 |
CentOS7-node1 | dataNode | 192.168.44.129 |
CentOS7-node2 | dataNode | 192.168.44.130 |
1.首先创建好一个CentOS虚拟机,将它作为主节点我这里起名为CentOS-master,名称随意,不固定要求。
此步骤可参考https://blog.csdn.net/q961250375/article/details/101379805.
2. VMware或Xshell 6打开虚拟机,安装配置JDK。不要使用系统自带的openJDK版本。
此步骤可参考https://blog.csdn.net/q961250375/article/details/101434451
3.检查防火墙,若防火墙处于running状态,则执行第4和第5步,否则直接进入第6步。
systemctl status firewalld.service
4.关闭防火墙,命令行:
systemctl stop firewalld.service
5.禁用防火墙,命令行:
systemctl disable firewalld.service
6. 在 /usr/local/ 目录下创建一个hadoop文件夹,命令行:
mkdir /usr/local/hadoop
7. 使用Xftp 6将下载好的hadoop的tar包放到 /usr/local/hadoop 目录下。
8.进入hadoop目录,解压hadoop的tar包,命令行:
// 进入hadoop目录
cd /usr/local/hadoop/
// 解压tar包
tar -zxvf hadoop-2.7.3.tar.gz
9.配置hadoop环境变量,命令行:
vim /etc/profile
输入以下内容,保存并退出。
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
10.将刚才设置的环境变量生效,命令行:
source /etc/profile
11.任意目录输入 hado ,然后按Tab,如果自动补全为hadoop,则说明环境变量配的没问题,否则检查环境变量哪出错了。
12.在 /usr/local/hadoop/ 目录下创建3个文件夹,命令行:
mkdir /usr/local/hadoop/tmp
mkdir -p /usr/local/hadoop/hdfs/name
mkdir /usr/local/hadoop/hdfs/data
13.进入 /usr/local/hadoop/hadoop-2.7.3/etc/hadoop 目录,里面存放的是hadoop的配置文件,接下来要修改这里面一些配置文件,命令行:
cd /usr/local/hadoop/hadoop-2.7.3/etc/hadoop/
14.其中hadoop-env.sh和yarn-env.sh两个文件需要指定JAVA目录。
vim hadoop-env.sh
将原有的JAVA_HOME注释掉,根据自己的JDK安装位置,精确配置JAVA_HOME如下,保存并退出。
vim yarn-env.sh
加入如下内容,指定JAVA_HOME,保存并退出。
export JAVA_HOME=/usr/local/java/jdk1.8.0_65
15.修改core-site.xml配置文件,命令行:
vim core-site.xml
在configuration标签中,添加如下内容,保存并退出,注意这里配置的hdfs:master:9000是不能在浏览器访问的。
<property>
<name> fs.default.name </name>
<value>hdfs://master:9000</value>
<description>指定HDFS的默认名称</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>HDFS的URI</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>节点上本地的hadoop临时文件夹</description>
</property>
16.修改hdfs-site.xml配置文件,命令行:
vim hdfs-site.xml
在configuration标签中,添加如下内容,保存并退出。
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,默认是3,应小于datanode机器数量</description>
</property>
17.将mapred-site.xml.template文件复制到当前目录,并重命名为mapred-site.xml,命令行:
cp mapred-site.xml.template mapred-site.xml
18.修改 mapred-site.xml 配置文件,命令行:
vim mapred-site.xml
在configuration标签中,添加如下内容,保存并退出。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>指定mapreduce使用yarn框架</description>
</property>
19.修改 yarn-site.xml 配置文件,命令行:
vim yarn-site.xml
在configuration标签中,添加如下内容,保存并退出。
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
<description>指定resourcemanager所在的hostname</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序</description>
</property>
20.修改 slaves 配置文件,命令行:
vim slaves
将localhost删掉,加入如下内容,即dataNode节点的主机名。
node1
node2
21.将虚拟机关闭,再克隆两份虚拟机,重命名为如下,注意这里一定要关闭虚拟机,再复制。
下面是克隆虚拟机教程。
22. 将3台虚拟机都打开,后两台复制的虚拟机打开时,都选择【我已复制该虚拟机】。
23.修改hostname。
在master机器上,将localhost改为master,保存并退出。
注意,修改hostname后重启虚拟机。
vim /etc/hostname
在node1机器上,将localhost改为node1,保存并退出。
在node2机器上,将localhost改为node2,保存并退出。
24.3台虚拟机分别修改hosts文件,其作用是将一些常用的网址域名与其对应的IP地址建立一个关联,当用户在访问网址时,系统会首先自动从Hosts文件中寻找对应的IP地址。
vim /etc/hosts
host文件添加以下内容,3台虚拟机都要配置!
192.168.44.128 master
192.168.44.129 node1
192.168.44.130 node2
25.在master机器上创建一个无密码公钥,-t是类型的意思,dsa是生成的密钥类型,-P是密码,’’表示无密码,-f后是秘钥生成后保存的位置。
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
26.在master机器上将公钥id_dsa.pub添加进keys,这样就可以实现无密登陆ssh。
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
27.在master机器上测试免密码登陆。
ssh master
如果有询问,则输入 yes ,回车
28.在node1和node2主机上都执行以下命令行:
mkdir ~/.ssh
29.在master机器上将主节点的公钥信息导入node1和node2节点,导入时要输入一下node1和node2机器的登陆密码。
scp ~/.ssh/authorized_keys root@node1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@node2:~/.ssh/authorized_keys
30.在3台虚拟机上分别赋予密钥文件权限。
chmod 600 ~/.ssh/authorized_keys
31.在master节点上分别测试node1和node2是否配置ssh成功。
ssh node1
ssh node2
32.如果node节点还没有hadoop,则master机器上分别输入如下命令将hadoop复制。
scp -r /usr/local/hadoop/ root@node1:/usr/local/
scp -r /usr/local/hadoop/ root@node2:/usr/local/
若node节点有hadoop,则此步骤跳过。
33.在master机器上,格式化namenode,第一次使用需格式化一次,之后就不用再格式化,如果改一些配置文件了,可能还需要再次格式化。
hdfs namenode -format
出现以下信息表示格式化完成。
34.在master机器上,进入hadoop的sbin目录,启动hadoop,命令行:
cd /usr/local/hadoop/hadoop-2.7.3/sbin
./start-all.sh
遇到确认操作,输入yes,回车。
35.输入 jps 查看当前java的进程,该命令是JDK1.5开始有的,作用是列出当前java进程的PID和Java主类名,nameNode节点除了JPS,还有3个进程,启动成功。
36.在node1机器和node2机器上分别输入 jps 查看进程如下,说明配置成功。
37.在浏览器访问nameNode节点的8088端口和50070端口可以查看hadoop的运行状况。
http://192.168.44.128:8088
http://192.168.44.128:50070
38.在master机器上,进入hadoop的sbin目录,输入 ./stop-all.sh 即可关闭hadoop。
./stop-all.sh
测试Hadoop文件上传
1.在根目录下创建一个hello.txt测试文本,命令行:
vim hello.txt
2.使用hadoop命令:
hadoop fs -put hello.txt /
3.访问【http://192.168.44.128:50070】,选择【Utilities】下的【Browse the file system】。
至此,Hadoop的所有安装配置过程完成。