一.前言
Hadoop的安装模式主要有三种:单机模式,伪分布模式和集群模式。单机模式和伪分布模式的安装配置请参考上文Ubuntu下安装Hadoop(单机模式+伪分布模式),真正使用时使用的是hadoop的集群模式。
本文主要讲解在Linux环境下hadoop集群模式的安装和配置。
二.安装步骤
1.在虚拟机中安装三个Linux虚拟机
主机名分别为Master,Slaver1.Slaver2,即一个主节点,两个从节点。上网方式均选择NAT方式。三者对应的IP地址分别为
【Master 192.168.209.128】,【Slaver1 192.168.209.129】,【Slaver2 192.168.209.130】。
2.为三个主机安装SSH服务,配置SSH免密码登录。【SSH是三个节点间通信的协议】
3.安装JDK并配置环境变量 。
4.更改主机名和IP映射信息,编辑/etc/hoatname和/etc/hosts
5.安装hadoop并配置环境变量
6.修改hadoop的配置文件
7.运行实例并测试
三.开始安装和配置
1.安装SSH,配置SSH免密码登录(以Master为例)
hadoop@Master:~$ sudo apt-get install openssh-server # 安装SSH
hadoop@Master:~$ ssh localhost # 用SSH登录本机测试
hadoop@Master:~$ exit # 退出刚才的 ssh localhost
hadoop@Master:~$ cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
hadoop@Master:~$ ssh-keygen -t rsa # 生成公钥和私钥文件。会有提示,都按回车就可以
hadoop@Master:~$ cat ./id_rsa.pub >> ./authorized_keys # 将公钥文件追加到授权文件中,获得免密功能。
2.安装JDK,配置环境变量。
hadoop@Master:~$ sudo apt-get install openjdk-8-jdk #默认安装路径为/usr/lib/jvm/java-8-openjdk-amd64
hadoop@Master:~$ vim ~/.bashrc # 加入export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
hadoop@Master:~$ source ~/.bashrc # 使环境变量设置生效
hadoop@Master:~$ java -version #检查环境配置
3.更改主机名和IP映射信息
hadoop@Master:~$ sudo vim /etc/hostname # hostname修改为Master
hadoop@Master:~$ sudo vim /etc/hosts # hosts中修改为192.168.209.128 Master 192.168.209.129 Slave1 192.168.209.130 Slave2
hadoop@Master:~$ ping Master -c 3 # ping连接测试
4.安装hadoop并配置环境变量
hadoop@Master:~$ vim ~/.bashrc #加入export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
hadoop@Master:~$ source ~/.bashrc
5.修改hadoop的配置文件/etc/hadoop
- slaves
文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。
本教程让 Master 节点仅作为 NameNode 使用,因此将文件中原来的 localhost 删除,添加两行内容:Slave1 Slaver2。
- core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
- hdfs-site.xml
dfs.replication 一般设为 3,我们有个数据节点,所以dfs.replication 的值还是设为2:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
- mapred-site.xml
可能需要先重命名,默认文件名为 mapred-site.xml.template
<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>
- yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6.在Master节点启动hadoop
hadoop@Master:~$ start-dfs.sh
hadoop@Master:~$ start-yarn.sh
hadoop@Master:~$ mr-jobhistory-daemon.sh start historyserver
hadoop@Master:~$ jps
最终结果:
1.HDFS的守护进程
主节点:Namenode、SecondaryNamenode
从节点:Datanode
2.YARN的守护进程
主节点:ResourceManager
从节点:NodeManager
Hadoop安装配置中的权限管理
1.添加一个hadoop组
sudo addgroup hadoop2.将当前用户hadoop加入到Hadoop组
sudo usermod -a -G hadoop hadoop
3.将hadoop组加入到sudoer
sudo gedit etc/sudoers
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL
4.修改hadoop目录的权限
sudo chown -R hadoop:hadoop /usr/local/hadoop<所有者:组 文件>
5.修改hdfs的权限
sudo chmod -R 755 /usr/local/hadoop
下面关于
文章评论