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

[经验分享] Centos7中hadoop配置

[复制链接]

尚未签到

发表于 2017-12-17 06:46:23 | 显示全部楼层 |阅读模式
Centos7中hadoop配置

1.下载centos7安装教程:
  http://jingyan.baidu.com/article/a3aad71aa180e7b1fa009676.html
  (注意,到如下图这一步的时候,要注意,选择图形界面安装,并且勾选如图2两个选项,才会有自带的浏览器。)
DSC0000.png DSC0001.png

2.修改主机名
2.1CentOS7以下的版本修改主机名的方法
  CentOS7以下的系统(包括CentOS6~CentOS6.5),我们通过修改HOSTNAME的方式即可得到想要的效果。如下所示,localhost是当前主机名,将其修改成了cjh141304092
[iyunv@localhost ~]# vim /etc/sysconfig/network

  1 # Created by anaconda
  2 NETWORKING_IPV6=no
  3 PEERNTP=no
  4 GATEWAY=115.29.207.247
  5 HOSTNAME=typecodes
[iyunv@localhost ~]# hostname cjh141304092

[iyunv@cjh141304092 ~]#

2 .2CentOS7以及CentOS7.1版本修改主机名的方法
  目前CentOS的最高版本是CentOS7.1,有较多CentOS6系列能使用的命令都不能使用或者做了有些改动。例如,在CentOS7或者CentOS7.1系统中,直接使用上面的方法修改主机名,最后都是没有效果的。它已经被简化为下面这条命令:
[iyunv@localhost ~]# hostnamectl set-hostname cjh141304092

[iyunv@cjh141304092 ~]#

  此方法无需重启直接生效。如果没有,关掉终端然后在打开即可。
2.3域名映射
  进入root模式,然后用命令:vi /etc/hosts修改域名映射地址。
  如:192.168.0.53是主机cmaster的ip地址,那么就要在hosts文件中添加,格式为:
  ip地址(空格隔开)主机名
  192.168.0.53 cmster
  然后保存并退出,注意,每台子节点的主机都要配置主节点的域名映射
3关闭防火墙
  在root权限下执行以下两条指令,关闭防火墙并阻止其开机启动。
  systemctl stop firewalld.service#停止firewall
  systemctl disable firewalld.service#禁止firewall开机启动
DSC0002.png

4.安装jdk
  将之前下载好的jdk复制到虚拟机中的/home/hadoop/目录下,(也就是用户根目录下)
  使用命令rpm –ivh /home/joe/jdk-8u101-linux-x64.rpm解压安装
  安装完成后使用javac命令测试jdk是否安装成功,如果出现了如下图提示,说明安装jdk成功。(jdk可以在windows下下载好后用u盘传入到虚拟机中,然后执行安装)
DSC0003.png

  验证:
DSC0004.png

5.ssh免密登录
  exit                             # 退出刚才的 ssh localhost
  cd ~/.ssh/                        # 若没有该目录,请先执行一次ssh localhost
  ssh-keygen -t rsa                   # 会有提示,都按回车就可以
  cat ./id_rsa.pub >> ./authorized_keys   # 加入授权
  ssh-keygen -t rsa生成注册码,然后根目录下就会产生一个.ssh文件,用ls -a命令可查看。
DSC0005.png

DSC0006.png

  将.ssh目录下生成的id_rsa.pub文件最追加生产到authorized_keys文件中。(此文件原来没有,执行命令后会自动生成,如下图)
DSC0007.png

  验证是否可以免密登录:出现如下情况则表示成功
DSC0008.png

  以上步骤只是允许本机免密登录。但是要从另外一台机器上登录的话,还需要将另外台机器的id_rsa.pub公钥发送到要登录的那台机器上。例如A机器要ssh免密登录B机器的话,就要将上述生成的A本机器的id_rsa.pub公钥,发送到B机器用户根目录下。
  用命令:scp ~/.ssh/id_rsa.pub hadoop@192.168.0.53:~/
DSC0009.png

  命令格式如下:
  scp 要发送的文件路径 目的机用户名@目的主机名(或者主机ip地址):目的机存放路径
  发送成功后会发现目的主机用户目录下就会出现相应文件,如下图。
DSC00010.png

  然后用cat ~/id_rsa.pub >> ~/.ssh/authorized_keys命令将文件追加到authorized_keys文件的内容后面。文件内容如下:
