安装hadoop需要先安装jdk
1、节点准备和配置
修改hosts文件添加各节点IP和hostaname。
2、创建hadoop用户
先使用root用户创建hadoop用户
groupadd hadoop
useradd hadoop -g hadoop
passwd hadoop
以上是创建用户组,创建用户自该组,设置用户的密码,每一台机器都需要配置
3、配置ssh免密登陆
先切换到hadoop用户下:
有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。
在hadoop用户下:
1.在A机下生成公钥/私钥对。
ssh-keygen -t
三次回车后生成,它在它在/home/hadoop下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
在.ssh目录下执行cat id_rsa.pub >> authorized_keys,防止hadoop启动时需要输入自己的密码。
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,用scp复制。
scp ~/.ssh/id_rsa.pub hadoop@slave1:~/id_rsa.pub
由于还没有免密码登录的,所以要输入密码。
3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600。
执行ssh slave1,若能成功登入slave1则表示成功,否则失败。
同理,免密登陆其他机器。
4、Hadoop安装
1)复制 Hadoop-2.7.7.tar.gz 到/home/hadoop目录下,
然后#tar -xzvf hadoop-2.7.7.tar.gz 解压,解压后目录为:
/home/hadoop/hadoop-2.7.7
2)在/home/hadoop/目录下,建立tmp、dfs/name、dfs/data目录,执行如下命令
mkdir /home/hadoop/{tmp,dfs/data,dfs/name} -p
3),设置环境变量,
HADOOP_HOME = /home/hadoop/hadoop-2.7.7
export PATH = $PATH:$HADOOP_HOME/bin
4),使环境变量生效,$source ~/.bash_profile
Hadoop配置
进入$HADOOP_HOME/etc/hadoop目录,配置 hadoop-env.sh等。涉及的配置文件如下:
hadoop-2.7.7/etc/hadoop/hadop-env.sh
hadoop-2.7.7/etc/hadoop/yarn-env.sh
hadoop-2.7.7/etc/hadoop/core-site.xml
hadoop-2.7.7/etc/hadoop/hdfs-site.xml
hadoop-2.7.7/etc/hadoop/mapred-site.xml
hadoop-2.7.7/etc/hadoop/slaves
4-1、配置hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_192
4-2、配置yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_192
4-3)、配置mapred-env.sh
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_192
4-4)、配置core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<description>HDFS的URI,文件系统://namenode标识:端口号 </description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>namenode上本地的hadoop临时文件夹</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
</configuration>
4-5)、配置hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--hdfs-site.xml-->
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/dfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description> </property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/dfs/data</value>
<description>datanode上数据块的物理存储位置</description></property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,配置默认是3,应小于datanode机器数量</description></property>
</configuration>
4-6)、配置mapred-site.xml
如果不存在,则复制mapred-site.xml.template
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
4-7)、配置yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>65536</value>
<description>Amount of physical memory, in MB, that can be allocated for containers.</description>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>65536</value>
<description>Amount of physical memory, in MB, that can be allocated for containers.</description>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>32</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>32</value>
</property>
<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.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs/</value>
</property>
</configuration>
4-8)、配置slaves
slave1
slave2
5、集群配置
5-1、拷贝到其他机器
scp -r ~/hadoop-2.7.7 hadoop@slave1:~/
scp -r ~/tmp hadoop@slave1:~/
scp -r ~/dfs hadoop@slave1:~/
5-2、启动dfs
启动之前先格式化namenode(第一次启动时格式化,以后就不要总格式化)
./bin/hdfs namenode -format
./sbin/start-dfs.sh start
将会在master节点启动namenode和SecondaryNameNode,slave节点启动datanode
5-3、启动yarn
sbin/start-yarn.sh
将会在指定的机器启动resourcemanager,每个节点都有nodemanager
注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。
5-4、全部启动
也可以全部一起启动,不建议,不便于查找错误
./sbin/start-all.sh
5-5、启动historyserver
./sbin/mr-jobhistory-daemon.sh start historyserver
5-6 配置日志聚合
在yarn-site.xml中
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
如果所有的组件都显示出现,继续访问web页面查看。
http://9.1.10.190:50070 查看主要相关信息和hdfs文件管理等
http://9.1.10.190:8088 查看datanode是和有空间和mapreduce任务执行等
后期补截图~~~
闲暇之余 ,简而记之!