你的位置:首页 > Java教程

[Java教程]hadoop2.2环境配置


场景介绍:主机mac pro,安装了两台虚拟机,虚拟机均为Ubuntu系统

ubuntu系统配置jdk

1、到 Sun 的官网下载

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

2、解压所下载的文件

lixiaojiao@ubuntu:~/software$ tar -zxvf jdk-7u79-linux-x64.tar.gz

3、配置java环境变量

lixiaojiao@ubuntu:~/software$ vi ~/.bashrc 

 

跳至文件结束处

添加

export JAVA_HOME=/home/lixiaojiao/software/jdk1.7.0_79export CLASS_PATH=.:$CLASS_PATH:$JAVA_HOME/libexport PATH=.:$PATH:$JAVA_HOME/bin

如图所示

保存并退出

4、配置完毕后并没有立即生效,需要使用下面命令后生效

lixiaojiao@ubuntu:~/software$ source ~/.bashrc

 

5、验证是否配置成功,出现下面效果证明成功

lixiaojiao@ubuntu:~/software$ java -version

 

mac机器配置hadoop2.6.1环境(java环境之前已经配置)

1、解压hadoop下载文件

lixiaojiaodeMacBook-Pro:zipFiles lixiaojiao$ tar -zxvf hadoop-2.6.1.tar.gz 

2.本人将云计算相关的放入到目录中cloudcomputing,查看目录结构

3.设置ssh远程登录

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ssh-keygen -t rsa -P ""

执行以下命令

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

验证是否成功

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ssh localhost

出现下图,失败。。

原因是系统的ssh远程登录没有打开

首先在系统偏好设置->共享->远程登录,打开远程登录

再次执行命令

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ssh localhost

出现下图证明成功

3. 切换到etc目录中,查看配置文件

lixiaojiaodeMacBook-Pro:cloudcomputing lixiaojiao$ cd hadoop-2.6.1/etc/hadoop/

4.修改配置文件

切换到/Users/lixiaojiao/software/cloudcomputing/hadoop-2.6.1/etc/hadoop目录

(1) 配置core-site.

lixiaojiaodeMacBook-Pro:hadoop lixiaojiao$ vi core-site.

添加在

<configuration>

</configuration>中间增加如下配置

<property>  <name>fs.default.name</name>  <value>hdfs://localhost:9000</value></property>

(2) 配置yarn-site.

增加如下配置

<property>        <name>yarn.noCHdemanager.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>

(3) 创建和配置mapred-site.

<property>        <name>mapreduce.framework.name</name>        <value>yarn</value></property>

(4) 配置hdfs-site.

/Users/lixiaojiao/software/cloudcomputing/hadoop-2.6.1/中新建目录,hdfs/data和hdfs/name,并添加如下配置

<property>        <name>dfs.replication</name>        <value>1</value></property><property>        <name>dfs.namenode.name.dir</name>        <value>file:/Users/lixiaojiao/software/cloudcomputing/hadoop-2.6.1/hdfs/name</value></property><property>        <name>dfs.datanode.data.dir</name>        <value>file:/Users/lixiaojiao/software/cloudcomputing/hadoop-2.6.1/hdfs/data</value></property>

(5) 格式化hdfs

lixiaojiaodeMacBook-Pro:bin lixiaojiao$ ./hdfs namenode -format

出现下图

(6) 启动hadoop

切换到sbin目录下

lixiaojiaodeMacBook-Pro:bin lixiaojiao$ cd ../sbin/

执行

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ./start-dfs.sh 

执行

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ./start-yarn.sh 

浏览器打开 http://localhost:50070/,会看到hdfs管理页面

浏览器打开 http://localhost:8088/,会看到hadoop进程管理页面

 在第六部运行

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ./start-dfs.sh 

时候出现下面提示

computing/hadoop-2.6.1/logs/hadoop-lixiaojiao-secondarynamenode-lixiaojiaodeMacBook-Pro.local.out2015-10-18 10:08:43.887 java[1871:37357] Unable to load realm info from SCDynamicStore15/10/18 10:08:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicablelixiaojiaodeMacBook-Pro:sbin lixiaojiao$ 

原因为官方提供的lib目录中.so文件是在32位系统下编译的,如果是但是本人的mac机器是64位系统,需要自己下载源码在64位上重新编译,由于本人下载源码尝试了很久也没成功,最终放弃了,下载了牛人编译好的64位打包程序,地址位http://yun.baidu.com/s/1c0rfIOo#dir/path=%252Fbuilder,并下载这个正常的32位hadoop程序包,http://www.aboutyun.com/thread-6658-1-1.html,下载成功后,将下载的64位build文件中的native覆盖掉lib目录下的native文件,并重新按照上面的部分进行配置。

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ./start-all.sh 

当重新执行到上面的命令时候出现下面问题:

lixiaojiaodeMacBook-Pro:sbin lixiaojiao$ ./start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh2015-10-19 21:18:29.414 java[5782:72819] Unable to load realm info from SCDynamicStore

按照网上牛人的做法还是不行,最后只有换jdk,重新安装jdk

#export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Homeexport JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/

 验证是否成功

创建input目录

lixiaojiaodeMacBook-Pro:hadoop-2.2.0 lixiaojiao$ hadoop fs -mkdir -p input

将本地文件上传到hdfs文件系统中

lixiaojiaodeMacBook-Pro:cloudcomputing lixiaojiao$ hadoop fs -copyFromLocal README.txt input

出现下面新问题 

 

 将fs.default.name中的IP地址改为127.0.0.1。

切换到share/hadoop/mapreduce目录中执行下面语句

 hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount input output

执行下面命令看是否生成output目录

 hadoop fs -ls

执行下面命令查看具体结果

 hadoop fs -cat

 

因此本人为了方便直接将配置好的hadoop文件copy到其他的Ubuntu系统中,直接使用scp命令,需要Ubuntu系统中开启ssh

lixiaojiaodeMacBook-Pro:cloudcomputing lixiaojiao$ scp -r hadoop-2.2.0 lixiaojiao@192.168.31.126:/home/lixiaojiao/software

lixiaojiaodeMacBook-Pro:cloudcomputing lixiaojiao$ scp -r hadoop-2.2.0 lixiaojiao@192.168.31.218:/home/lixiaojiao/software

然后通过执行之上的wordcount程序验证是否成功