1、 安装虚拟机和操作系统
VMware-workstation-full-10.0.0 下载vmware
ubuntu-13.04-server-amd64.iso 下载ubuntu
2、 设置root用户密码
sudo passwd root
注意 初始安装linux 问题: 初始安装ubuntu server后发现无法进入root,查了一下,如果想进入root帐户,可以使用安装时设置的非root帐号的密码进入,使用空密码是进不去root帐户的,进入root帐户后就可以给root帐户另设置一个密码了 执行:sudo passwd -u root # 来启用我们的root账户,如果你后悔了可以执行 sudo passwd -l root 来重新lock root用户。
注意:sudo执行时输入的密码都是你当前用户的密码,不是root的密码。而且要保证你的用户具备了这种权限 配置文件在/etc/sudoers中。
然后给root创建一个密码:sudo passwd root #看准提示进行输入,root的密码最好和其他用户的密码不同,不然会遇到一些麻烦。
现在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 可以尝试下面解决方法
1、防火墙是否关掉
2、9001 9000的端口是否配置错误Host是Master的IP地址、9001是mapred.job.tracker端口、9000是fs.default.name的端口
3、重启EclipseIDE