您的位置:首页 > 运维架构

Hadoop伪分布式环境搭建

2015-05-18 21:43 218 查看
准备Linux环境

1.0 设置虚拟机

Vmware情况下:

点击VMware快捷方式,右键打开文件所在位置 -> 双击 vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.8.0 子网掩码:255.255.255.0 -> apply -> ok

回到windows –> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.8.100 子网掩码:255.255.255.0 -> 点击确定

在虚拟软件上 –My Computer -> 选中虚拟机 -> 右键 -> settings -> network adapter -> host only -> ok

VirtualBox情况下:

此种情况下我桥接和hostonly模式都尝试了可以ping通,设置虚拟机网络:网卡1设置为桥接(为便于切换上网,同时可以与ping主机IP),混杂模式设置为:全部允许,对应虚拟主机IP设置为DHCP(为了和主机IP自动一个网段,因为连在同一台路由器);网卡2设置为hostonly模式,混杂模式设置为:全部允许,虚拟主机IP设置为手动,必须要与适配器VirtualBox适配器处在统一IP段,可以不与主机IP同段。注意:主机Windows防火墙一定设置为:关闭专用网络的防火墙

1.1 修改主机名

vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=cent01    ###


1.2 修改IP

两种方式:

第一种:通过Linux图形界面进行修改(强烈推荐)

进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.8.118 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply

第二种:修改配置文件方式(屌丝程序猿专用)

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="static"               ###
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR="192.168.8.118"           ###
NETMASK="255.255.255.0"          ###
GATEWAY="192.168.8.1"            ###


1.3 修改主机名和IP的映射关系

vim /etc/hosts

192.168.8.118   cent02


1.4 关闭防火墙

#查看防火墙状态

service iptables status


#关闭防火墙


service iptables stop


#查看防火墙开机启动状态


chkconfig iptables --list


#关闭防火墙开机启动


chkconfig iptables off


1.5 重启Linux

reboot


2.安装JDK

下载好后,开始准备安装(这里已经下载好了jdk-7u75-linux-i586.tar.gz):

2.1 首先查看系统是否已自带openjdk,

rpm -qa | grep java
or
rpm -qa | grep jdk


机器没有,继续往下

如果需要卸载的话

yum -y remove java-1.7*****


2.2 解压jdk

#创建文件夹

mkdir /usr/java


#解压


tar -zxvf jdk-7u75-linux-i586.tar.gz  -C  /usr/java/


2.3 将java添加到环境变量中

vim /etc/profile


#在文件最后添加


export JAVA_HOME=/usr/java/jdk1.7.0_75
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


#刷新配置


source /etc/profile


3.安装hadoop2.4.1

注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop

伪分布式需要修改5个配置文件

3.1 解压hadoop安装包

mkdir /usr/cloud


#解压到/cloud/目录下
tar -zxvf hadoop-2.4.1.tar.gz -C /usr/cloud


3.2 配置hadoop

第一个:hadoop-env.sh

vim hadoop-env.sh
#第27行
export JAVA_HOME=/usr/java/jdk1.7.0_75


第二个:core-site.xml

<!-- 制定HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://cent02:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/cloud/hadoop-2.4.1/tmp</value>
</property>


第三个:hdfs-site.xml

<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>


第四个:mapred-site.xml

(mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>


第五个:yarn-site.xml

<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>cent02</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>


3.3 将hadoop添加到环境变量

#配置环境变量
vim /etc/proflie
export JAVA_HOME=/usr/java/jdk1.7.0_65
export HADOOP_HOME=/itcast/hadoop-2.4.1 export   PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#刷新配置文件
source /etc/profile


3.4 格式化namenode(是对namenode进行初始化)

hdfs namenode -format (hadoop namenode -format 已过时)


3.5 启动hadoop

先启动HDFS
sbin/start-dfs.sh

再启动YARN
sbin/start-yarn.sh


3.6 验证是否启动成功

使用jps命令验证


27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode


http://192.168.8.118:50070 (HDFS管理界面) http://192.168.8.118:8088 (MR管理界面)


4.配置ssh免登陆

#生成ssh免登陆密钥
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa (四个回车)


执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上


cp ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 或
ssh-copy-id localhost
$ ssh-copy-id user@host


然后通过一下命令远程登录
$ ssh user@host
如果本地用户名与远程用户名一致,登录时可以省略用户名。
$ ssh host


—待续—
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: