|
Hadoop安装
三个节点创建相同的用户hadoop,Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和
分解任务的执行;
3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行;
在Hadoop启动以后,Namenode是通过SSH来启动和停止各个datanode上的各种守护进程的,所以就必须要配置无
密码登陆。
一、关闭IPTABLES和SELinux:
service iptables stop
chkconfig iptables off
vi /etc/selinux/config
SELINUX=disabled #修改为disabled
二、配置每台java环境
tar zxvf jdk-7u17-linux-x64.tar.gz
mv jdk-7u17-linux-x64 /usr/local/jdk
添加环境变量:
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/usr/local/zoo/hadoop
export PATH=$HADOOP_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export> export HADOOP_HOME_WARN_SUPPRESS=1
取消格式化時的告警export HADOOP_HOME_WARN_SUPPRESS=1
運行命令使其生效export JAVA_HOME> source /etc/profile
java --version #显示版本则配置成功
三、创建用户和配置密钥对认证
A.三个节点都要创建hadoop用户,而且uid一样并设置密码
useradd -u 600 hadoop
passwd 密码
B.登陆到master创建密钥对
su - hadoop
ssh-keygen -t rsa #一直回车
ls /home/hadoop/.ssh
id_rsa> 使用root修改/etc/ssh/sshd_config文件
将“#AuthorizedKeysFile .ssh/authorized_keys”前面的#号去掉
即,启用“AuthorizedKeysFile .ssh/authorized_keys”
(如果需要root也能ssh登录,把“#PermitRootLogin yes”前面的#号也去掉)
同样root账户下,/etc/rc.d/init.d/sshd restart重启sshd服务使之生效
C.登录master将公钥上传到两台slave
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys權限最低為644 chmod 644 authorized_keys
然後scp authorized_keys hadoop@hadoop-slave01:~/.ssh/authorized_keys
同樣修改其權限為兩台slave上authorized_keys權限為644
D.验证登陆
ssh hadoop@hadoop-master.hadoop.com #不用输入密码直接登陆两台slave上
ssh hadoop@hadoop-slave01.hadoop.com
ssh hadoop@hadoop-slave02.hadoop.com
ssh hadoop@hadoop-slave03.hadoop.com
四、安装Hadoop并将配置完整复制到slave机器上
1.下载:http://www.apache.org/dist/hadoop/core/hadoop-1.2.0/
tar zxvf hadoop-1.2.0.tar.gz
mv hadoop-1.2.0 /usr/local/hadoop
2.更改
vi /etc/profile
HADOOP_HOME=/usr/local/hadoop
PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME
source /etc/profile #生效变量
chown -R hadoop.hadoop /usr/local/hadoop #设置hadoop所属用户
五、修改集群配置(hadoop/conf)
1.配置masters和slaves主从节点
vi master:去掉localhost,加入master机器的IP:192.168.0.202
vi slaves:去掉localhost,加入slave所有机器的IP:192.168.0.203 192.168.0.204
2.vi hadoop-env.sh
1export JAVA_HOME=/usr/local/jdk #去掉注释,修改jdk路径
3.vi core-site.xml
fs.default.name
hdfs://192.168.0.202:9000
hadoop.tmp.dir
/usr/local/hadoop/tmp
fs.checkpoint.period
60
fs.trash.interval
1440
参数说明:
fs.default.name: 主节点名字和端口
hadoop.tmp.dir:存放master临时文件,需要手动创建,以后不能删除,不过如果删除了NameNode机器的此目
录,那么就需要重新执行NameNode格式化的命令。
fs.checkpoint.period: snn检查nn日志的时间周期,这里是60秒,生产环境建议12小时
4.vi mapred-site.xml
mapred.job.tracker
192.168.0.202:9001
参数说明:
mapred.job.tracker:master的主机(或者IP)和端口
5.vi hdfs-site.xml
dfs.data.dir
/usr/local/hadoop/hdfs/data1,/usr/local/hadoop/hdfs/data2
dfs.name.dir
/usr/local/hadoop/name1,/usr/local/hadoop/name2
dfs.replication
2
参数说明:
dfs.data.dir:DataNode存放块数据的本地文件系统路径
dfs.name.dir:NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录
列表时,nametable数据将会被复制到所有目录中做冗余备份。
dfs.replication:数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:
此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有
问题。
配置结束,使用scp命令把配置好的hadoop文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机
器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh
1 scp -r /usr/local/hadoop/ root@slave1/2.com:/usr/local/hadoop
六、启动hadoop
1.先格式化一个新的分布式文件系统(hadoop namenode -format)
2.启动hadoop节点(start-all.sh)
执行完后可以到master机器上
到/usr/local/hadoop/hdfs/data1、/usr/local/hadoop/hdfs/data2、/usr/local/hadoop/name1
和/usr/local/hadoop/name2四个目录。在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop
。
3.关闭hadoop节点
stop-all.sh
主节点关闭hadoop,主节点会关闭所有从节点的hadoop。Hadoop守护进程的日志写入到logs下。
七、测试
1.查看端口是否开启
netstat -tupln | grep 9000
netstat -tupln | grep 9001
2.访问master(NameNode)和slave(JobTracker)启动是否正常http://192.168.0.202:50070和50030
3.jps查看守护进程是否运行
master显示:Job Tracker JpsSecondaryNameNod NameNode
slave显示:DataNode Jps TaskTracker
4.查看集群状态统计信息(hadoop dfsadmin -report)
master和slave输入信息:
八、常用命令
hadoop dfs -ls #列出HDFS下文件
hadoop dfs -ls in #列出HDFS下某个文档中的文件
hadoop dfs -put test.txt test #上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才
算成功
hadoop dfs -get in getin #从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录
hadoop dfs -rmr out #删除HDFS上的out目录
hadoop dfs -cat in/* #查看HDFS上in目录的内容
hadoop dfsadmin -safemode leave #退出安全模式
hadoop dfsadmin -safemode enter #进入安全模式
九、添加一个新的节点
1.在新加的节点上安装hadoop,
2.修改hadoop/conf/master文件,加入 NameNode主机名,
3.在NameNode节点上修改hadoop/conf/slaves文件,加入新加节点主机名,
4.建立到新加节点无密码的SSH连接
5.运行启动命令:start-all.sh
6.http://master.node:50070,查看新增加的DataNode
|
|
|
|
|
|
|