这里是在版本上以单机模式安装Hadoop。而且Ubuntu中的用户名为frank安装JDK这里要安装的Java版本是jdk-8。执行命令sudoaptupdatesudoaptinstallopenj......
这里是在版本上以单机模式安装Hadoop。而且Ubuntu中的用户名为frank
安装JDK这里要安装的Java版本是jdk-8。
执行命令
sudoaptupdatesudoaptinstallopenjdk-8-jdk-y
运行完安装程序后,会自动给jdk配置环境变量,所以下面测试一下jdk是否安装成功
java-versionjavac-version
如果都能显示出jdk的版本信息,则表示安装成功。
还可以通过执行查看一下java和javac的安装路径
whichjavawhichjavac
得到的结果是:
/usr/bin/java
/usr/bin/javac
另外,jvm的安装路径是
/usr/lib/jvm/java-8-openjdk-amd64
这个路径在后续的Hadoop配置中要用得到。
下载Hadoopcd/home/frank/Desktopwget
下载好之后,会在桌面上得到一个Hadoop的压缩包。
将这个压缩包解压缩,并放置在当前用户的根目录下(即/home/frank/)
tar-zxvf/home/frank/Desktop//home/frank/
这样就会在目录/home/frank/目录下多了一个文件夹
配置Hadoop这里要配置的Hadoop文件有如下几个:
.bashrc
mapred-site-xml
这些文件都在目录/home/frank/的根目录下或者子目录下
.bashrc这个文件是用来配置Hadoop的环境变量的。
sudogedit/home/frank//.bashrc
打开文件后,给这个文件的末尾追加以下内容并保存
#HadoopRelatedOptionsexportHADOOP_HOME=/home/frank/_INSTALL=$HADOOP_HOMEexportHADOOP_MAPRED_HOME=$HADOOP_HOMEexportHADOOP_COMMON_HOME=$HADOOP_HOMEexportHADOOP_HDFS_HOME=$HADOOP_HOMEexportYARN_HOME=$HADOOP_HOMEexportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexportPATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/binexportHADOOP_OPTS="-=$HADOOP_HOME/lib/nativ"
然后让环境变量生效
source~/.bashrc
这个文件作为主程序来运行,用来配置YARN、HDFS,MapReduce,以及Hadoop的相关项目的设置。当Hadoop作为单点模式时,需要定义之前安装的Java的路径。
因为在上一步已经创建出了一个环境变量HADOOP_HOME,并且使之生效,那么后续的配置就可以直接利用这个环境变量了。
sudogedit$HADOOP_HOME/etc/hadoop/
打开文件后,把里面的exportJAVA_HOME这段注释删掉,然后用这个内容替换
exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
保存退出该文件。
这是在给Hadoop配置JAVA_HOME的运行环境的地址。因为Hadoop就是用Java开发出来的,那么它的运行肯定要依赖Java环境。那么这里的配置信息的地址,就是本文中Java的安装部分里标注的jvm的安装路径。
这个文件用来定义HDFS和Hadoop核心属性。以单节点的方式安装Hadoop时,需要为NameNode来指定URL,还要指定临时文件夹让Hadoop用来进行map和reduce的计算。这里是要指定文件夹,所以需要事先创建好文件夹,然后才能在这个文件里修改。
mkdir/home/frank/tmpdata
sudogedit$HADOOP_HOME/etc/hadoop/
在里面的configuration标签之间添加以下的代码
/namevalue/home/frank/tmpdata/value//namevaluehdfs://127.0.0.1:9000/value/property
这个文件里的属性用来定义保存的节点元数据,文件系统镜像文件,还有日志文件。所以修改这个文件就是在定义NameNode、DataNode存储路径。
另外,里面的一个参数的值默认为3,针对单点模式的话就要设置为1。因为是单点模式,没有冗余,所以只能为1
mkdirdfsdatacddfsdatamkdirnamenodemkdirdatanode
然后修改这个文件
在configuration标签之间添加
/namevalue/home/frank/dfsdata/namenode/value//namevalue/home/frank/dfsdata/datanode/value//namevalue1/value/property
顾名思义,这个文件是用来配置MapReduce的特性的
在configuration之间添加
/namevalueyarn/value/property
这个文件是用来定义YARN的,里面包含了NodeManager,ResourceManager,Containers、ApplicationMaster
在configuration之间添加
/namevaluemapreduce_shuffle/value///value///value//namevalue0/value//namevalueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME/value/property
至此,Hadoop的单机安装模式的配置就完成了。接下来需要安装ssh,以保证用户可以免密登录系统。
安装OpenSSH下面是在安装OpenSSH服务和客户端
sudoaptinstallopenssh-serveropenssh-client-y
可以不需要创建新的用户,直接使用当前的frank用户来管理Hadoop,那么就为frank这个用户设定免密登录。
切换到frank用户
su-frank
创建一个ssh密钥对,即一个公钥一个私钥,并且定义这个密钥对存放的位置
ssh-keygen-trsa-P''-f~/.ssh/id_rsa
然后通过cat命令把公钥以注册秘钥的形式保存到一个文件上
cat~/.ssh/id_~/.ssh/authorized_keys
最后给当前用户设置一个针对注册秘钥的权限
chmod0600~/.ssh/authorized_keys
到此,当前这个用户就可以不通过密码来使用SSH服务了。如果要验证免密ssh是否配置成功,可以运行下面的命令。测试当前用户是否可以不需要秘钥就可以登录本地
sshlocalhost格式化HDFSNameNode
在开启Hadoop服务前,必须对NameNode进行格式化,也就是初始化。
hdfsnamenode-format开启Hadoop集群
导航到目录~//sbin/目录下,然后执行下面的命令开启NameNode和DataNode
./
这里的dfs也就是distributedfilesystem分布式文件系统的意思。也就是开启Hadoop的HDFS这个底层服务。
这里主要看这三项,namenode,datanode和secondaryNameNode
一旦这三项服务都开启了,就可以开始开启YARN这个服务了。
./
这里就是开启了resourcemanager和nodemanager
最后可以用一个简单的命令来验证所有的守护进程是否都以Java进程的方式开启
jpsHadoopUI
开启了一些服务器程序,Hadoop还提供了一个前端界面来查看和监听集群的参数和状态。
查看NameNode状态http://localhost:9870
查看DataNode状态http://localhost:9864
查看YARNResourceManager状态http://localhost:8088
至此,Hadoop的单点模式就安装配置完成了。