设为首页 收藏本站
查看: 3533|回复: 0

[经验分享] linux上部署hadoop集群系列 基础篇

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-22 08:19:38 | 显示全部楼层 |阅读模式
介绍这一系列博文介绍hadoop集群的部署和安装,因为hadoop确实比较复杂,所以分为几个部分来一一介绍。大致有基础篇,HA-QJM篇,Federation篇。

正文
一、操作环境

虚拟机4台,配置基于hadoop的集群中包括4个节点:1个Master,3个Salve,节点之间局域网连接,可以相互ping通,Ip分布为:
168.5.15.112 hadoop1(Master)
168.5.15.116 hadoop2(Slave)
168.5.15.207 hadoop3(Slave)
168.5.15.201 hadoop4(Slave)

操作系统为CENTOS/RHEL5.4 64bit

Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。

创建账户
使用root登陆所有机器后,所有的机器都创建hadoop 用户
useradd hadoop
passwd hadoop
此时在/home/ 下就会生成一个hadoop目录,目录路径为/home/hadoop

使用hadoop用户登录并创建相关的目录
定义安装包存放路径:/opt/
并给与足够的权限:chown 777 /opt
需要两个安装包:JDK和HADOOP安装包,两个都从apache官网上下载。
这里为jdk-8u25-linux-x64.rpm和hadoop-2.6.0.tar.gz,下载后放在/opt目录下,

安装JDK
1 rpm -ivh jdk-8u25-linux-x64.rpm,安装后JDK家目录默认在/usr/java/jdk1.8.0_25
2 配置环境变量,vi/etc/profile ,在行末尾添加
exportJAVA_HOME=/usr/java/jdk1.8.0_25
exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib/dt.jar
exportPATH=$JAVA_HOME/bin:$PATH
3  使配置立即生效
source /etc/profile
4  执行java -version 查看是否安装成功

修改主机名
1 连接到主节点168.5.15.112 ,修改network ,执行 vi/etc/sysconfig/network ,修改HOSTNAME=hadoop1
2 修改hosts 文件,vi/etc/hosts ,在行末尾添加:
168.5.15.112 hadoop1
168.5.15.116 hadoop2
168.5.15.207 hadoop3
168.5.15.201 hadoop4
3 执行hostname hadoop1
4 执行exit 后重新连接可看到主机名以修改OK
其他节点也修改主机名后添加Host, 或者host 文件可以在后面执行scp 覆盖操作

