1. 下载hadoop 压缩包, 拷贝到 /usr/hadoop目录下 tar -zxvf hadoop-2.7.1.tar.gz,
比如:
127.0.0.1 localhost
192.168.31.129 hadoop2
192.168.31.246 hadoop3
2. 进入 /usr/hadoop/hadoop-2.7.1/etc/hadoop 修改hadoop配置文件 hadoop-env.sh
1) 找到 export JAVA_HOME= ${JAVA_HOME} , 在底行模式输入(带:), :echo $JAVA_HOME 或命令模式下输入 echo $JAVA_HOME 查看当前
JAVA_HOME变量具体值, 然后将查看结果替换成如下:
export JAVA_HOME= /usr/java/jdk1.7.0_71
2) 配置SSH无密码登陆 ,
1. 在hadoop1中使用root用户输入以下命令设置本地无密码登陆
$ ssh-keygen 一路回车即可 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 这样就可以本机对本机进行ssh时免密了
2. 将公钥拷贝到其他机器上(hadoop2,hadoop3),
$ scp id_rsa.pub root@hadoop2:~/.ssh/
3. 在hadoop2中将拷贝过来的公钥追加到 authorized_keys 文件中, 就可以实现 root 免密登录了
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
这样就可以在hadoop1中免密码登陆到hadoop2 和Hadoop3 中了
4. 如果要普通用户之间可以进行免密登录,执行一下步骤
4.1 在hadoop1 中切换成普通用户登录, 如cmcc用户登录
4.2 执行 ssh-keygen 一路回车 这样就会在用户根目录中创建一个 .ssh 文件夹, 如: /home/cmcc/.ssh
4.3 进入目录 /home/cmcc/.ssh , 同样将id_rsa.pub 追加到本机 authorized_keys
$ cat id_rsa.pub >> authorized_keys
4.4 拷贝到其他机器上, 只不过这次不能使用 root 拷贝
$ scp id_dsa.pub cmcc@hadoop2:/home/cmcc/.ssh
4.5 进入 hadoop2 中,进入目录 /home/cmcc/.ssh
4.6 追加公钥到 authorized_keys 中
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
3. 修改 slaves
hadoop2
hadoop3
3. 如2. 修改core-site.xml文件
<configuration>
<property> <name>fs.defaultFS</name> <value>hdfs://127.0.0.1:9000</value> </property>
<property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> </property> </configuration>
4. 修SecondaryNameNode 在那台机器上启动
1. 修改 masters 文件(添加主机名列表), 添加 hadoop2 (如果没有这个文件就新建) 2. 修改 hdfs-site.xml 文件 添加: <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop2:50090</value> </property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
5. 如2. 修改hdfs-site.xml
<configuration>
<!-- 配副本的数量, 如果副本是3 那么包括自己共3份 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
6. 如2. 修改 mapred-site.xml , 当前文件夹中没有 这个文件 但是有 mapred-site.xml.template, 所以拷贝一份, 进行修改 cp mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 告诉 hadoop 以后MR 运行在yarn 上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7. 如2. 修改yarn-site.xml
<configuration> <!-- NodeManger 获取数据的方式是 shuffle 方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
<!-- 指定(resourcemanager) 的地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>127.0.0.1</value>
</property>
</configuration>
8. 将 hadoop 添加到环境变量, 运行 vim /etc/profile 添加 HADOOP_HOME 变量, 并且将它加入 path 中 如下:
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
9. 运行 source /etc/profile , 使环境变量生效
10. 初始化 HDFS (格式化文件系统) , 本命令会出现namenode进程无法启动, 查询了好多资料也不能启动, 最后使用 hadoop namenode -format (已过时)来
进行格式化,成功启动!!(进入bin目录下, 执行 ./hadoop namenode -format 进行格式化)
hdfs namenode –format
11. 将hadoop1 中的配置文件拷贝到 hadoop2 hadoop3 机器上,(进入 /home/hadoop/hadoop-2.7.1/etc/hadoop )下,执行
scp ./* root@hadoop3:/home/hadoop/hadoop-2.7.1/etc/hadoop
12. 进入 /usr/hadoop/hadoop-2.7.1/sbin 目录中,启动 HDFS和YARN 执行 ./start-all.sh 等待执行完毕, 再执行 jps 出现如下结果, 说明安装成功(确实启动项,
查看 /usr/hadoop/hadoop-2.7.1/logs 中日志)
29162 NodeManager
28845 SecondaryNameNode
29025 ResourceManager
29492 Jps
28581 DataNode
28435 NameNode
13. 但是当前 ./start-all.sh 已经过时, 使用 ./start-dfs.sh ./start-yarn.sh 分开启动,
14. 在浏览器中输入如下地址进行验证 (192.168.88.128 为本机地址)
http://192.168.88.128:50070 (hdfs 管理界面)
1)如果看不到活着的 datanode, 可以试图关闭防火墙:
2) 设置host, vi /etc/hosts, 将所有主机名和ip地址都写好
http://192.168.88.128:8088 (yarn 管理界面)
15. 修改 hadoop 中 ssh 链接端口 vi hadoop-env.sh
export HADOOP_SSH_OPTS="-p 16022"
16.参考: https://segmentfault.com/a/1190000009580427