1.首先创建好一个CentOS虚拟机,我这里起名为master,名称随意,不固定要求。
2.VMware或Xshell 打开虚拟机,安装配置JDK。不要使用系统自带的openJDK版本。
3.检查防火墙,若防火墙处于running状态,则执行第4和第5步,否则直接进入第6步。
systemctl status firewalld.service
4.关闭防火墙,命令行:
systemctl stop firewalld.service
5.禁用防火墙,命令行:
systemctl disable firewalld.service
6.将下载好的hadoop的tar包上传到根目录下(xshell可以使用rz命令上传)
hadoop下载地址:https://archive.apache.org/dist/hadoop/common/
hadoop下载地址链接
7.将tar包解压到/usr
tar -zxvf hadoop-2.7.3.tar.gz -C /usr
8.将/usr/hadoop-2.7.3重命名为hadoop
mv /usr/hadoop-2.7.3 /usr/hadoop
9.配置hadoop环境变量,命令行:
vim /etc/profile
输入以下内容,保存并退出。
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
10.将刚才设置的环境变量生效,命令行:
source /etc/profile
11.hadoop安装测试
hadoop
12.开始配置运行环境,在 /usr/hadoop/ 目录下创建3个文件夹,命令行:
mkdir /usr/hadoop/tmp
mkdir -p /usr/hadoop/hdfs/name
mkdir /usr/hadoop/hdfs/data
13.进入 /usr/hadoop/etc/hadoop 目录,里面存放的是hadoop的配置文件,接下来要修改这里面一些配置文件,命令行:
cd /usr/hadoop/etc/hadoop
14.其中hadoop-env.sh和yarn-env.sh两个文件需要指定JAVA目录。(按照自己的位置来设定)(先vim进去,然后添加下面设定)
vim hadoop-env.sh / vim yarn-env.sh #(分别进行)
export JAVA_HOME=/usr/java
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/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/hadoop/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/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标签中,添加如下内容,保存并退出。(注:其中的master可根据实际替换)
<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.修改hostname。
在master机器上,将localhost改为master,保存并退出。
注意,修改hostname后重启虚拟机。
vim /etc/hostname
21.修改hosts文件,其作用是将一些常用的网址域名与其对应的IP地址建立一个关联,当用户在访问网址时,系统会首先自动从Hosts文件中寻找对应的IP地址。
vim /etc/hosts
host文件添加以下内容
[自己的ip地址] master
22.在master机器上创建一个无密码公钥,-t是类型的意思,dsa是生成的密钥类型,-P是密码,’’表示无密码,-f后是秘钥生成后保存的位置。
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
在master机器上将公钥id_dsa.pub添加进keys,这样就可以实现无密登陆ssh。
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
在master机器上测试免密码登陆。
ssh master
如果有询问,则输入 yes ,回车
23.赋予密钥文件权限
chmod 600 ~/.ssh/authorized_keys
24.在master机器上,格式化namenode,第一次使用需格式化一次,之后就不用再格式化,如果改一些配置文件了,可能还需要再次格式化。
hdfs namenode -format
25.在master机器上,进入hadoop的sbin目录,启动hadoop,命令行:
cd /usr/hadoop/sbin
./start-all.sh
遇到确认操作,输入yes,回车。
26.输入 jps 查看当前java的进程,该命令是JDK1.5开始有的,作用是列出当前java进程的PID和Java主类名,nameNode节点除了JPS,还有5个进程,启动成功。
分别有:
- NameNode 名称节点
- DataNode 数据节点
- ResourceManager 资源管理器
- NodeManager 节点管理器
- SecondaryNameNode 次要名称节点
27.在浏览器访问nameNode节点的8088端口和50070端口可以查看hadoop的运行状况。
28.在master机器上,进入hadoop的sbin目录,输入 ./stop-all.sh 即可关闭hadoop
./stop-all.sh
测试文件上传
1.在根目录下创建一个hello.txt测试文本,命令行:
vim hello.txt
2.使用hadoop命令
hadoop fs -put hello.txt /
3.访问【http://[自己的虚拟机IP地址]:50070】,选择【Utilities】下的【Browse the file system】。