DSC00011.png

  authorized_keys内容变成这样表示成功了。
  然后用同样的步骤,将B机器的id_rsa.pub公钥传到A机器上。如果有三台机器,要互相访问的话,那么三台机器两两要配置,然后每台机器都执行以下命令,修改authorized_keys权限,这很重要,如果出现奇怪的错误表示,权限问题。
DSC00012.png

  chmod 700 ~/.ssh
  公钥复制完成后,将目的每台机器的sshd_config文件做如下配置:
DSC00013.png

  进入root权限才能修改:做如下修改:只需找到这三句话,然后将前面的#号去掉即可。然后保存退出。
DSC00014.png

  然后用exit退出root用户,用普通用户重启ssh服务,尝试ssh localhost登录,没让输入密码即表示成功了:
DSC00015.png

  在另外一台机器上尝试登录,无需密码直接登录则表示成功了。
DSC00016.png

6.解压hadoop并做配置
  将下载好的 hadoop-3.0.0-alpha1.tar.gz,放到/home/hadoop目录下,然后用tar -zxvf hadoop-3.0.0-alpha1.tar.gz命令解压到当前目录下。(下载的时候注意不要下载成hadoop-3.0.0-alpha1.src.tar.gz这个是资源文件并不是我们要的配置文件压缩包)
  下载链接:
  http://112.5.240.8/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/mirrors.cnnic.cn/apache/hadoop/common/hadoop-3.0.0-alpha1/hadoop-3.0.0-alpha1.tar.gz
  解压:
DSC00017.png

  解压完成后出现如下目录
DSC00018.png

  我们需要配置的文件如下:
DSC00019.png

6.1hadoop文件配置
  这是配置的主节点,其余子节点的配置要和主节点配置一模一样,否则可能会出现主节点启动了所有子节点的datanode,但是在浏览器查看节点信息的时候只有主节点一个,其余节点启动了却看不到信息。所以只要把这些配置文件复制到每个子节点即可。
6.1.1.配置hadoop-env.sh
  原来前面有#号,将#号注释去掉,可以通过图形界面编辑,也可以通过vi编辑器编辑。
DSC00020.png

6.1.2.配置core-site.xml文件
  <configuration>
  <property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop/hdfs/tmp</value>
  </property>
  <property>
  <name>fs.defaultFS</name>
  <value>hdfs://cjh141304092:9000</value>
  </property>
  <property>
  <name>fs.default.name</name>
  <value>hdfs://cjh141304092:9000</value>
  </property>
  <property>
  <name>hadoop.native.lib</name>
  <value>true</value>
  <description>Should native hadoop libraries, if present, be used.</description>
  </property>
  </configuration>
6.1.3.配置hdfs-site.xml文件
  <configuration>
  <property>
  <name>dfs.http.address</name>
  <value>cjh141304092:50070</value>
  </property>
  <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>cjh141304092:50090</value>
  </property>
  <property>
  <name>dfs.replication</name>
  <value>2</value>
  </property>
  <property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/home/hadoop/hdfs/name</value>
  </property>
  <property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/home/hadoop/hdfs/data</value>
  </property>
  </configuration>
6.1.4.配置mapred-site.xml
  文件中没有mapred.xml文件,所以将mapred-site.xml.template重命名成mapred-site.xml,
  编辑etc/hadoop/mapred-site.xml:
  <configuration>
  <property>
  <name>mapred.job.tracker</name>
  <value>cjh141304092:9001</value>
  </property>
  <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
  </property>
  <property>
  <name>mapreduce.jobhistory.address</name>
  <value>cjh141304092:10020</value>
  </property>
  <property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>cjh141304092:19888</value>
  </property>
  </configuration>
6.1.5.配置yarn-site.xml
  <configuration>
  <property>
  <name>yarn.resourcemanager.address</name>
  <value>cjh141304092:8032</value>
  </property>
  <property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>cjh141304092:8030</value>
  </property>
  <property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>cjh141304092:8088</value>
  </property>
  <property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>cjh141304092:8031</value>
  </property>
  <property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>cjh141304092:8033</value>
  </property>
  <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
  </property>
  <property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>cjh141304092</value>
  </property>
  </configuration>
