---恢复内容开始---
一,linux下的准备工作
1,修改主机名:
vi /etc/sysconfig/network
2,修改ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0
3,修改主机名和ip的映射
vi /etc/hosts
192.168.145.109 eddy01 192.168.145.110 eddy02 192.168.145.111 eddy03 192.168.145.112 eddy04 192.168.145.113 eddy05 192.168.145.114 eddy06 192.168.145.115 eddy07
4,关闭防火墙
5,在生产坏境中,操作linux不可能用root用户,最好添加一个普通的用户
useradd eddy
password eddy
6,给eddy用户添加sudo指令,
vi /etc/sudoers
7,查看是否有java环境
8,配置JAVA_HOME环境变量
vi /etc/profile
source /etc/profile
9,ssh的免密登录
ssh-keygen
不要忘了在使用hadoop命令中的start-all.sh命令需要给自己一个免密登录公钥
ssh-copy-id eddy02
二,hadoop集群
规划:
1,eddy01 namenode resourcemanager
2,eddy02 datanode nodemanager
3,eddy02 datanode nodemanager
4,eddy02 datanode nodemanager
执行:
1,在eddy01中的/home/eddy/中mkdir一个apps
mkdir/home/eddy/apps
2,在apps中解压java和hadoop
[eddy@eddy01 ~]$ cd apps/ [eddy@eddy01 apps]$ ll total 8 drwxrwxr-x. 11 eddy eddy 4096 Mar 28 23:14 hadoop-2.6.4 drwxr-xr-x. 8 eddy eddy 4096 Mar 28 22:38 jdk1.7.0_79
3,在/etc/profile中添加JAVA_HOME和HADOOP_HOME环境变量
export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # By default, we want umask to get set. This sets it for login shell # Current threshold for system reserved uid/gids is 200 # You could check uidgid reservation validity in # /usr/share/doc/setup-*/uidgid file if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done unset i unset -f pathmunge JAVA_HOME=/home/eddy/apps/jdk1.7.0_79 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH export HADOOP_HOME=/home/eddy/apps/hadoop-2.6.4 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4,分别拷贝/etc/profile文件到其它三台主机上
scp /etc/profile eddy@eddy02:/etc/
scp /etc/profile eddy@eddy03:/etc/
scp /etc/profile eddy@eddy04:/etc/
5,配置hadoop配置文件
cd /home/eddy/apps/hadoop-2.6.4/etc/hadoop
1,hadoop-env.sh中添加java环境变量
export JAVA_HOME=/home/eddy/apps/jdk1.7.0_79
2,vi core-site.xml
<configuration> <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://eddy01:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/home/eddy/apps/hadoop-2.6.4/tmp</value> </property> </configuration>
3,hdfs-site.xml
<configuration> <!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.secondary.http.address</name> <value>eddy01:50090</value> </property> </configuration>
4,mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
<configuration> <!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.secondary.http.address</name> <value>eddy01:50090</value> </property> </configuration>
5, yarn-site.xml
<configuration> <!-- 指定YARN的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>eddy01</value> </property> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- Site specific YARN configuration properties --> </configuration>
6,以eddy用户的身份cp到其它三台主机上。
注意:⚠️如果用root用户cp会出现hadoop在启动的时候权限访问的问题,
scp -r /home/eddy/apps eddy@eddy02:/home/eddy/
scp -r /home/eddy/apps eddy@eddy04:/home/eddy/
scp -r /home/eddy/apps eddy@eddy03:/home/eddy/
7,格式化namenode
hdfs namenode -format (hadoop namenode -format)
8,启动dfs分布式文件系统
hadoop-daemon start namenode
9,在其它三台主机上启动datanode
hadoop-daemon.sh start datanode
10查看页面
http://eddy01:50070/
关闭进程
hadoop-daemon stop namenode
hadoop自动化启动脚本的说明:
1,上述中,只有三个节点,但是如果还有更多,就需要自动化启动
如:start-all.sh
start-dfs.sh
start-yarn.sh
这里说明一下/home/eddy/apps/hadoop-2.6.4/etc/hadoop中的slaves文件,
eddy01
eddy02
eddy03
eddy04
当使用start-all.sh启动的时候会ssh到slaves文件中的主机上启动namenode,resourcemanager等进程。
---恢复内容结束---