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

 转载自:http://blog.csdn.net/evankaka  感谢原博主,今天在新搭建的16版桌面虚拟机上面尝试成功,但是还是得注意些细节不然容易报错。

一、JDK

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

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

编辑配置文件.bashrc:

vi .bashrc

在文件末尾追加:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #set java environment  
  2. export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65  
  3. export JRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre  
  4. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
  5. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH  

3环境变量生效
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. source ~/.bashrc  

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

二、安装SSH


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

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

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

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. ssh localhost  


登出:
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 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
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mv hadoop-2.7.2.tar.gz  /usr/hadoop/  
  2. tar -xzvf hadoop-2.7.2.tar.gz  

解压后文件:



2、配置环境变量
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. gedit ~/.bashrc  

将下面代码直接复制在最后
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #HADOOP VARIABLES START  
  2. export HADOOP_INSTALL=/usr/hadoop/hadoop-2.7.2  
  3. export PATH=$PATH:$HADOOP_INSTALL/bin  
  4. export PATH=$PATH:$HADOOP_INSTALL/sbin  
  5. export HADOOP_MAPRED_HOME=$HADOOP_INSTALL  
  6. export HADOOP_COMMON_HOME=$HADOOP_INSTALL  
  7. export HADOOP_HDFS_HOME=$HADOOP_INSTALL  
  8. export YARN_HOME=$HADOOP_INSTALL  
  9. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native  
  10. export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"  
  11. #HADOOP VARIABLES END  
注意设置好路径,最后关闭后再使用
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. source ~/.bashrc  
使环境变量生效

4 配置 文件hadoop-env.sh修改
修改 /usr/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh 在 export JAVA_HOME=${JAVA_HOME} 行前面插入如下内容
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. gedit hadoop-env.sh  

代码:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65  
  2. export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.2/etc/hadoop  

5、配置伪分布式

先在hadoop-2.7.2目录下新建一个文件夹tmp
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd  /usr/hadoop/hadoop-2.7.2  
  2. mkdir tmp  

5.1、配置 core-site.xml

切换至配置文件目录:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd /usr/hadoop/hadoop-2.7.2/etc/hadoop  

修改 /usr/hadoop/hadoop-2.7.2/etc/hadoop/core-site.xml 在 后面增加
代码:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. gedit core-site.xml  

添加
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <configuration>  
  2.     <property>  
  3.         <name>hadoop.tmp.dir</name>  
  4.         <value>file:/usr/hadoop/hadoop-2.7.2/tmp</value>  
  5.         <description>Abase for other temporary directories.</description>  
  6.     </property>  
  7.     <property>  
  8.         <name>fs.defaultFS</name>  
  9.         <value>hdfs://localhost:9000</value>  
  10.     </property>  
  11. </configuration>  

5.2、配置 hdfs-site.xml
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. gedit hdfs-site.xml  

添加
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <configuration>  
  2.     <property>  
  3.         <name>dfs.replication</name>  
  4.         <value>1</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>dfs.namenode.name.dir</name>  
  8.         <value>file:/usr/hadoop/hadoop-2.7.2/tmp/dfs/name</value>  
  9.     </property>  
  10.     <property>  
  11.         <name>dfs.datanode.data.dir</name>  
  12.         <value>file:/usr/hadoop/hadoop-2.7.2/tmp/dfs/data</value>  
  13.     </property>  
  14. </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
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <configuration>  
  2.   <property>  
  3.   <name>yarn.nodemanager.aux-services</name>  
  4.   <value>mapreduce_shuffle</value>  
  5.   </property>  
  6.   <property>  
  7.   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
  8.   <value>org.apache.hadoop.mapred.ShuffleHandler</value>  
  9.   </property>  
  10. </configuration>  
5.4、配置mapred-site.xml

从模板文件复制一个xml,

执行命令:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mv mapred-site.xml.template mapred-site.xml  

执行命令:
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. gedit mapred-site.xml  
将文件修改为
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <configuration>  
  2.  <property>  
  3.  <name>mapred.job.tracker</name>  
  4.  <value>localhost:9001</value>  
  5.  </property>  
  6. </configuration>  

6、配置完成后,执行格式化:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. hdfs namenode -format  

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



7、启动hadoop
启动hadoop所有的进程:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd /usr/hadoop/hadoop-2.7.2/sbin  
  2. start-all.sh(文件放在/usr/hadoop/hadoop-2.7.2/sbin)  

或者使用:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. start-dfs.sh   
  2. 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:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.7.0_79/bin/jps 1  
  2. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300  
  3. sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300  

8 停止 hadoop
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd /usr/hadoop/hadoop-2.7.2/sbin  
  2. stop-all.sh (文件放在/usr/hadoop/hadoop-2.7.2/sbin)  

或者使用:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. stop-dfs.sh  
  2. stop-yarn.sh  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值