Hadoop 环境搭建,
文章目录
- 配置Hosts 文件
- 配置无密码登录
- 配置Master无密码登录Salve
- 把公钥复制所有的Slave机器上
- 把master 的公钥追加到slave 的authorized_keys文件中
- 修改slave 机器的etc/ssh/sshd_config
- 在Master上安装 hadoop
- 配置hadoop
- 配置hadoop 环境变量
- 配置core-site.xml文件
- 配置hdfs-site.xml文件
- 配置mapred-site.xml文件
- 配置slaves文件
- 启动验证
- 用jps验证进程
配置Hosts 文件
"/etc/hosts"这个文件是用来配置主机的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。
192.168.244.130 localhost.master
192.168.244.128 localhost.slave
为了是修改生效 关闭NetworkManager
//永久关闭
chkconfig NetworkManager off
//临时关闭
chkconfig NetworkManager stop
配置无密码登录
Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。
//确保openssh 和 rsync 是否按装
//rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件
rpm –qa | grep openssh
rpm –qa | grep rsync
//如果没有用yum 安装
yum install ssh
yum install rsync
service sshd restart
配置Master无密码登录Salve
###Master机器上生成密码对
mkdir ~/.ssh
//直接回车
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
###设置SSH配置
修改etc/ssh/sshd_config文件
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启服务
service sshd restart
测试
ssh localhost
会有提示直接输入yes,回车 会有显示登陆成功
Are you sure you want to continue connecting (yes/no)? yes
把公钥复制所有的Slave机器上
命令格式为:scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/
scp ~/.ssh/id_rsa.pub root@localhost.slave:~/
把master 的公钥追加到slave 的authorized_keys文件中
如果slave 中没有~/.ssh 文件夹要先创建
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
注意 此时从master 上传到slave 的id_rsa.pub 可以删除
这里写代码片
修改slave 机器的etc/ssh/sshd_config
##配置Salve无密码登录Master
#安装Hadoop
下载,以hadoop-2.7.2.tar.gz 为例子。
在Master上安装 hadoop
修改/etc/sysconfig/network文件可以修改主机名字,文件中各个属性的含义如下:
NETWORKING 是否利用网络
GATEWAY 默认网关
IPGATEWAYDEV 默认网关的接口名
HOSTNAME 主机名
DOMAIN 域名
上传hadoop-2.7.2.tar.gz到 /usr/local 目录
tar -zxvf hadoop-2.7.2.tar.gz
mv hadoop-2.7.2 hadoop
配置hadoop
所有节点配置相同
以hadoop在/usr/local/hadoop下创建一下文件夹
mkdir /usr/local/hadoop/tmp
mkdir /usr/local/hadoop/dfs
mkdir /usr/local/hadoop/dfs/name
mkdir /usr/local/hadoop/dfs/data
配置hadoop 环境变量
在 /etc/profile 中添加如下设置
#set hadoop path
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
//重启"/etc/profile"
source /etc/profile
##配置hadoop-env.sh
此文件路径/usr/local/hadoop/etc/hadoop, 在文件中添加java home
如果已经在/etc/profile 中设置好JAVA_HOME 可以不用配置此文件
export JAVA_HOME=/usr/java/jdk1.8.0_73
配置core-site.xml文件
修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>A temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.244.130:9000</value>
</property>
</configuration>
备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。这就是要创建临时目录的目的。
配置hdfs-site.xml文件
修改Hadoop中HDFS的配置,配置的datanode默认为3。在这里设置为2。
1.x版本的masters文件配置是secondary namenode,2.x之后不需要这个文件了,直接在hdfs-site.xml中配置
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>secondary_namenode_host:9001</value>
</property>
</configuration>
配置mapred-site.xml文件
修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.244.130:9001</value>
</property>
</configuration>
配置slaves文件
添加slave 机器的主机名或IP
localhost.slave
master 机器配置完成,可以把安装文件拷贝到slave机器
scp -r /usr/local/hadoop root@localhost.slave:/usr/local/
启动验证
##格式化HDFS文件系统
hadoop namenode -format
##启动hadoop
在安装目录下运行如下命令
sbin/start-dfs.sh
sbin/hadoop-daemon.sh --script hdfs start datanode
sbin/hadoop-daemon.sh --script hdfs start namenode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start proxyserver
sbin/mr-jobhistory-daemon.sh start historyserver
注意:start-all 已经被废弃,其他启动脚本如下
用jps验证进程
master机器
slave机器