hadoop搭建二:伪分布式
说明:搭建hadoop伪分布式,单纯以学习hadoop为目的。
版本:VMware 15 + CentOS 7 + Hadoop 2.6 + Java 8 + putty + win 10
系列:
一,网络配置
1,查看主机名,修改为master
[hadoop@master ~]$ sudo vi /etc/hostname

2,查看IP地址,修改IPADDR为192.168.100.100
[hadoop@master ~]$ sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

3,配置hosts文件
[hadoop@master ~]$ sudo vi /etc/hosts
在文件下面添加
192.168.100.100 master

4,重启网络
[hadoop@master ~]$ sudo systemctl restart network
5,测试,ping 3次master
[hadoop@master ~]$ ping master -c 3
二,SSH连接
1,查看SSH
[hadoop@master ~]$ rpm -qa | grep ssh
2,更新SSH
[hadoop@master ~]$ sudo yum install openssh
3,测试SSH,如图所示,然后退出SSH
[hadoop@master ~]$ ssh localhost

4, 配置SSH免密登录
创建目录
[hadoop@master ~]$ cd ~/.ssh/
生成密钥对(提示输入时都按回车即可)
[hadoop@master .ssh]$ ssh-keygen -t rsa
授权
[hadoop@master .ssh]$ cat id_rsa.pub >> authorized_keys
修改文件权限
[hadoop@master .ssh]$ chmod 600 ./authorized_keys
免密登陆SSH
[hadoop@master .ssh]$ ssh localhost
过程如图所示

三,安装Java
1,查看java,有则卸载
[hadoop@master ~]$ rpm -qa | grep java
2,解压Java
进入存放Java的路径(可通过共享文件夹来进行CentOS与Win的数据交流)
[hadoop@master ~]$ cd /mnt/hgfs/share/Application
解压Java到目录/usr/local
[hadoop@master Application]$ sudo tar -zxf jdk-8u231-linux-x64.tar.gz -C /usr/local
进入目录/usr/local,查看
[hadoop@master Application]$ cd /usr/local/
[hadoop@master local]$ ll
将当前文件夹中的文件夹jdk1.8.0_231重命名为java
[hadoop@master local]$ sudo mv ./jdk1.8.0_231 ./java
修改文件夹java的所属用户和用户组
[hadoop@master local]$ sudo chown -R hadoop:hadoop ./java
3,配置用户环境变量
[hadoop@master local]$ vi ~/.bashrc
在最后添加Java环境变量
# java Environment Variables
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# PATH
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:
如下图所示

使环境变量立即生效
[hadoop@master local]$ source ~/.bashrc
4,检查Java
[hadoop@master local]$ echo $JAVA_HOME
  /usr/local/java
[hadoop@master local]$ java -version
  java version "1.8.0_231"
  Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
  Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
[hadoop@master local]$ $JAVA_HOME/bin/java -version
  java version "1.8.0_231"
  Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
  Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
[hadoop@master local]$ jps
  11872 Jps
四,安装hadoop
1,解压Hadoop
进入存放Hadoop的路径(可通过共享文件夹来进行CentOS与Win的数据交流)
[hadoop@master ~]$ cd /mnt/hgfs/share/Application
解压Hadoop到目录/usr/local
[hadoop@master Application]$ sudo tar -zxf hadoop-2.6.0.tar.gz -C /usr/local
进入目录/usr/local,查看
[hadoop@master Application]$ cd /usr/local/
[hadoop@master local]$ ll
将当前文件夹中的文件夹hadoop-2.6.0重命名为hadoop
[hadoop@master local]$ sudo mv ./hadoop-2.6.0 ./hadoop
修改文件夹hadoop的所属用户和用户组
[hadoop@master local]$ sudo chown -R hadoop:hadoop ./hadoop
2,检查Hadoop,如果成功则显示Hadoop版本
[hadoop@master hadoop]$ cd /usr/local/hadoop
[hadoop@master hadoop]$ ./bin/hadoop version
  Hadoop 2.6.0
3,配置用户环境变量
[hadoop@master hadoop]$ vi ~/.bashrc
bashrc文件总添加部分为
# java Environment Variables
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# hadoop Environment Variables
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export CLASSPATH=$CLASSPATH:$($HADOOP_HOME/bin/hadoop classpath)
# PATH
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
使环境变量立即生效
[hadoop@master hadoop]$ source ~/.bashrc
4,修改Hadoop配置文件
Hadoop的配置文件的目录为/usr/local/hadoop/etc/hadoop/
其主要配置文件为core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml,slaves,hadoop-env.sh
进入配置文件目录,修改以下配置文件
[hadoop@master hadoop]$ cd /usr/local/hadoop/etc/hadoop/
(1)core-site.xml
[hadoop@master hadoop]$ vi core-site.xml
<configuration> <property> <!-- 默认文件系统的名称 --> <!-- 通常指定namenode的URI地址,包括主机和端口 --> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <!-- 指定hadoop运行时产生的临时存储目录。不安全,每次开机都会被清空 --> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> </property> </configuration>
如下图所示

