1.java安装
2.配置免密码登录
创建公钥和私钥
ssh -keygen -t rsa
将要登录者机器的公钥id_rsa.pub内容添加到被登录机器的authorized_keys中,修改authorized_keys权限
这里模拟本机登录本机
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
chmod 644 authorized_keys
直接ssh 主机名免密码登录
ssh bigdata-test01.mykine.cn
3.Hadoop安装
选择需要的版本下载
解压文件,将文件夹路径配置到环境变量
vim /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8
JRE_HOME=/usr/local/java/jdk1.8/jre
GOROOT=/usr/local/go
GOPATH=/usr/local/goapps
HADOOP_HOME=/usr/local/hadoop-2.7.2
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$GOROOT/bin:$HADOOP_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH GOROOT GOPATH HADOOP_HOME
重启环境变量
source /etc/profile
4.修改配置文件搭建伪分布式模式Hadoop集群
2.7旧版本的配置文件目录在etc/hadoop中
cd /usr/local/hadoop-2.7.2/etc/hadoop
以下配置文件中的设置的文件夹不存在要手动创建,例如:
mkdir -p /usr/local/hadoop-2.7.2/current/tmp
core-site.xml
- 配置web访问地址
- 临时文件所在目录
- 垃圾回收时长
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://bigdata-test01.mykine.cn:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.2/current/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>4320</value>
</property>
</configuration>
分布式文件系统配置 hdfs-site.xml
- NameNode进程负责记录各数据块的存储空间位置
- DataNode进程负责的数据真实物理存储目录
- 副本的数量(一般等于数据块节点个数)
- 是否启用web管理页面
- 用户组
- 权限是否开启
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop-2.7.2/current/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-2.7.2/current/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>staff</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
yarn-site.xml
- 运行resourcemanager服务进程(资源调度服务)的机器的主机名或IP地址
- NodeManager上运行的附属服务,需配置成mapreduce_shuffle,才可运行MapReduce程序
- mapreduce_shuffle相关类名
- resourcemanager的主机端口
- resourcemanager的调度器的端口
- resourcemanager的tracker的端口
- resourcemanager的admin的端口
- resourcemanager的weapp的端口
- yarn日志是否开启
- yarn日志聚合保留时长
- HDFS上的remote-app-log日志目录
- HDFS上的remote-app-log日志前缀
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata-test01.mykine.cn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>bigdata-test01.mykine.cn:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>bigdata-test01.mykine.cn:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>bigdata-test01.mykine.cn:18025</value>
</property> <property>
<name>yarn.resourcemanager.admin.address</name>
<value>bigdata-test01.mykine.cn:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>bigdata-test01.mykine.cn:18088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>86400</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
</configuration>
mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
- mapreduce基于的框架yarn
- mapreduce通信端口
- mapreduce历史作业服务address端口
- mapreduce历史作业服务webapp端口
- mapreduce已完成的在HDFS上的日志目录
- mapreduce中间完成的在HDFS上的日志目录
- 启用mapreduce作业任务
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>bigdata-test01.mykine.cn:50030</value>
</property>
<property>
<name>mapreduce.jobhisotry.address</name>
<value>bigdata-test01.mykine.cn:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata-test01.mykine.cn:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/jobhistory/done</value>
</property>
<property>
<name>mapreduce.intermediate-done-dir</name>
<value>/jobhisotry/done_intermediate</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
</configuration>
slaves
配置datanode的nodemanager在bigdata-test01.mykine.cn这台机器运行
bigdata-test01.mykine.cn
hadoop-env.sh
配置jdk目录
export JAVA_HOME=/usr/local/java/jdk1.8
格式化HDFS
hdfs namenode -format
当显示类似INFO common.Storage: Storage directory /usr/local/hadoop-2.7.2/current/dfs/name has been successfully formatted ,表示格式化成功
启动Hadoop集群
/usr/local/hadoop-2.7.2/sbin/start-all.sh
期间会提示是否启动Secondary NameNode服务,输入yes回车即可
(Secondary NameNode详解参考)
查看运行状态
-
通过jps查看java进程
-
开放防火墙50070、18088端口
-
通过http://ip:50070 查看hdfs
- 通过http://ip:18088 查看yarn