配置虚拟机CentOS
- 修改IP
cd /etc/sysconfig/network-scripts
sudo vim ifcfg-eth0
- 重启服务
sudo /etc/init.d/network restart
- 两台虚拟机使用相同的网卡,需要重新安装网卡
通过 ifconfig查看,虚拟机使用相同的网卡eth0,所以需要卸载,在vmware设置中移除[网络适配器],然后再点添加一个新的[网络适配器],再通过ifconfig查看 ,已经变成eth1了,再通过curl www.baidu.com 命令就能上网了
Hadoop
- 上传hadoop-1.2.1-bin.tar.gz 到服务器/usr/local/上,并解压tar -xvzf hadoop-1.2.1-bin.tar.gz
- 在 /usr/local/hadoop-1.2.1 目录下创建tmp目录,用于保存使用过程中产生的临时文件
- conf 目录下修改masters、slaves文件
在masters文件中添加一行 master
root@ubuntu238:/usr/local/hadoop-1.2.1/conf# cat masters
master
在slaves文件中添加两行 slave1 slave2
root@ubuntu238:/usr/local/hadoop-1.2.1/conf# cat slaves
slave1
slave2
- 修改core-site.xml文件
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-1.2.1/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
- 修改mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://master:9001</value>
</property>
</configuration>
- 修改hdfs-site.xml文件,配置数据在hdfs中存储的副本数,默认是3
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
- 修改hadoop-env.sh文件,添加环境变量
export JAVA_HOME=/usr/local/java
- 配置Hosts
192.168.111.38 master
192.168.111.39 slave1
192.168.111.40 slave2
- 修改hostname
Ubuntu
vim /etc/hostname
CentOS
vim /etc/sysconfig/network
hostname xxx #临时设定hostname为xxx
- 将hadoop配置后的文件复制到两台slave节点上
scp -rp hadoop-1.2.1 192.168.111.xx:/usr/local/
hosts文件和hostname分别配置
- 查看防火墙状态及关闭
service iptables status或iptables -L
/etc/init.d/iptables stop
-
设置selinux,网络传输过程中,防火墙和selinux都可能会导致意想不到的问题。 通过setenforce 0设置,设置完之后执行getenforce,结果应该为permissive。
-
ssh互信
对每台机器执行
ssh-keygen
cd ~/.ssh/ #进入这个目录下可以看到公钥和私钥文件。
cat id_rsa.pub >authorized_keys
将slave1和slave2中的公钥拷贝到master节点的authorized_keys中,然后将master节点的authorized_keys拷贝到slave1和slave2节点
-
格式化namenode:在bin目录下执行
./hadoop namenode -format
-
启动集群:
./start-all.sh
-
jps命令验证进程
-
验证hdfs是否可以用
./hadoopfs -ls / #查看当前hdfs下有啥
./hadoopfs -put /etc/passwd / #往集群中上传passwd文件
./hadoop fs-cat /passwd #读hadoop中的passwd文件
- 配置环境变量
vim ~/.bashrc
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export HADOOP_HOME=/usr/local/hadoop-1.2.1export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin