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

[经验分享] Centos6.5下的Hadoop安装

[复制链接]

尚未签到

发表于 2017-6-23 11:20:02 | 显示全部楼层 |阅读模式
  开始进行云计算部分的学习,为了存档,写下现在进行过的步骤
  需要用到的主要版本:
  虚拟机:Vmware Workstation pro 12.5
  Linux系统:CentOS6.4 64bit
  jdk版本:jdk1.8.0_111
  hadoop版本:hadoop-2.5.2
  所有的包均可以在官网下载
  在此次搭建环境中,主要是搭建了一个主节点,两个从节点,hostname分别是master,slave1,slave2
  地址设置为静态ip.图形化处理只需要改变右上角网络,
  192.168.66.111 master
  192.168.66.112  slave1
  192.168.66.113  slave2
  一、Vmware Workstation+Centos6.5的安装
  1.官网选择,安装版本12.5,输入序列号。
  2.安装好虚拟机后,安装centos6.5版本的Linux系统。进行相关的环境设置。主要设置如下:
  ①需要将网络连接NAT,改成host-only模式,右键centos系统,进行编辑。
  ②将网络设置成静态IP,以便后来进行相关的编程。
  ③设置DNS解析:
    使用 vim /etc/sysconfig/network 命令,进行相关更改。  将HOSTNAME的变量给成master
    设置节点映射,vim /etc/hosts.在文本的最后一行追加内容:192.168.66.111 master
    验证配置,执行ping master,如果能够ping通过。则表示,这个配置正确。(需要保证网络连通)
  同理,需要在其他节点设置相同。
  这一步可以颠倒顺序,先配置单机,再配置集群。或者先配置集群在配置单机。只需要注意克隆的顺序即可。但是均需要在hosts文件中,添加节点IP
  
  ④关闭防火墙
    命令setup ,选择firewall configuration,回车,之后进入设置按键,将*中按空格,取消。然后保存退出。
    命令service iptables status 验证防火墙是否关闭,如果提示not running则表示已经关闭。——这一步需要在root权限下进行,否则会没有提示
  ⑤设置SSH自动登录
    验证是否安装了SSH。命令 rpm -qa |grep ssh   若没有安装,则命令 yum install openssh-server
    配置SSH免密登录(在这个过程花费了很多时间,在这里写出来):
           ssh-keygen -t rsa 若有提示信息,直接进行回车,最后生成.ssh文件, 进入密钥目录,~/.ssh,命令:cp id_rsa.pub anthorized_keys 这个命令会生成授权文件:authorized_keys,然后使用 ls 命令,进行查看。
           同时,命令  vi /etc/ssh/sshd_config   删除下列文字:
DSC0000.png

  命令  service sshd restart   对其进行重新启动,以上的命令需要分别在三个机器中都实现
  然后输入命令: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
                     ssh slave1 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
              ssh slave2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
  我们需要在ssh目录中查看是否已经配置完成,每个主机上面的公钥和密钥都存放在一个文件夹中,这个很重要,会导致后面的配置是否需要密码。(注:所有的操作均在root权限下进行,也可以新建一个hadoop用户)
    cd ~/.ssh
  cat authorized_keys
DSC0001.png

  scp authorized_keys root@slave1:/root/.ssh/
  scp known_hosts root@slave1:/root/.ssh/
  scp known_hosts root@slave2:/root/.ssh/
  scp authorized_keys root@slave2:/root/.ssh/
  需要将所有的文件拷贝到每个需要配置的节点主机上。
    验证SSH无密码登录:
  执行命令   ssh slave1        后面不需要确认,若登录了,需要用命令:exit 进行退出。  再次使用命令ssh slave1之后可以看到登录信息。
  二、JDK的安装
  安装jdk文件。
DSC0002.png

  主要需要注意权限问题,以及目录问题。
  主要命令是
  1.改变文件的位置:mv,
  2.用命令chmod 777 jdk-8u111-linux-x64.rpm修改文件权限,双击它就自动解压安装了,安装完成后,在/usr目录下产生一个新的 java 文件夹
  3.设置环境变量
  vi打开文件命令:vi /etc/profile
  移至文件末尾插入一个空行:输入字母o
  输入以下配置信息:(注:这里的分隔符是冒号不是分号)
  JAVA_HOME=/usr/java/jdk1.8.0_111
  PATH=$JAVA_HOME/bin:$PATH
  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  export JAVA_HOME
  export PATH
  export CLASSPATH
  先按Esc退出编辑模式,再保存退出输入 :wq ! (冒号也要输入)
  至此,新的JDK环境设置完毕。
  4.卸载原JDK
  终端输入,查看gcj的版本号:rpm -qa|grep jdk
  得到结果:
  jdk-1.7.0_04-fcs.x86_64
  java-1.6.0-openjdk-1.6.0.0-1.49.1.11.4.el6_3.x86_64
  终端输入,卸载:yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.49.1.11.4.el6_3.x86_64
  等待系统自动卸载,最终终端显示 Complete,卸载完成
  5.让系统配置立即生效,不用重启系统
  终端输入命令:source /etc/profile
  6.验证是否安装完好
  输入命令java -version
DSC0003.png

  注意:如果出现以下错误信息






      • bash: /usr/java/jdk1.7.0_04/lib/dt.jar: 权限不够
      • bash: /usr/java/jdk1.7.0_04/lib/tools.jar: 权限不够


  • 错误原因:分隔符不能用;(分号),要用:(冒号)
  • CLASSPATH=.;$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
  • 这样写是不对滴,要这样写:
  • CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
  • PATH = $PATH;$JAVA_HOME/bin;也一样,通通用冒号分隔。
  三、安装Hadoop
   1.安装版本2.5.2版本,一定要下载rpm结尾的版本,进行相关的配置,也许其他也可以,但是没有找到配置文件
  2.解压文件。命令:tar -xzvf 文件名
  3.设置文件环境变量。 命令  vim /etc/profile    在文件的最后一行,命令 O 换行插入,增加以下内容:
  export HADOOP_HOME=/usr/program/hadoop-2.5.2
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
     执行命令   source /etc/profile
  4.验证Hadoop是否安装完好。
    命令 hadoop version   若出现如下语句,则说明安装成功。
DSC0004.png

  5.进行修改Hadoop的配置文件————有一点需要注意,Hadoop2.5.2与Hadoop1.0其他的版本不同地方在于,2.5的配置文件都在etc/hadoop文件中,而1.0版本的Hadoop的配置文件是在conf中。同时,后面需要改进的的mapred-site.xml.template文件,就是原来的mapred-site.xml文件。其他的地方就是后面的包的位置不同,以后用到的时候再说。
  ①.修改hadoop-env.sh及yarn-env.sh中的JAVA_HOME,与环境变量中的路径相同即可
  ②. cd /usr/program/hadoop-2.5.2/etc/hadoop
  进入配置路径,进行文件的配置   文件的打开方式 均用vi ,cat查看。而且首先需要在hadoop-2.5.2文件下创建一个目录,tmp,hdfs/data,hdfs/name,用来存储临时文件数据,和计算路径
    core-site.xml 



<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>The name of the default file system.  A URI whose
scheme and authority determine the FileSystem implementation.  The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class.  The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/program/hadoop-2.5.2/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- i/o properties -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>The size of buffer for use in sequence files.
The size of this buffer should probably be a multiple of hardware
page size (4096 on Intel x86), and it determines how much data is
buffered during read and write operations.</description>
</property>
</configuration>

  hdfs-site.xml



<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/program/hadoop-2.5.2/hdfs/name</value>
<description>Determines where on the local filesystem the DFS name node
should store the name table(fsimage).  If this is a comma-delimited list
of directories then the name table is replicated in all of the
directories, for redundancy. </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/program/hadoop-2.5.2/hdfs/data</value>
<description>Determines where on the local filesystem an DFS data node
should store its blocks.  If this is a comma-delimited
list of directories, then data will be stored in all named
directories, typically on different devices.
Directories that do not exist are ignored.
</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
<description>
The default block size for new files, in bytes.
You can use the following suffix (case insensitive):
k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
Or provide complete size in bytes (such as 134217728 for 128 MB).
</description>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>10</value>
<description>The number of server threads for the namenode.</description>
</property>
</configuration>

    mapred-site.xml.template



<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>The runtime framework for executing MapReduce jobs.
Can be one of local, classic or yarn.
</description>
</property>
<!-- jobhistory properties -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
<description>MapReduce JobHistory Server IPC host:port</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
<description>MapReduce JobHistory Server Web UI host:port</description>
</property>
</configuration>

  yarn-site.xml



configuration>
<!-- Site specific YARN configuration properties -->
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
<description>The address of the applications manager interface in the RM.</description>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The minimum allocation for every container request at the RM,
in MBs. Memory requests lower than this won't take effect,
and the specified value will get allocated at minimum.
default is 1024
</description>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<description>The maximum allocation for every container request at the RM,
in MBs. Memory requests higher than this won't take effect,
and will get capped to this value.
default value is 8192</description>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<description>Amount of physical memory, in MB, that can be allocated
for containers.default value is 8192</description>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<description>Whether to enable log aggregation. Log aggregation collects
each container's logs and moves these logs onto a file-system, for e.g.
HDFS, after the application completes. Users can configure the
"yarn.nodemanager.remote-app-log-dir" and
"yarn.nodemanager.remote-app-log-dir-suffix" properties to determine
where these logs are moved to. Users can access the logs via the
Application Timeline Server.
</description>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>

   vi slaves   编辑从节点,可以将主节点也作为从节点进行编辑。
      输入:master,slave1,slave2
  
  在保存完所有的设置后,我们需要同样配置其他从节点。可以硬复制,也可以将文件进行拷贝,从master到slave1,slave2
  输入命令:scp -r  /usr/program/hadoop-2.5.2/etc/hadoop/  root@slave1:~/hadoop/hadoop-2.5.2/etc/
  scp -r  /usr/program/hadoop-2.5.2/etc/hadoop/  root@slave2:~/hadoop/hadoop-2.5.2/etc/
  scp -r  /etc/profile  root@slave1:/etc/profile
  scp -r  /etc/profile  root@slave2:/etc/profile
  完成情况如下所示:
DSC0005.png

  所有的情况都已经配置完毕
  现在首先需要对Hadoop进行系列的格式化:
  hadoop namenode -format  格式化namenode,
  
  start-dfs.sh
  
   DSC0006.png
  start-yarn.sh
DSC0007.png

  成功搭建单机模式
DSC0008.png

DSC0009.png




DaemonWeb InterfaceNotes

NameNode
http://nn_host:port/
Default HTTP port is 50070.


ResourceManager
http://rm_host:port/
Default HTTP port is 8088.


MapReduce JobHistory Server
http://jhs_host:port/
Default HTTP port is 19888.
  这样基本搭建已经完成,形成节点之间的连接。接下来开始配置hadoop和eclipse之间的联系,同时会解决遇到的困难。进行相关的配置问题

运维网声明 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-387276-1-1.html 上篇帖子: 用户空间和内核空间通讯之【系统调用】 下篇帖子: 网络安全、Web安全、渗透测试之笔经面经总结(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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