1、条件准备
1.1 装Linux系统(CentOS)
1.2 配置网络连接
采用NAT模式设置静态IP,防止每次开机时IP地址变化,具体设置方式如:
1.3 VMware几种网络配置方式详解
1.4 Linux环境配置
1.4.1 添加用户
adduser hadoop //添加一个名为hadoop的用户
passwd hadoop //修改用户密码
1.4.2 赋予root权限
vi /etc/sudoers
修改 /etc/sudoers
文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL
修改完毕,现在可以用hadoop帐号登录,然后用命令 su - ,即可获得root权限进行操作。
1.4.3 修改主机名
vim /etc/sysconfig/network
1.4.4 修改IP(推荐有图形界面的直接在图形界面中点击编辑网络进行修改)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ###
HWADDR="00:0C:29:BF:45:8B"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="99339c27-0884-46c0-85d5-2612e5c1f149"
IPADDR="192.168.1.110" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.192.1.1" ###
重启网络连接生效:service network restart
1.4.5 修改主机名和IP的映射关系
vi /etc/hosts
192.168.1.110 Master
注销重新登陆生效。
1.4.6 关闭防火墙
查看防护墙状态
service iptables status
关闭
service iptables stop
查看防火墙开机启动状态
chkconfig iptables --list
关闭开机启动
chkconfig iptables off
2 安装JDK
上传JDK
添加执行权限
chmod u+x jdk-6u45-linux-i586.bin
解压
tar -zxvf jdk-6u45-linux-i586.bin
将java添加到环境变量
vim /etc/profile
在文件的末尾添加如下内容
export JAVA_HOME=/usr/java/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin
刷新配置
source /etc/profile
3、配置Hadoop
3.1上传hadoop包
3.2解压hadoop包
首先在根目录创建一个cloud目录
mkdir /cloud
解压
tar -zxvf hadoop-1.1.2.tar.gz -C /cloud/
3.3 配置hadoop伪分布式(要修改5个文件)
第一个:hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_45
第二个:core-site.xml
vim core-site.xml
<configuration>
<!-- 指定HDFS的namenode的通信地址 -->
<property>
<name>fs.default.name</name>
<value>hdfs://Master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存放目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/cloud/hadoop-1.1.2/tmp</value>
</property>
</configuration>
第三个:hdfs-site.xml
vim hdfs-site.xml
<configuration>
<!-- 配置HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第四个:mapred-site.xml
vim mapred-site.xml
<configuration>
<!--指定mapreduce运行模式为yarn-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
第五个:yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<!--指定主机名-->
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<!--指定nodemanager的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
3.4将hadoop添加到环境变量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.6.0_45
export HADOOP_HOME=/cloud/hadoop-1.1.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
//使配置文件生效
source /etc/profile
3.5格式化HDFS
hadoop namenode -format
3.6启动hadoop
start-dfs.sh(启动hdfs集群)
start-yarn.sh(启动yarn集群)
start-all.sh(启动所有的集群,包含上面两个)
3.7验证集群是否启动成功
jps(不包括jps应该有5个)
NameNode
SecondaryNameNode
DataNode
ResoureManager
NodeManager
在这个文件中添加linux主机名和IP的映射关系
C:\Windows\System32\drivers\etc
还可以通过浏览器的方式验证
http://192.168.1.110:50070 (hdfs管理界面)
http://192.168.1.110:50030 (mr管理界面)
3.8 hdfs验证
hdfs验证
通过网页访问hdfs
hdfs shell 命令
hdfs dfsadmin -report查看hdfs集群状态
put get mv rm的演示
3.9 验证YARN是否正常运行
进入/home/hadoop/app/hadoop-2.4.1/share/hadoop/mapreduce
下执行
hadoop jar hadoop-mapreduce-examples-2.4
.1.jar pi 5 5
查看集群是否正常运行。
3.9 解决hadoop无法启动datanode或者无法启动namenode
我们在使用 hadoop namenode -format 时,才会初始化一个name文件夹,
在启动datanode后,才会创建一个data目录,所以我使用的方法是,
把data目录清空,然后重新格式化namenode,再分别启动 hdfs 和yarn,就可以了!
5386 Jps
5351 NodeManager
5116 SecondaryNameNode
4866 NameNode
5255 ResourceManager
4956 DataNode
我这里用的这种方法,会导致数据的丢失。
4、一些HDFS常用的基本操作命令
HDFS上传文件命令: hadoop fs -put jdk-7u65-linux-i586.tar.gz hdfs://hadoop01:9000/
HDFS下载文件命令:hadoop fs -get hdfs://hadoop01:9000/jdk-7u65-linux-i586.tar.gz
为HDFS建立目录的命令:
hadoop fs -mkdir hdfs://hadoop01:9000/wordcount
为wordcount建立子目录:
hadoop fs -mkdir /wordcount/input
删除目录命令:
hadoop fs -rm -r /wordcount/input
查看命名大全:
hadoop fs --help
5、无密登陆
5.1 无密登陆原理
5.2 配置ssh免登陆
1、在各自的 /etc/hosts文件夹里加入对方的IP映射
vim /etc/hosts
172.25.11.100 Master
172.25.11.101 Slave1
2、生成ssh免登陆密钥
ssh-keygen -t rsa
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥),将公钥拷贝到要免登陆的机器上:scp id_rsa Slave1:~/home/.ssh
3、将对方的公钥追加到自己的授权列表中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4、免密登陆验证 ssh Slave1
6、复制镜像不能CentOS间联网问题的解决