1、 安装虚拟机和操做系统 node
VMware-workstation-full-10.0.0 下载vmware linux
ubuntu-13.04-server-amd64.iso 下载ubuntu apache
二、 设置root用户密码 ubuntu
sudo passwd root windows
注意 初始安装linux 问题: 初始安装ubuntu server后发现没法进入root,查了一下,若是想进入root账户,可使用安装时设置的非root账号的密码进入,使用空密码是进不去root账户的,进入root账户后就能够给root账户另设置一个密码了 执行:sudo passwd -u root # 来启用咱们的root帐户,若是你后悔了能够执行 sudo passwd -l root 来从新lock root用户。 网络
注意:sudo执行时输入的密码都是你当前用户的密码,不是root的密码。并且要保证你的用户具有了这种权限 配置文件在/etc/sudoers中。 app
而后给root建立一个密码:sudo passwd root #看准提示进行输入,root的密码最好和其余用户的密码不一样,否则会遇到一些麻烦。 ssh
如今root用户也不被禁用了,也有密码了,那么如何使用root进行登陆呢? 编辑器
3、 上传文件 分布式
利用WinSCP上传JDK和HADOOP文件,利用 putty链接虚拟机中的ubuntu,下载WinSCP, 下载putty, 下载jdk,(必定要注意版本号 32bit 仍是 64 bit)下载hadoop(我用的1.2.1)
问题: putty连不上linux,提示:Network error:Connection refused
注意:
执行
$sudo apt-get install openssh-server
安装ssh协议
执行ifconfig显示Ubuntu的ip地址
xp中用putty输入Ubuntu的ip用ssh协议远程登陆
4、 配置JDK和HADOOP
tar -xzvf jdk-7u40-linux-x64.tar.gz
tar -xzvf hadoop-1.2.1.tar.gz
sudo vi /etc/profile
增长:
export JAVA_HOME=/home/szy/jdk1.7.0_40
export PATH=$PATH:$JAVA_HOME/bin: /home/sun/hadoop-1.2.1/bin
source /etc/profile
5、配置HADOOP
配置主机名称及网络
vi /etc/hostname
指定名称为host001
vi /etc/hosts
替换内容为:192.168.137.128(这个是你的虚拟机分配给你的网段 ifconfig 能够看你的ip相关信息) host001
同时加入C:\Windows\System32\drivers\etc\hosts文件
查看是否启用IPV6:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
显示0说明ipv6开启,1说明关闭
关闭ipv6的方法:
sudo vi /etc/sysctl.conf
增长下面几行,并重启
#disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
配置SSH
cd /home/ysc
sudo apt-get install openssh-server
ssh-keygen -t rsa(密码为空,路径默认)
cp .ssh/id_rsa.pub .ssh/authorized_keys
ssh host001
yes
cd hadoop-1.2.1
配置HADOOP环境变量
vi conf/hadoop-env.sh
增长:
export JAVA_HOME=/home/szy/jdk1.7.0_40
配置HADOOP运行参数
vi conf/masters
改localhost为host001
vi conf/slaves
改localhost为host001
vi conf/core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://host001:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/szy/tmp</value>
</property>
vi conf/hdfs-site.xml
<property>
<name>dfs.name.dir</name>
<value>/home/szy/dfs/filesystem/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/szy/dfs/filesystem/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
vi conf/mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>host001:9001</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>4</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>4</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/szy/mapreduce/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/szy/mapreduce/local</value>
</property>
以上相关信息的定义你能够去网上查到 若是你们不是很喜欢用vi 编辑器 你们能够用上面的winscp 编辑相关属性 只是我的建议
格式化名称节点并启动集群
[plain] view plaincopy
1. $ cd hadoop-1.2.1
2. $ mkdir logs
3. $ bin/hadoop namenode -format
[plain] view plaincopy
1. $ cd hadoop-1.2.1
2. $ mkdir logs
3. $ bin/hadoop namenode -format
Bin/hadoop namenode -format
启动集群并查看WEB管理界面
Bin/start-all.sh
访问http://host001:50030能够查看 JobTracker 的运行状态
访问http://host001:50060能够查看 TaskTracker 的运行状态
访问http://host001:50070能够查看 NameNode 以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及 log 等
hadoop jar hadoop-1.2.1/contrib/streaming/hadoop-streaming-1.2.1.jar -inputinput -output output-streaming -mapper/bin/cat -reducer /usr/bin/wc
hadoop jar hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount input output
中止集群
stop-all.sh
Permission denied: user=Administrator, access=WRITE, inode="root":root:supergroup:rwxr-xr-x
此类错误说明本地用户administrator(本机windows用户)想要远程操做hadoop系统,没有权限引发的。
解决方法给相应没权限的目录设置下777权限。如给root目录设置权限
./hadoop fs -chmod 777 /user/root
若是出现:Unknown protocol to job tracker: org.apache.hadoop.hdfs.protocol.ClientProtocol 能够尝试下面解决方法
一、防火墙是否关掉
二、9001 9000的端口是否配置错误Host是Master的IP地址、9001是mapred.job.tracker端口、9000是fs.default.name的端口
三、重启EclipseIDE