Hadoop安装教程
hadoop-1是namenode,hadoop-2和hadoop-3都是datanode 使用:ip addr查看并记住三台虚拟机所对应IP
其余两台以同样方式分别将主机名修改为:hadoop-2、hadoop-3
修改HOSTS的原因主要有两点:
1.Hadoop 内部机制需要通过主机名对主机进行访问。 2.使用主机名对 Hadoop 集群进行配置,看起来更加一目了然。在CentOS7中修改HOSTS 操作命令如下:
[root@localhost ~]# vi /etc/hosts #在文件中添加集群所有主机的IP和主机名的对应关系,IP 与主机名之间使用一个 TAB 键分隔 192.168.80.132 hadoop-1 192.168.80.133 hadoop-2 192.168.80.134 hadoop-3Centos7 中使用 systemctl 命令来管理服务,命令如下:
[root@localhost ~]# firewall-cmd --state #查看状态 [root@localhost ~]# systemctl disable firewalld # 永久关闭防火墙(重启生效) [root@localhost ~]# systemctl stop firewalld # 临时关闭防火墙(立即生效)CentOS7 网络同步时间命令如下:
yum install ntpdate #安装过程中,需要按提示输入两次Y或yes ntpdate cn.pool.ntp.org #安装完毕后,执行该语句同步时间以hadoop-1为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:
ssh-keygen -t rsa #安装过程中需要按四次Enter键在hadoop-1上执行以下命令:
ssh-copy-id hadoop-2 ssh-copy-id hadoop-3在hadoop-2上执行以下命令:
ssh-copy-id hadoop-1 ssh-copy-id hadoop-3在hadoop-3上执行以下命令:
ssh-copy-id hadoop-1 ssh-copy-id hadoop-2在hadoop-2服务器执行命令
ssh hadoop-1可以看到在没有输入密码的情况下从服务器hadoop-2成功登录到hadoop-1服务器,此时就可以在hadoop-2服务器操作hadoop-1服务器。三台机器互相ssh一下,第一次登录需要输入yes,之后就不需要了。出现上图表示成功。测试能连接后不要忘记执行 exit 退出登录
下载网址:JDK下载网址 选择图中红框版本
这里使用root账号登录,安装到/usr/local/java目录下。上传及新建文件夹推荐使用XShell+Xftp
在末尾加上:
JAVA_HOME=/usr/local/java/jdk1.8.0_261(这里 JAVA_HOME=你自己的jdk路径) CLASSPATH=.:$JAVA_HOME/lib/tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH然后执行 source /etc/profile 命令使修改的配置文件生效。
执行命令:
javac或者java -version出现下图代表JDK安装成功
这里选择的版本是3.2.0 Hadoop3.2.0下载
在opt目录下新建一个名为hadoop的目录,并将下载得到的hadoop-3.2.0.tar上载到该目录下
在末尾加上:
export HADOOP_HOME=/opt/hadoop/hadoop-3.2.0 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin然后执行 source /etc/profile 命令使修改的配置文件生效。
执行命令:
hadoop version在/root目录下新建几个目录,以此复制粘贴执行下面的命令:
mkdir /root/hadoop mkdir /root/hadoop/tmp mkdir /root/hadoop/var mkdir /root/hadoop/dfs mkdir /root/hadoop/dfs/name mkdir /root/hadoop/dfs/data在节点内加入配置:
<property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://hadoop-1:9000</value> </property>在节点内加入配置::
<property> <name>dfs.name.dir</name> <value>/root/hadoop/dfs/name</value> <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently. </description> </property> <property> <name>dfs.data.dir</name> <value>/root/hadoop/dfs/data</value> <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop3:50090</value> </property> <property> <name>dfs.permissions</name> <value>false</value> <description>need not permissions</description> </property>在节点内加入配置:
<!-- 配置mapReduce在Yarn上运行(默认本地运行) --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>将里面的localhost删除,添加以下内容:
hadoop-1 hadoop-2 hadoop-3在节点内加入配置
<property> <description>指定YARN的老大(ResourceManager)的地址</description> <name>yarn.resourcemanager.hostname</name> <value>hadoop-1</value> </property> <!-- NodeManager上运行的附属服务。需要配置成mapreduce_shfffle,才可运行MapReduce程序默认值 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <discription>每个节点可用内存,单位MB,默认8182MB</discription> <name>yarn.scheduler.maximum-allocation-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>在start-dfs.sh、stop-dfs.sh开始第一行加上
HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root在start-yarn.sh、stop-yarn.sh开始第一行加上
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root因为hadoop-1是namenode,hadoop-2和hadoop-3都是datanode,所以只需要对hadoop-1进行初始化操作,也就是对hdfs进行格式化。 进入到hadoop-1这台机器/opt/hadoop/hadoop-3.2.0/bin目录:
cd /opt/hadoop/hadoop-3.2.0/bin执行初始化脚本
./hadoop namenode -format从hadoop-1开始,在三台分别运行:
start-all.shhadoop-1是我们的namenode,该机器的IP是192.168.217.128,在本地电脑访问如下地址:
http://192.168.80.132:9870/
自动跳转到了overview页面 在本地浏览器里访问如下地址: http://192.168.217.128:8088/ 自动跳转到cluster页面
在hadoop-1中输入
jps出现结果如图:
在hadoop-2中输入
jps出现结果如图: 在hadoop-3中输入
jps出现结果如图: