测试环境
Hadoop版本:2.7.6
linux版本:centos7
安装步骤
1. 上传安装包并解压和安装
- 压缩包在
/usr/local/soft,软件也解压在这个目录下,使用tar工具解压压缩包
这里先在主节点上装,后面使用
scp命令复制到其他两个从节点
tar -xvf hadoop-2.7.6.tar.gz
- hadoop 目录结构
- bin 存放执行命令
- sbin 存放启命令
- etc 存放配置文件
- lib/share 依赖文件和jar包(例如 其他当前框架的调用的jar包)
- 配置环境变量
vim /etc/profile # 编辑配置文件
# 加入下面内容 (这里包含了java的环境变量,根据自己电脑情况修改)
export HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 更新 配置文件
source /etc/profile
2. 修改hadoop的配置文件
- 配置hadoop的从节点(slaves文件中)
cd /usr/local/soft/hadoop-2.7.6/etc/hadoop
vim slaves
# 内容为(根据自己电脑情况修改)
node1
node2
- hadoop环境配置文件 ( hadoop-env.sh )
# 修改成下面的即可
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
- hadoop核心配置文件
vim core-site.xml
# 内容如下(加在configuration标签中):
# 表示hdfs的api调用端口
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
# 表示对应Namenode和secondaryNamenode保存数据的位置
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-2.7.6/tmp</value>
</property>
# 当用dfs命令删除hadoop上的文件时,会被暂时放到垃圾箱,下面是垃圾箱文件的最后保留时间
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
- hdfs 配置文件
vim hdfs-site.xml
# 内容如下(加在 configuration标签中)
# 保存的副本数量(为了防止一个节点挂了,而做的备份,默认为3)
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
# HDFS权限(学习时暂时关闭,因为后面会报各种权限的问题)
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
- yarn 配置文件
vim yarn-site.xml
# 内容如下
# 设置yarn的主节点
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
# 是否开启日志
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
# 设置从节点中的内存大小(单位:MB)
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
# 虚拟内存和真实内存的比率
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
- mapReduce 配置文件
# 重命名(这里和上面可能有一点不同)
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
# 内容如下
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
# 历史服务器 对应ip和端口
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
- 复制所有hadoop相关的文件到其他从节点下
scp -r /usr/local/soft/hadoop-2.7.6/ node1:/usr/local/soft/
scp -r /usr/local/soft/hadoop-2.7.6/ node2:/usr/local/soft/
- 格式化 namenode(主节点)
hdfs namenode -format
正常情况下应该和我这个差不多
3. 启动集群
- 启动命令
start-all.sh,正常启动的日志应该和我这个差不多 - 查看java进程
jps- master下
- node1/2下
- master下
- 可以去
master:50070这个url对应的网页下查看 集群的情况
小提示 如果安装失败,stop-all.sh,再次重启的时候
需要手动将每个节点的tmp目录删除: 所有节点都要删除
rm -rf /usr/local/soft/hadoop-2.7.6/tmp
然后执行将namenode格式化
在主节点执行命令:
hdfs namenode -format
启动hadoop
start-all.sh
使用
netstat -ntlp这个命令可以查看当前正在使用的端口号