本章教你如何设置mahout. Java和Hadoop是mahout的先决条件
.下面给出了下载和安装Java,Hadoop和Mahout的步骤.
在将Hadoop安装到Linux环境之前,我们需要使用 ssh (Secure Shell)设置Linux.按照下面提到的步骤设置Linux环境.
建议为Hadoop创建一个单独的用户来隔离来自Unix文件系统的Hadoop文件
系统.按照以下步骤创建用户:
使用命令"su"打开root.
使用命令"useradd username"从root帐户创建用户.
现在您可以使用命令"su username"打开现有用户帐户.
打开Linux终端并输入以下命令来创建用户.
$ su password: # useradd hadoop # passwd hadoop New passwd: Retype new passwd
需要SSH设置才能在集群上执行不同的操作,例如启动,停止和分布式守护程序shell操作.要对
Hadoop的不同用户进行身份验证,需要为Hadoop用户提供公钥/私钥对,并与不同用户共享
.
以下命令用于使用SSH生成密钥值对,将公钥从id_rsa.pub复制到authorized_keys,并分别为authorized_keys文件提供所有者,读写权限.
$ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
ssh localhost
Java是Hadoop的主要先决条件和HBase.首先,您应该使用"java -version"验证系统中
是否存在Java. Java版本命令的语法如下所示.
$ java -version
它应该产生以下输出.
java version"1.7.0_71" Java(TM)SE运行时环境( build 1.7.0_71-b13) Java HotSpot(TM)客户端VM(版本25.0-b02,混合模式)
如果不这样做在您的系统中安装了Java,然后按照下面给出的
安装Java的步骤.
步骤1
通过访问以下链接下载java(JDK< latest version> - X64.tar.gz):Oracle
然后 jdk-7u71-linux-x64.tar.gz已下载到你的系统上.
第2步
通常,你会在Downloads文件夹中找到下载的Java文件.验证它并使用以下命令
提取 jdk-7u71-linux-x64.gz 文件.
$ cd Downloads/ $ ls jdk-7u71-linux-x64.gz $ tar zxf jdk-7u71-linux-x64.gz $ ls jdk1.7.0_71 jdk-7u71-linux-x64.gz
第3步
要使所有用户都可以使用Java,您需要将其移动到"/usr/local/"位置.打开root,然后输入以下命令.
$ su password: # mv jdk1.7.0_71 /usr/local/ # exit
第4步
用于设置 PATH 和 JAVA_HOME 变量,将以下命令添加到〜/.bashrc文件.
export JAVA_HOME=/usr/local/jdk1.7.0_71 export PATH= $PATH:$JAVA_HOME/bin
现在,如上所述验证来自终端的 java -version 命令.
安装Java后,你需要最初安装Hadoop.使用"Hadoop version"命令验证Hadoop是否存在,如下所示.
hadoop version
它应该产生以下输出:
Hadoop 2.6.0 Compiled by jenkins on 2014-11-13T21:10Z Compiled with protoc 2.5.0 From source with checksum 18e43357c8f927c0695f1e9522859d6a This command was run using /home/hadoop/hadoop/share/hadoop/common/hadoopcommon-2.6.0.jar
如果您的系统无法找到Hadoop,请下载Hadoop并在系统上安装
.按照下面给出的命令执行此操作.
使用
以下命令从apache软件基础下载并解压缩hadoop-2.6.0.
$ su password: # cd /usr/local # wget http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop- 2.6.0/hadoop-2.6.0-src.tar.gz # tar xzf hadoop-2.6.0-src.tar.gz # mv hadoop-2.6.0/* hadoop/ # exit
在任何需要的地方安装Hadoop模式.在这里,我们以伪分布式模式演示HBase功能,因此以伪分布式
模式安装Hadoop.
按照下面给出的步骤安装 Hadoop 2.4. 1 在您的系统上.
您可以通过将以下命令附加到
export HADOOP_HOME=/usr/local/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_INSTALL=$HADOOP_HOME
现在,应用所有更改进入当前正在运行的系统.
$ source ~/.bashrc
您可以在"$ HADOOP_HOME / etc / hadoop"位置找到所有Hadoop配置文件。 需要根据您的Hadoop基础结构对这些配置文件进行更改。
$ cd $HADOOP_HOME/etc/hadoop
为了用Java开发Hadoop程序,你需要通过替换 hadoop-env.sh 文件中的Java环境
变量来重置 JAVA_HOME 值,表示系统中Java的位置.
export JAVA_HOME=/usr/local/jdk1.7.0_71
以下是您需要编辑以配置Hadoop的文件列表.
core -site.xml
core-site.xml 文件包含用于Hadoop实例的端口号,为文件系统分配的内存等信息,存储数据的内存限制,以及读取/写入缓冲区的
大小.
打开core-site.xml并在< configuration>之间添加以下属性,
</configuration>标签:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
hdfs-site.xm
hdfs-site.xml 文件包含本地文件系统的复制数据,namenode路径和datanode路径的值等信息.它表示您希望存储Hadoop基础结构的位置.
让我们假设以下数据:
dfs.replication (data replication value) = 1 (In the below given path /hadoop/ is the user name. hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) namenode path = //home/hadoop/hadoopinfra/hdfs/namenode (hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) datanode path = //home/hadoop/hadoopinfra/hdfs/datanode
打开此文件并在< configuration>,$ b $之间添加以下属性b</configuration>此文件中的标签.
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value> </property> </configuration>
注意:在上面的文件中,所有属性值都是用户定义的.您可以根据您的Hadoop基础架构进行
更改.
mapred-site.xml
此文件用于将纱线配置为Hadoop.打开mapred-site.xml文件,并在< configuration>,</configuration>之间添加
以下属性.此文件中的标签.
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
mapred-site.xml
此文件用于指定哪个MapReduce框架我们正在使用.默认情况下,Hadoop包含mapred-site.xml模板.首先,需要使用以下命令将文件从 mapred-site.xml.template 复制到 mapred-site.xml 文件.
$ cp mapred-site.xml.template mapred-site.xml
打开 mapred-site.xml 文件,并在
< configuration>,</configuration>之间添加以下属性.此文件中的标签.
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
以下步骤用于验证Hadoop的安装.
使用命令"hdfs namenode -format"设置namenode,如下所示:
$ cd ~ $ hdfs namenode -format
预期结果如下:
10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = localhost/192.168.1.11 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 2.4.1 ... ... 10/24/14 21:30:56 INFO common.Storage: Storage directory /home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 ************************************************************/
以下命令用于启动dfs.此命令启动您的Hadoop文件系统.
$ start-dfs.sh
预期输出如下:
10/24/14 21:37:56 Starting namenodes on [localhost] localhost: starting namenode, logging to /home/hadoop/hadoop- 2.4.1/logs/hadoop-hadoop-namenode-localhost.out localhost: starting datanode, logging to /home/hadoop/hadoop- 2.4.1/logs/hadoop-hadoop-datanode-localhost.out Starting secondary namenodes [0.0.0.0]
以下命令用于启动纱线脚本.执行此命令将启动您的纱线恶魔.
$ start-yarn.sh
预期输出如下:
starting yarn daemons starting resource manager, logging to /home/hadoop/hadoop-2.4.1/logs/yarn- hadoop-resourcemanager-localhost.out localhost: starting node manager, logging to /home/hadoop/hadoop- 2.4.1/logs/yarn-hadoop-nodemanager-localhost.out
默认端口号为访问hadoop是50070.使用以下URL在您的浏览器上获取
Hadoop服务.
http://localhost:50070/
访问群集的所有应用程序的默认端口号是8088.使用以下
URL访问此服务.
http://localhost:8088/
Mahout可在 Mahout 网站上找到.从
下载Mahout网站提供的链接.这是该网站的截图.
从 $ b链接下载Apache mahout使用以下命令$ b http://mirror.nexcess.net/apache/mahout/.
[Hadoop@localhost ~]$ wget http://mirror.nexcess.net/apache/mahout/0.9/mahout-distribution-0.9.tar.gz
然后 mahout-distribution-0.9.tar.gz 将在您的系统中下载.
浏览存储 mahout-distribution-0.9.tar.gz 的文件夹,
提取下载的jar文件,如下所示.
[Hadoop@localhost ~]$ tar zxvf mahout-distribution-0.9.tar.gz
下面给出了构建Apache Mahout的pom.xml使用Eclipse.
<dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-core</artifactId> <version>0.9</version> </dependency> <dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-math</artifactId> <version>${mahout.version}</version> </dependency> <dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-integration</artifactId> <version>${mahout.version}</version> </dependency>