(2)hdfs-site.xml
[hadoop@master hadoop]$ vi hdfs-site.xml
<configuration> <property> <!-- 指定HDFS副本数量 --> <name>dfs.replication</name> <value>1</value> </property> <property> <!-- 指定namenode在本地文件系统上的存储位置 --> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <!-- 指定datanode在本地文件系统上的存储位置 --> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
(3)yarn-site.xml
[hadoop@master hadoop]$ vi yarn-site.xml
<configuration> <property> <!-- 需配置成mapreduce_shuffle,才可运行MapReduce程序 --> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
(4)mapred-site.xml
[hadoop@master hadoop]$ mv mapred-site.xml.template mapred-site.xml
[hadoop@master hadoop]$ vi mapred-site.xml
<configuration> <property> <!-- 指定执行MapReduce作业运行时的框架 --> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
(5)slaves
伪分布可以不配置
(6)hadoop-env.sh
这里不配置。
它是Hadoop的专属脚本,可以通过配置环境变量模拟其功能。比如,在环境变量中配置JAVA_HOME,因为在hadoop-env.sh中通过export JAVA_HOME=${JAVA_HOME}调用了环境变量中的JAVA_HOME
5,格式化,成功如下图所示
[hadoop@master hadoop]$ /usr/local/hadoop/bin/hdfs namenode -format
 
6,启动Hadoop
[hadoop@master hadoop]$ start-all.sh
如果是第一次还需要输入 yes 确认ssh
7,查看Java进程
[hadoop@master hadoop]$ jps

8,查看hdfs信息
[hadoop@master hadoop]$ hdfs dfsadmin -report
 
五,hadoop使用
1,创建用户目录
[hadoop@master hadoop]$ hadoop fs -mkdir -p /user/hadoop
[hadoop@master hadoop]$ hadoop fs -mkdir input
2,常用HDSF命令
hadoop fs -help ls 查阅帮助 hadoop fs -ls [-R] <path> [遍历]查看目录 hadoop fs -cat <path> 查看文件 hadoop fs -du <path> 显示文件大小 hadoop fs -rm [-r] <path> [遍历]删除文件 hadoop fs -get <path> 拷贝<path>文件到本地 fs -copyToLocal <path> 拷贝<path>文件到本地 hadoop fs -mkdir [-p] <path> 新建文件夹 hadoop fs -mv <path> <path> 移动文件(如果两个目录是相同的,则重命名文件) hadoop fs -cp <path> <path> HDFS内部复制 hadoop fs -put <文件> <path> 本地<文件>上传<path> fs -copyFromLocal<文件> <path> 本地<文件>上传<path>
3,浏览器访问hadoop,需要关闭防火墙或者开放端口
http://192.168.100.100:50070
http://192.168.100.100:8088
<!-- 查看防火墙状态 --> [hadoop@master share]$ sudo systemctl status firewalld <!-- 永久开放50070端口 --> [hadoop@master share]$ sudo firewall-cmd --zone=public --add-port=50070/tcp --permanent <!-- 更新防火墙规则 --> [hadoop@master share]$ sudo firewall-cmd --reload <!-- 永久关闭50070端口 --> [hadoop@master share]$ sudo firewall-cmd --zone=public --remove-port=50070/tcp --permanent <!-- 关闭防火墙 --> [hadoop@master share]$ sudo systemctl stop firewalld <!-- 打开防火墙 --> [hadoop@master share]$ sudo systemctl start firewalld <!-- 禁止防火墙开机启动 --> [hadoop@master share]$ sudo systemctl disable firewalld <!-- 允许防火墙开机启动 --> [hadoop@master share]$ sudo systemctl enable firewalld
4,打包,运行 jar包
[hadoop@master hadoop]$ jar -cvf WordCount.jar ./WordCount*.class [hadoop@master hadoop]$ hadoop jar <jar path> <package main> <input path> <output path>
5,添加外部 jar包
[hadoop@master Application]$ cp fastjson-1.2.4.jar /usr/local/hadoop/share/hadoop/common/
相关/转载:
2,Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0
3,Hadoop伪分布环境搭建.docx
                    
                
                
            
        
浙公网安备 33010602011771号