6.2配置hadoop环境变量
  etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。
  /etc/bashrc: 当 bash shell 被打开时,该文件被读取。也就是说,每次新打开一个终端 shell,该文件就会被读取。
  接着是与上述两个文件对应,但只对单个用户生效:
  ~/.bash_profile 或 ~/.profile: 只对单个用户生效,当用户登录时该文件仅执行一次。用户可使用该文件添加自己使用的 shell 变量信息。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系统一般是 ~/.profile 文件。
  ~/.bashrc: 只对单个用户生效,当登录以及每次打开新的 shell 时,该文件被读取。
  此外,修改 /etc/environment 这个文件也能实现环境变量的设置。/etc/environment 设置的也是全局变量,从文件本身的作用上来说, /etc/environment 设置的是整个系统的环境,而/etc/profile是设置所有用户的环境。有几点需注意:
  系统先读取 etc/profile 再读取 /etc/environment(还是反过来?)
  /etc/environment 中不能包含命令,即直接通过 VAR="..." 的方式设置,不使用 export 。
  使用 source /etc/environment 可以使变量设置在当前窗口立即生效,需注销/重启之后,才能对每个新终端窗口都生效。
  通过以下两条命令在系统中添加环境变量:其中HADOOP_HOME的路径为hadoop解压文件目录路径。
[iyunv@cjh1413040 hadoop]# export HADOOP_HOME=/home/hadoop/hadoop-3.0.0-alpha1

[iyunv@cjh1413040 hadoop]# export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

[iyunv@cjh141304092 hadoop]# . /etc/profile #使环境变量立即生效。

  操作如下图:
DSC00021.png

  红框中的是验证hadoop是否安装成功,当出现如上信息的时候就是成功了。
  注意:
  以上两条环境变量的语句如果是以命令的形式执行的话,环境变量的有效期是有限的,当命令终端关闭之后,有效期结束,下次还得继续配置,为了永久有效,我们就要将其写入/etc/profile文件中和~/.bashrc文件中。如下图:
DSC00022.png

  因为这个文件需要root权限才能更改所以我们切换到root模式去修改文件。
DSC00023.png

  进入vi编辑界面,按i开始输入,输入完成后按esc键,然后输入“:wq”保存并退出,输入的“:wq”在界面左下角。
DSC00024.png

  当写入~/.bashrc的时候要在hadoop用户模式下,因为这个文件是只有用户才能读取的。每个用户独立
6.3hdfs格式化
  通过命令:hdfs namenode -format
DSC00025.png

  当出现如下successfully formatted表示格式化成功了
DSC00026.png

6.4启动start-dfs.sh
DSC00027.png

  用jps查看启动的任务如下:
DSC00028.png

6.5启动start-yarn.sh
DSC00029.png

  start-yarn.sh又启动了两个任务节点,然后用jps查看
6.6浏览器验证
  当成功启动以上的任务之后,就能打开如下网页了,
  路径格式为:http://主机名:8080
DSC00030.png

DSC00031.png

  这是第二个网页,端口号为50070
DSC00032.png

  50070可以看到HDFS的相关信息,8088可以看到Yarn的相关信息。
  至此。hadoop环境搭建完成。其余节点配置一样。
7.测试案例:wordcount
7.1创建数据源文件
  我们在hadoop-2.6.0根目录下创建一个file文件,然后在文件中写入任意内容:我在此处新建了两个:
DSC00033.png

7.2将文件上传到hdfs.
  首先创建input文件夹,
DSC00034.png

  将刚才的两个mytest文件上传到input文件夹中,然后查看是否上传成功
DSC00035.png

  要查看hdfs文件也可登录50070的网页查看:
DSC00036.png

7.3运行hadoop自带的example示例:
DSC00037.png

  命令格式为:
  hadoop jar 要执行的jar包 要执行的函数 数据文件目录 输出结果目录
  执行进度可以在8088页面查看:
DSC00038.png

  查看统计结果:
DSC00039.png

8.windows向linux发送文件
  PuTTY小巧方便。但若需要向网络中的Linux系统上传文件,则可以使用PuTTY官方提供的PSCP工具来实现上传。PSCP基于ssh协议实现,其用法与SCP命令非常类似。
  下载pscp后运行:
DSC00040.png

  也可以将他添加到环境变量中,
  然后向linux服务器上传文件:
DSC00041.png

  命令格式为:
  pscp 本地文件路径 目的主机用户@目的主机ip或者主机名(有做域名映射的话主机名才有效) :要存放的目录

运维网声明 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-424894-1-1.html 上篇帖子: Hadoop入门第二篇 下篇帖子: Hadoop-2.7.2集群的搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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