配置SSH无密码登陆
1  以hadoop用户在其中一台机器上执行命令ssh-keygen -t rsa 之后一路回车,
2在其他机器上创建目录:/home/hadoop/.ssh,并修改权限:chmod 700 /home/hadoop/.ssh
3 把~/.ssh/id_rsa.pub 分发到所有机器上(包括自己)
scp ~/.ssh/id_rsa.pub hadoop@{#IP}:~/.ssh/authorized_keys
4 修改权限:执行 chmod600 ~/.ssh/authorized_keys
5 若有必要请修改ssh配置文件

6 验证
ssh {#IP}
如果没有需要密码即可
7 注意:要确保任意两台机器都能够通过SSH无密码登陆对方

Hadoop安装
解压目录
tar zxvfhadoop-2.2.0.tar.gz
创建相应的数据存放目录:
mkdir -p /opt/hadoop-2.6.0/hdfs/name

mkdir -p /opt/hadoop-2.6.0/hdfs/data
mkdir -p /opt/hadoop-2.6.0/logs
mkdir -p /opt/hadoop-2.6.0/tmp

配置环境变量
vi /etc/profile
添加
exportHADOOP_HOME=/opt/hadoop-2.6.0
exportPATH=$PATH:$HADOOP_HOME/bin
exportPATH=$PATH:$HADOOP_HOME/sbin
exportHADOOP_MAPARED_HOME=${HADOOP_HOME}
exportHADOOP_COMMON_HOME=${HADOOP_HOME}
exportHADOOP_HDFS_HOME=${HADOOP_HOME}
exportYARN_HOME=${HADOOP_HOME}
exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
exportHDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
exportYARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop

生效配置:
source /etc/profile

进入/etc/hadoop目录中
cd/home/hadoop/hadoop/etc/hadoop

配置hadoop-env.sh
vi hadoop-env.sh

在末尾添加
exportJAVA_HOME=/usr/java/jdk1.8.0_25

slave配置
vi slaves
添加slave 的IP
168.5.15.116
168.5.15.201
168.5.15.207

编辑core-site.xml
vi core-site.xml
在configuration 节点里面添加属性
    <property>

        <name>hadoop.tmp.dir</name>

        <value>/opt/hadoop-2.6.0/tmp</value>

    </property>

    <property>

        <name>fs.default.name</name>

        <value>hdfs://10.9.214.151:9000</value>

    </property>

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>10.9.214.151</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

配置hdfs-site.xml
vi hdfs-site.xml
     <property>
             <name>dfs.namenode.name.dir</name>
                     <value>file:/opt/hadoop-2.6.0/hdfs/name</value>
                         </property>

    <property>
            <name>dfs.dataname.data.dir</name>
                    <value>file:/opt/hadoop-2.6.0/hdfs/data</value>
                        </property>

    <property>
            <name>dfs.replication</name>
                    <value>3</value>
                        </property>
    <property>



配置yarn-site.xml
<property>
<name>yarn.resourcemanager.address</name>
<value>10.9.214.151:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.9.214.151:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>10.9.214.151:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.9.214.151:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>10.9.214.151:18141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>



配置mapred-site.xml
     <property>
             <name>mapred.job.tracker</name>
                     <value>http://10.9.214.151:9001</value>
                         </property>



在一台机器上配置好后,把以下文件同步到其他机器:
/etc/profile,/etc/hosts,hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml

Hadoop启动
1 格式化集群,以下用hadoop用户执行
hadoop namenode -format

2 启动hdfs
执行
start-dfs.sh
开启hadoop dfs服务   

3 启动Yarn
开启yarn 资源管理服务
start-yarn.sh

4 验证hdfs
在namenode上执行jps看进程是否都已经启动了
[iyunv@hadoop1 hadoop]#jps
27113 ResourceManager
26387 SecondaryNameNode
26075 NameNode
27633 Jps

在datanode上查看
[iyunv@hadoop2 ~]# jps
8966 Jps
31822 DataNode
31935 NodeManager

验证是否可以登陆
hadoop fs -lshdfs://168.5.15.112:9000/
hadoop fs -mkdirhdfs://168.5.15.112:9000/testfolder
hadoop fs-copyFromLocal /testfolder hdfs://168.5.15.112:9000/testfolder(前提为本机已创建/testfolder目录)
hadoop fs -lshdfs://168.5.15.112:9000/testfolder

验证map/reduce
在master1 上,创建输入目录 :
hadoop fs -mkdirhdfs://168.5.15.112:9000/input

将一些txt文件复制到hdfs 分布式文件系统的目录里,执行以下命令
hadoop fs -put/test/*.txt hdfs://168.5.15.112:9000/input

在hadoop1 上,执行 HADOOP自带的例子,wordcount包,命令如下
cd$HADOOP_HOME/share/hadoop/mapreduce

hadoop jarhadoop-mapreduce-examples-2.2.0.jar wordcounthdfs://168.5.15.112:9000/input hdfs://168.5.15.112:9000/output

在hadoop1上,查看结果命令如下:
[iyunv@master1 hadoop]#hadoop fs -ls hdfs://168.5.15.112:9000/output
Found 2 items
-rw-r--r--   2 rootsupergroup          0 2012-06-29 22:59hdfs://168.5.15.112:9000/output/_SUCCESS
-rw-r--r--   2 rootsupergroup       16605 2012-06-29 22:59hdfs://168.5.15.112:9000/output/part-r-00000
[iyunv@hadoop1 hadoop]#hadoop fs -cat  hdfs://168.5.15.112:9000/output/part-r-00000即可看到每个单词的数量


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-41253-1-1.html 上篇帖子: hadoop+hive使用中遇到的问题汇总 下篇帖子: linux上部署hadoop集群 HA-QJM篇 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表