`
独自等待戈多
  • 浏览: 35438 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Hadoop单节点测试

阅读更多

1、安装JDK
从官方网站下载最新的JDK:
http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html
我是64位的Fedora15系统,下载的jdk-7-linux-x64.tar.gz。
解压缩到本地文件夹,环境变量稍后跟hadoop一起配置。

2、安装hadoop
从官方网站下载hadoop的最新版本:
http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-0.21.0/
我下载的Hadoop0.21.0版本,hadoop-0.21.0.tar.gz。
解压缩到本地文件夹。
修改/conf/hadoop-env.sh文件,添加JAVA_HOME,注意去掉前面的注释符号#
export JAVA_HOME="/home/wuxiaochao/PFiles/jdk1.7.0"

3、配置环境变量
修改profile文件
sudo vi /etc/profile
添加如下内容:
JAVA_HOME=/home/wuxiaochao/PFiles/jdk1.7.0
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
HADOOP_INSTALL=/home/wuxiaochao/PFiles/hadoop-0.21.0
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_INSTALL/bin
export JAVA_HOME
export CLASSPATH
export HADOOP_INSTALL
export PATH

验证:
查看jdk版本信息:java -version
查看hadoop版本信息:hadoop version

4、安装ssh
sudo yum install openssh
设置不用密码登录
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys


验证:
ssh localhost
错误:ssh: connect to host localhost port 22: Connection refused
可能是sshd服务没有启动,执行:service sshd start
若要配置ssh开机自动启动,可以修改rc.local文件
sudo vi rc.local
添加service sshd start即可

5、配置xml文件
1)gedit  conf/core-site.xml,添加内容如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/hadoop-/${user.name}</value>
</property>
</configuration>
2)gedit  conf/hdfs-site.xml,内容如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
3)gedit mapred-site.xml,内容如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>

6、启动hadoop服务
1)格式化hadoop:
hadoop namenode -format

错误:java.net.UnknownHostException,解决办法如下:
查看host名称,执行:hostname
这里Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是wuxiaochao,然后在/etc/hosts文件中进行映射的时候,没有找到,看下我的/etc/hosts内容:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
也就说,通过wuxiaochao根本无法映射到一个IP地址,所以报错了。
此时,我们查看一下/etc/sysconfig/network文件:
NETWORKING=yes
HOSTNAME=wuxiaochao
修改/etc/sysconfig/network中HOSTNAME的值为localhost,保证localhost在/etc/hosts文件中映射为正确的IP地址,然后重新启动网络服务:
service network restart

2)启动hadoop服务
bin/start-all.sh

3)查看服务状态
管理页面:http://localhost:50030/jobtracker.jsp
或者执行jps命令,会列出所有已启动的东西。

 

7、运行wordcount

1)准备测试文件

新建文本文件,随便输入英文内容,保存

 

2)将准备的测试文件上传到dfs文件系统中的firstTest目录下

hadoop fs -copyFromLocal /home/wuxiaochao/input-dir firstTest/input-dir

警告:hadoop dfs命令已经废弃,请使用hdfs命令,使用hdfs时提示hadoop common not found

解决办法,参照HADOOP-6953官方解释,添加HADOOP_HOME环境变量即可

于是修改/etc/profile添加HADOOP_HOME环境变量,内容和HADOOP_INSTALL一致

重新加载/etc/profile:source /etc/profile

查看HADOOP_HOME环境变量是否配置成功:export |grep HADOOP_HOME

停止Hadoop服务:/bin/stop-all.sh

启动Hadoop服务:/bin/start-all.sh

 

3)执行wordcount

hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount firstTest result

此语句意为“对firstTest下的所有文件执行wordcount,将统计结果输出到result文件夹中”,若result文件夹不存在则会自动创建一个

 

4)查看结果

hadoop fs -cat result/part-r-00000

结果文件默认是输出到一个名为“part-r-*****”的文件中的,可用指令“hadoop dfs -ls result”查看result目录下包含哪些文件

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics