Hadoop笔记:集群的虚拟搭建(版本1.2.1)

去除开机提示Host MSBus controller的错误
1、查明装入模块的确切名字
lsmod | grep i2c
显示输出的结果是模块的确切名字,如i2c_piix4、i2c_piix42等
2、将该模块列入不装入名单。编辑文件/etc/modprobe.d/blacklist.conf
在末尾加入
blacklist i2c_piix4
3、重新生成引导文件/boot/initrd.img
update-initramfs -u -k all
4、重新启动

修改root管理员密码:
sudo passwd root

获取root权限:su

虚拟集群搭建步骤:
预前准备:secureCRT jdk-7u45-linux-i586.gz hadoop-1.2.1-bin.tar.gz

文件目录删除:rm -rf r向下递归 f强行删除 删文件就-f

1:安装jdk
linux下载:wget (文件链接)
拷到linux随意目录,tar zxvf *.tar.gz

mv 文件(夹) /usr  (非必要操作)

修改/etc/profile文件,添加java环境变量
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 
·用文本编辑器打开/etc/profile 
·在profile文件末尾加入: 
export JAVA_HOME=/usr/jdk1.7.0_45
export PATH=.:$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
(linux内分隔符是:而不是;)

配置生效:source /etc/profile

2:虚拟机开启ssh服务,便于secureCRT登陆控制

sudo apt-get install openssh-server

(另补充:不用secureCRT的话可以安装客户端版ssh
sudo apt-get install openssh-client)

确认是否已启动:
ps -e |grep ssh
如果看到sshd就说明ssh-server已经启动了

如果没有,则可这样启动
sudo /etc/init.d/ssh start或者service ssh start

ssh-server配置文件/etc/ssh/sshd_config 可配置端口等

ssh免密码方式:
相关命令:
查权限:ls -l
查隐藏文件:ls -a

生成当前用户根目录下的.ssh文件夹(如/root或者/home/tony下):ssh-keygen -t rsa
添加免密码权限(例如root用户下),将生成的id_rsa.pub内容复制到.ssh目录下新建的文件authorized_keys中,:root@ServerTony:~/.ssh# scp ./id_rsa.pub ./authorized_keys
以后跨节点ssh若需要免密码也是将需要ssh控制的机器的id_rsa.pub内容复制到控制机的authorized_keys中,可查看authorized_keys内容所示。

3:安装hadoop

tar zxvf *.tar.gz

4:配置
vi hadoop-1.2.1/conf/hadoop-env.sh
修改java_home路径,指定hadoop的java路径,注意去掉注释!

vi hadoop-1.2.1/conf/core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://ServerTony:9000</value>指定节点服务器名,也可为ip,服务器名会在相应配置文件里面解析成ip
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/tony/hadoop-1.2.1/tmp</value>
</property>
注:tmp目录需自己新建:mkdir tmp;若不自己指定,默认系统的tmp目录,下次重启之后会自动清空,导致系统无法启动

vi hadoop-1.2.1/conf/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>数据备份数
</property>

vi conf/mapred-site.xml 指定jobtracker监听端口
<property>
<name>mapred.job.tracker</name>
<value>ServerTony:9001</value>
</property>

vi masters
vi slaves

vi /etc/hosts 添加主机名到ip的映射

5:集群分发,因为每一台配置基本都一样
srp -r ./hadoop-1.2.1 root@192.168.0.x:/home/tony
将hadoop-1.2.1复制到其他节点相同目录下

6:格式化namenode
root@ServerTony:/home/tony/hadoop-1.2.1# bin/hadoop namenode -format
出现successful即可

注意:主机名配置方法:/etc/hosts和/etc/hostname这两个都要配

7:启动hadoop
查看目前启动的java进程:/usr/jdk1.7.0_45/bin/jps
杀进程:kill -9 (进程号)

启动所有:bin/start-all.sh
停止所有:bin/stop-all.sh

显示,jps命令查看:
root@ServerTony:/home/tony/hadoop-1.2.1# jps
13196 Jps
12390 NameNode-----------------A
12907 JobTracker---------------A
13130 TaskTracker--------------B
12826 SecondaryNameNode--------A?stop虚拟集群的时候发现并不在master上
12604 DataNode-----------------B   A:master   B:slaves
注:由于只用了一台服务器,所以这些进程都显示在一台机器上。
若在同一台机器跑多个伪slaves,可以通过配置不同的datanode的监听端口和数据目录实现。


可能犯的错误:
a. 本机到本机的ssh免密码配置容易忘记

b. 防火墙关闭不彻底:
安装服务查看功能:apt-get install chkconfig
chkconfig命令查看当前系统开启服务
ssh连接失败:no route to host 原因是iptables没真正关闭

启动及关闭iptables
设置iptables开机启动
chkconfig iptables on
chkconfig iptables off
即时启动iptables
service iptables start
即时关闭iptables
service iptables stop
ubuntu中启动及关闭iptables
在ubuntu中由于不存在/etc/init.d/iptales文件,所以无法使用service等命令来启动iptables,因为ubuntu已经将其集成到内核里面,不是service,需要用modprobe命令。
启动iptables
modprobe ip_tables
关闭iptables(关闭命令要比启动复杂)
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
modprobe -r ip_tables
依次执行以上命令即可关闭iptables,否则在执行modproble -r ip_tables时将会提示
FATAL: Module ip_tables is in use.

ubuntu查看iptables状态:iptables -L



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值