hadoop-2.7.2伪分布模式安装教程

hadoop-2.7.2伪分布模式安装教程

 

安装环境:

Ubuntu14.04- server

 

1.  创建hadoop用户

若安装Ubuntu时已创建hadoop用户,可跳过此步骤。

(注:亦可使用其他用户安装hadoop,但建议最好使用hadoop用户。)

sudo useradd hadoop

      设置密码:

sudo passwd hadoop

      为hadoop用户添加管理员权限:

      方法一:

            sudo adduser hadoop sudo

      方法二:

            打开/etc/sudoers文件,在root用户组中添加hadoop

            sudo nano /etc/sudoers


使用hadoop用户登录:

      su hadoop

(注意:以下步骤均需在hadoop用户下完成!)


2.  安装ssh,配置ssh无密码登录

安装ssh前,先更新一下apt:

sudo apt-get update

安装ssh命令:

sudo apt-get install openssh-server

安装后,启动ssh登录本机:

ssh localhost

        作为一个安全通信协议,使用ssh登录时需要输入密码,而在hadoop集群中,需要将ssh改成无密码登录,hadoop节点间才能正常通信。

退出ssh登录:

exit

生成私钥和公钥:

cd ~/.ssh/

ssh-keygen -t rsa

将公钥追加到authorized_keys文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

再次使用ssh localhost登录本机,此时便不在需要输入密码了。

 

3.  安装Java环境

安装JRE和JDK:

sudo apt-get install openjdk-7-jre openjdk-7-jdk

(注意:hadoop2.7.2不再支持jdk1.6及以下版本)


配置Java环境变量:

为了方便对环境变量的统一管理,我们将其添加到/etc/profile文件中。

打开/etc/profile文件:

sudo nano /etc/profile

将以下内容追加到文件中:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

(注:JAVA_HOME为JDK的安装路径)

更新一下配置文件:

source /etc/profile

测试JAVA_HOME环境变量和Java版本:

echo $JAVA_HOME

java –version

若能正确输出JAVA_HOME和Java版本,则Java环境配置成功。

 

4.  安装hadoop-2.7.2

从Apache官网下载hadoop-2.7.2.tar.gz:

http://apache.fayea.com/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz

解压hadoop-2.7.2.tar.gz:

sudo tar –zxvf ~/hadoop-2.7.2.tar.gz

将其移动到合适位置:

sudo mv hadoop-2.7.2 /usr/local

重命名文件夹:

sudo mv hadoop-2.7.2 hadoop


配置hadoop环境变量:

为方便执行hadoop命令,需在/etc/profile文件中配置hadoop环境变量。

打开/etc/profile文件:

sudo nano /etc/profile

将以下内容追加到/etc/profile文件中:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/lib
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

(注:HADOOP_HOME为HADOOP的安装路径)

更新一下配置文件:

source /etc/profile


修改hadoop-env.sh文件中的JAVA_HOME环境变量:

打开hadoop-env.sh文件:

sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh

将export JAVA_HOME=$JAVA_HOME改为JDK具体的安装路径。

更新hadoop-env.sh文件,使其生效:

source /usr/local/hadoop/etc/hadoop/hadoop-env.sh


查看hadoop版本:

hadoop version

若能正确显示hadoop版本,则hadoop单机模式安装成功。

 

5.  配置伪分布模式

       需要在/hadoop/etc/hadoop目录下的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四个配置文件中添加配置,其中后两个是用于配置YARN的。

       为方便伪分布模式的配置,可先对主机名进行修改,将/etc/hostname文件中的内容改为Master(名字可随意,不一定是Master),这样有利于后继的完全分布式配置。

在core-site.xml中添加:


    hadoop.tmp.dir
    file:/usr/local/hadoop/tmp
    Abase for other temporarydirectories.


    fs.defaultFS
    hdfs://Master:9000

在hdfs-site.xml文件中添加:


    dfs.replication
    1


    dfs.namenode.name.dir
    file:/tmp/hadoop/dfs/name


    dfs.datanode.data.dir
    file:/tmp/hadoop/dfs/data


    dfs.namenode.secondary.http-address
    Master:50090


mapred-site.xml文件原先并不存在,需先将mapred-site.xml.template更名为mapred-site.xml:

sudo mv mapred-site.xml.template mapred-site.xml

然后在mapred-site.xml文件中添加:


    mapreduce.framework.name
    yarn


    mapreduce.jobhistory.address
    Master:10020


    mapreduce.jobhistory.webapp.address
    Master:19888


在yarn-site.xml文件中添加:


    yarn.nodemanager.aux-services
    mapreduce_shuffle


    yarn.resourcemanager.hostname
    Master


修改完配置文件后,对namenode进行格式化:

./bin/hdfs namenode –format

至此hadoop-2.7.2的伪分布模式配置完毕。


6.  启动hadoop守护进程

启动dfs:

start-dfs.sh

启动后使用jps命令查看进程,将看到NameNode、DataNode、SecondaryNamenode三个进程。

启动YARN:

start-yarn.sh

启动后将增加ResourceManager、NodeManager两个进程。

也可以使用start-all.sh命令启动全部进程(start-all.sh = start-dfs.sh + start-yarn.sh)

启动JobHistoryServer:

mr-jobhistory-daemon.sh start historyserver

因为mapred-site.xml文件中配置了JobHistoryServer,所以必须启动hadoop才能正常运行。

 

7.  运行hadoop伪分布式实例

在hdfs中创建输入文件夹,并将文件拷贝到文件夹中:

./bin/hdfs dfs -mkdir input

./bin/hdfs dfs -put ./etc/hadoop/*.xml input

运行mapreduce作业:

hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount input output

等待mapreduce作业运行结束,查看运行结果:

hdfs dfs -cat output/*

(注意:在作业运行之前,输出路径不能存在!)


你可能感兴趣的:(大数据)