参考:
http://www.tuicool.com/articles/zUvy2m3
1.在 Ubuntu 下创建 Hadoop 用户组和用户
为了方便,我的ubuntu用户名就算hadoop,所以这一步可以跳过,hadoop用户组也不用添加。
需要给hadoop用户添加权限,打开/etc/sudoers文件,在Terminal中输入以下命令:
sudo gedit /etc/sudoers
回车后会打开一个文本编辑器,找到“root ALL=(ALL:ALL) ALL”这一行,在下面添加一行:
hadoop ALL=(ALL:ALL) ALL
设置完成后注销, 以下均使用Hadoop账户登录进行设置。
2.安装SSH
由于Hadoop用ssh通信,先安装ssh
sudo apt-get install openssh-server
ssh安装完成以后,先启动服务:
sudo /etc/init.d/ssh start
启动后,可以通过如下命令查看服务是否正确启动:
ps -e | grep ssh
作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:
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
3.安装hadoop
下载的是hadoop2.3.0,2.x最好在32位ubuntu下,64比较麻烦。
gedit ~/.bashrc设置环境,将下面加入:
|
然后再执行下面的命令使配置生效:
1 | |
4.配置单节点 (Single Node) 模式
接下来需要配置core-site.xml,hdfs-site.xml,yarn-site.xml三个文件。以上文件均位于hadoop安装文件夹的/etc/hadoop目录下。
- 配置core-site.xml
ctrl+alt+T打开Terminal,输入以下命令:
cd Hadoop-2.3.0 gedit etc/hadoop/core-site.xml
在打开的窗口中,按如下修改代码:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
<description>The name of the defaultfile system. Either the literal string "local" or a host:port forNDFS.
</description>
<final>true</final>
</property>
</configuration>
保存并关闭文本编辑器。
- 配置hdfs-site.xml
继续在Terminal中输入:
gedit etc/hadoop/hdfs-site.xml
在打开的窗口中,按如下修改代码:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoop/dfs/data</value>
</property>
</configuration>
保存并关闭文本编辑器。
- 配置yarn-site.xml
Hadoop 2.x有了YARN所以原来的mapred配置都转向yarn-site.xml文件中了,这里也就指定YARN。继续在Terminal中输入:
gedit etc/Hadoop/yarn-site.xml
在打开的窗口中,按如下修改代码:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- 配置日志输出方式,便于调试错误
export HADOOP_ROOT_LOGGER=INFO,console
- 格式化文件系统
cd hadoop-2.3.0
mkdir dfs/
mkdir dfs/name
mkdir dfs/data
./bin/hadoop namenode -format
- 启动服务
# HDFS(NameNode & DataNode)部分:
$ sbin
/hadoop-daemon
.sh start namenode
$ sbin
/hadoop-daemon
.sh start datanode
# MR(Resource Manager, Node Manager & Job History Server).部分:
$ sbin
/yarn-daemon
.sh start resourcemanager
$ sbin
/yarn-daemon
.sh start nodemanager
$ sbin
/mr-jobhistory-daemon
.sh start historyserver
# HDFS(NameNode & DataNode)部分:
$ sbin
/hadoop-daemon
.sh start namenode
$ sbin
/hadoop-daemon
.sh start datanode
# MR(Resource Manager, Node Manager & Job History Server).部分:
$ sbin
/yarn-daemon
.sh start resourcemanager
$ sbin
/yarn-daemon
.sh start nodemanager
$ sbin
/mr-jobhistory-daemon
.sh start historyserver
- 查看状态
./bin/Hadoop dfsadmin -report
看到以下字样表示一个数据节点OK
Datanodes available: 1 (1 total, 0 dead)
在浏览器里输入 http://127.0.0.1:50070/
能看到 Hadoop 服务启动
- WordCount测试
构造数据文件(file1.txt,file2.txt)
在Hadoop-2.3.0文件夹下面新建一个input文件夹,然后新建一个文本文件file1.txt,随便写上一些内容:
hello world
hello ray
hello Hadoop
再新建一个file2.txt,再随便写上一些内容:
Hadoop ok
Hadoop fail
Hadoop 2.3
把数据文件加入到 Hadoop 系统。
./bin/hadoop fs -mkdir /data
./bin/hadoop fs -put -f input/file1.txt input/file2.txt /data
运行 WordCount(java) 版本。
./bin/hadoop jar ./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.3.0-sources.jar org.apache.hadoop.examples.WordCount /data /output
查看结果。
./bin/hadoop fs -cat /output/part-r-00000
看到如下结果说明配置成功
2.3 1
fail 1
Hadoop 4
hello 3
ray 1
ok 1
world 1