4.安装Hadoop
在所有服务器上执行以下操作,完成Scala的安装。
关闭所有服务器的防火墙,防止出现端口无法连接的情况
命令:service iptables status,查询防火墙运行状态。
命令:service iptables stop,停止运行防火墙。
配置服务器之间SSH无密码登录
命令:ssh-keygen -t rsa,在~/.ssh目录下生成服务器的公钥(id_rsa.pub)和私钥(id_rsa)。
在所有服务器中执行以上命令,生成各自的公钥和私钥。
在其中一台服务器上,执行以下命令,我选择在master服务器上执行:
cat id_rsa.pub >> authorized_keys //将公钥内容增加到authorized_keys文件中
scp authorized_keys root@worker1:/root/.ssh //将authorized_keys文件传输给worker1
在worker1服务器上执行以下命令:
cat id_rsa.pub >> authorized_keys //将公钥内容增加到authorized_keys文件中
scp authorized_keys root@worker2:/root/.ssh //将authorized_keys文件传输给worker2
在worker2服务器上执行以下命令:
cat id_rsa.pub >> authorized_keys //将公钥内容增加到authorized_keys文件中
scp authorized_keys root@worker1:/root/.ssh //将authorized_keys文件传输给worker1
scp authorized_keys root@master :/root/.ssh //将authorized_keys文件传输给master
依照上面这样,最终所有服务器上都包含authorized_keys文件,里面保存着所有服务器的公钥。
在master、worker1、worker2服务器上执行以下命令,直到不需要输入密码为止:
ssh master
ssh master主机ip
ssh worker1
ssh worker1主机ip
ssh worker2
ssh worker2主机ip
ssh登录其它服务器后,需要通过exit命令退出,回到原来服务器。
上传已下载好的hadoop-2.6.0.tar.gz,并解压
命令:mkdir -p /usr/local/hadoop,在/usr/local目录下创建hadoop目录。
上传hadoop-2.6.0.tar.gz至/usr/local/hadoop目录下。
命令:tar -zxvf hadoop-2.6.0.tar.gz,解压安装包得到hadoop-2.6.0。
配置环境变量HADOOP_HOME、PATH等
命令:vi /etc/profile或者vi ~/.bashrc,/etc/profile对所有用户都生效,~/.bashrc只对当前用户生效。
通过键入字母i或者a进入vi的插入模式,可以对以上文件进行编辑。按照下面配置环境变量:
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
export PATH=${PATH}:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
键入Esc,输入:wq,回车保存退出(或者键入Esc后,按住Shift + 两次z),环境变量配置完毕。
配置${HADOOP_HOME}/etc/hadoop目录下的配置文件
core-site.xml的配置内容如下:
hdfs-site.xml的配置内容如下:
mapred-site.xml的配置内容如下:
yarn-site.xml的配置内容如下:
hadoop-env.sh的配置内容中只要修改JAVA_HOME即可:
yarn-env.sh的配置内容中只要修改JAVA_HOME和HADOOP_OPTS即可:
slaves的配置内容为所有集群服务器的datanode节点的主机名:
以上内容在所有服务器中配置完毕后,Hadoop集群基本配置完毕。使用之前,需要格式化namenode
命令:hadoop namenode -format
格式化成功后,就可以启动Hadoop集群了。在${HADOOP_HOME}/sbin目录下执行以下命令:
命令:./start-dfs.sh,启动Hadoop集群。
命令:jps,查看正在运行的java进程。
在所有服务器中通过jps命令查看Hadoop集群启动后,各个进程是否正常启动。我的环境运行情况如下:
master服务器作为NameNode节点、SecondaryNameNode节点、DataNode节点,进程如图
worker1和worker2服务器作为DataNode节点,进程如图
访问http://master:50070/或者将master(主机名)换成ip也可以,查看hadoop集群概况
启动Hadoop集群后,就可以启动yarn了,它负责集群各个节点的资源管理。在${HADOOP_HOME}/sbin目录下执行以下命令:
命令:./start-yarn.sh,启动yarn资源管理。
命令:jps,查看正在运行的java进程。
在所有服务器中通过jps命令查看yarn启动后,各个进程是否正常启动。我的环境运行情况如下:
master作为NameNode和DataNode需要再启动ResourceManager和NodeManager
worker1和worker2作为DataNode只需要再启动NodeManager