Hadoop伪分布式模式 配置
环境:ubuntu 8.04.4 Hadoop1.0.2
参考师兄的博客:http://www.cnblogs.com/guoyuanwei/archive/2011/10/17/2215769.html
快速入门:http://hadoop.apache.org/common/docs/r0.19.2/cn/quickstart.html
1、安装软件
sudo apt-get install ssh
sudo apt-get install rsync
2、到hadoop-1.0.2文件夹下,找到conf文件夹,修改配置文件:
a)修改conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
b)修改conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
c)修改conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/gqy/hadoop</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/gqy/hadoop/data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/gqy/hadoop/name</value>
</property>
3、测试主机名
命令:hostname
查看主机名是否为localhost,如果不是请修改/etc/hostname文件内容为localhost。
hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是localhost,然后在/etc/hosts文件中进行映射,所以要看看/etc/hosts文件中的内容localhost对应的ip地址所否为本机
4、切换到root用户
sudo -s -H
5、配置ssh,使得本机ssh登录本机无密码
命令:ssh-keygen -t rsa
一直按enter,就会按默认的选项将生成的密钥对保存在.ssh/id_rsa文件中
再执行以下命令
cd /root/
cp .ssh/id_rsa.pub authorized_keys
然后执行
ssh localhost,可以实现用ssh连接并且不需要密码连接
如果不输入口令就无法用ssh登陆localhost,执行下面的命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
测试成功后,即连接无需输入密码。然后退出测试:
输入命令: exit
6、执行
格式化hadoop系统并启动
root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format
启动Hadoop守护进程:
bin/start-all.sh
终端显示信息:
starting namenode, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-namenode-localhost.out
localhost: starting datanode, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-datanode-localhost.out
localhost: starting secondarynamenode, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-secondarynamenode-localhost.out
starting jobtracker, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-jobtracker-localhost.out
localhost: starting tasktracker, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-tasktracker-localhost.out
注:执行第6步之前,可另开1个终端,查看正在运行的进程
ps -aux
执行第6步之后,会新增加5个进程。同时在/home/gqy/hadoop目录下会增加dfs目录
为了使用的方便,可以把bin/hadoop加入环境变量:
sudo gedit /etc/profile
export HADOOP_HOME = /usr/local/hadoop-1.0.2
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
输入完成后,再终端输入
source /etc/profile 让环境变量立即生效
OK!配置成功!~
使用Hadoop:
统计单词:
#pwd
/usr/local/hadoop-1.0.2
a、首先将本地文件系统上的 test-in 目录拷到 HDFS上(/user/gqy/),目录名改为 input.
上传命令: hadoop dfs -put test-in/ input
由于input是在HDFS文件系统中,所以在linux中,我们看不到,但可通过命令查看:
hadoop dfs -ls
输出结果为:
Found 1 items
drwxr-xr-x - gqy supergroup 0 2012-04-18 14:37 /user/gqy/input
b、执行统计运算:
hadoop jar hadoop-examples-1.0.2.jar wordcount input output
查看执行结果(将文件从 HDFS 拷到本地文件系统中再查看):
hadoop dfs -get output output
cat output/*
输出显示结果如下:
cat: output/_logs: Is a directory
bye 1
goodbye 1
hadoop 2
hello 2
world 2