安装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任务执行等

 

后期补截图~~~

闲暇之余 ,简而记之!