第一部分,单机:
1.配置ssh
sudo apt-get install ssh
ssh-keygen //生成密钥
cd .ssh //进入密钥文件夹
cp id_rsa.pub authorized_keys //把公钥加入授权文件。
ssh localhost //进入localhost
who //检查ssh是否登录成功
sudo apt-get install rsync
2.配置hadoop配置文件。
1)hadoop-env.sh
配置JAVA_HOME为本机java根目录2)core-site.xml
复制hadoop/src/core/core-default.xml到hadoop/conf/下,改名为core-site.xml把fs.default.name的value值为 hdfs://localhost:9000 端口号可以自定义。
3)hdfs-site.xml
复制hadoop/src/hdfs/hdfs-default.xml到hadoop/conf/下,改名为hdfs-site.xml把dfs.replication的值为1
4)mapred-site.xml
复制hadoop/src/mapred/mapred-default.xml到hadoop/conf/下,改名为mapred-site.xml把mapred.job.tracker的值该为localhost:9001
3.启动hadoop
进入hadoop/bin目录。 ./hadoop namenode -format //格式化bin目录
./start-all.sh //启动hadoop
./hadoop dfsadmin -report //检验是否启动成功
http://localhost:50030 mapReduce的web页面
http://localhost:50070 hdfs的web页面
第二部分,集群:
1,准备2个服务器,分别为
机器名 ip地址 作用hadoop.main 192.168.1.102 NameNode,JobTracker,DateNode,TaskTracker
hadoop.slave 192.168.1.107 DateNode,TaskTracker
注:2台主机必须使用相同的用户名运行hadoop。
2,分别在这两个主机上,按照单机的安装方法,安装hadoop。
3,在/etc/hostname中修改主机名
在/etc/hosts中配置主机名和ip地址的对应关系。修改完之后要ping下所有主机名(包括本机)试试通不通。
4,设置无密码ssh登录。
将hadoop.main节点中的~/.ssh/id_rsa.pub文件拷贝到hadoop.slave节点的~/.ssh目录下,
然后再hadoop.slave的~/.ssh目录下运行:cat ./id_rsa.pub >> authorized_keys必须保证main主机可以免密码ssh登录所有slave主机
5,分别修改2台主机中的hadoop配置文件masters和slaves
main和slave所有主机的core-site.xml中fs.default.name设置为hdfs://hadoop.main:9000(主机)main和slave所有主机的mapred.xml中mapred.job.tracker设置为hadoop.main:9001
6,启动Hadoop
启动Hadoop集群需要启动HDFS集群和Map/Reduce集群。1)格式化一个新的分布式文件系统:
$ bin/hadoop namenode -format2)启动HDFS
在分配的NameNode上,运行下面的命令启动HDFS: $bin/start-dfs.sh
bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。
3)启动Map/Reduce
在分配的JobTracker上,运行下面的命令启动Map/Reduce:
$ bin/start-mapred.sh
bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动TaskTracker守护进程。
7,停止Hadoop
1)在分配的NameNode上,执行下面的命令停止HDFS:$ bin/stop-dfs.sh
bin/stop-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止DataNode守护进程。
2)在分配的JobTracker上,运行下面的命令停止Map/Reduce:
$ bin/stop-mapred.sh
bin/stop-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止TaskTracker守护进程。 bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动TaskTracker守护进程。