Hadoop2.x实战:Hadoop安装与配置

          林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka

         摘要:本文主要讲了Hadoop2.7.2在Ubuntu14.04上的安装与配置过程

一、JDK

1、安装JDK
比较简单,不懂可以看这里: http://blog.csdn.net/evankaka/article/details/50463782

2、设置环境变量
gedit 
环境变量分为用户变量和系统变量。
用户变量配置文件:~/.bashrc(在当前用户主目录下的隐藏文件,可以通过`ls -a`查看到)
系统环境配置文件:/etc/profile
用户变量和系统变量的配置方法一样,本文以配置用户变量为例。

编辑配置文件.bashrc:

vi .bashrc

在文件末尾追加:
#set java environment
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65
export JRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

3环境变量生效
source ~/.bashrc

4验证
验证Java是否安装成功。
java -version

二、安装SSH


     由于Hadoop用ssh通信,作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录(除非你的手真的非常痒,每次都喜欢输入密码,一两台机器还可以,要是几十上百台呢?没密码担心安全问题?自己去看openssh吧,记得要弄懂里面的加密算法哦。)首先在安装服务
 sudo apt-get install openssh-server
生成私钥和公钥:
ssh-keygen -t rsa -P ""

因为我已有私钥,所以会提示是否覆盖当前私钥。第一次操作时会提示输入密码,按Enter直接过,这时会在~/home/{username}/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,现在我们将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

现在可以登入ssh确认以后登录时不用输入密码:

ssh localhost


登出:
exit


三、hadoop2.7.2安装、配置、启动


1、hadoop2.7.2下载与解压
从http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz 下载后导入到Ubuntu
mv hadoop-2.7.2.tar.gz  /usr/hadoop/
tar -xzvf hadoop-2.7.2.tar.gz

解压后文件:



2、配置环境变量
gedit ~/.bashrc

将下面代码直接复制在最后
#HADOOP VARIABLES START
export HADOOP_INSTALL=/usr/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END
注意设置好路径,最后关闭后再使用
source ~/.bashrc
使环境变量生效

4 配置 文件hadoop-env.sh修改
修改 /usr/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh 在 export JAVA_HOME=${JAVA_HOME} 行前面插入如下内容
gedit hadoop-env.sh

代码:
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.2/etc/hadoop

5、配置伪分布式

先在hadoop-2.7.2目录下新建一个文件夹tmp
cd  /usr/hadoop/hadoop-2.7.2
mkdir tmp

5.1、配置 core-site.xml

切换至配置文件目录:

cd /usr/hadoop/hadoop-2.7.2/etc/hadoop

修改 /usr/hadoop/hadoop-2.7.2/etc/hadoop/core-site.xml 在 后面增加
代码:
gedit core-site.xml

添加
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/hadoop/hadoop-2.7.2/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

5.2、配置 hdfs-site.xml
gedit hdfs-site.xml

添加
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/hadoop/hadoop-2.7.2/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/hadoop/hadoop-2.7.2/tmp/dfs/data</value>
    </property>
</configuration>

 关于Hadoop配置项的一点说明:
虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

5.3、配置yarn-site.xml
<configuration>
  <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
  </property>
  <property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
</configuration>
5.4、配置mapred-site.xml

从模板文件复制一个xml,

执行命令:

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

执行命令:
gedit mapred-site.xml
将文件修改为
<configuration>
 <property>
 <name>mapred.job.tracker</name>
 <value>localhost:9001</value>
 </property>
</configuration>

6、配置完成后,执行格式化:
hdfs namenode -format

倒数第五行出现Exitting with status 0 表示成功,若为 Exitting with status 1 则是出错。



7、启动hadoop
启动hadoop所有的进程:
cd /usr/hadoop/hadoop-2.7.2/sbin
start-all.sh(文件放在/usr/hadoop/hadoop-2.7.2/sbin)

或者使用:

start-dfs.sh 
start-yarn.sh 


查看各个进程是否正常启动,执行:jps。如果一切正常,将看到下列结果:


图片
打开浏览器,输入如下内容

  http://localhost:8088/     - Hadoop 管理介面


  http://localhost:50070/      - Hadoop DFS 状态



【注意】若执行jps后提示:
程序 'jps' 已包含在下列软件包中:
* default-jdk
* ecj
* gcj-4.6-jdk
* openjdk-6-jdk
* gcj-4.5-jdk
* openjdk-7-jdk
请尝试:sudo apt-get install <选定的软件包>
 那么请执行下面命令,手动设置系统默认JDK:

sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.7.0_79/bin/jps 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300

8 停止 hadoop
cd /usr/hadoop/hadoop-2.7.2/sbin
stop-all.sh (文件放在/usr/hadoop/hadoop-2.7.2/sbin)

或者使用:

stop-dfs.sh
stop-yarn.sh


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页