使用 VMware Workstation 安装 1台centos 7,并在上面实现 hadoop 的单机部署。
配置静态 IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="cafa4500-048b-41a3-a880-0ea13ff55b07" DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.64.111 NETMASK=255.255.255.0 GATEWAY=192.168.64.2 DNS1=192.168.64.2
|
sudo vim /etc/hostname
sudo vim /etc/hosts
创建 hadoop 用户
创建并设置密码
vim /etc/sudoers
上传安装包
在 centos 根目录下创建 devops 目录
mkdir /devops
上传 Hadoop jar 包和 jdk jar 包
配置 java 环境
解压 jdk 包
tar zxvf jdk-8u212-linux-x64.tar.g
创建 my_env.sh 环境变量脚本
vim /etc/profile.d/my_env.sh
内容如下
使新配置的环境变量生效
source /etc/profile
配置 Hadoop 环境
解压 Hadoop 包
tar -zxvf hadoop-3.1.3.tar.gz
编辑环境变量
vim /etc/profile.d/my_env.sh
使新配置的环境变量生效
source /etc/profile
配置 Hadoop 配置文件
vim /devops/hadoop-3.1.3/etc/hadoop/core-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <configuration>
<!-- 指定NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop111:9820</value> </property> <!-- 指定hadoop数据的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/devops/hadoop-3.1.3/data</value> </property>
<!-- 配置HDFS网页登录使用的静态用户为hadoop --> <property> <name>hadoop.http.staticuser.user</name> <value>hadoop</value> </property>
<!-- 配置该hadoop用户(superUser)允许通过代理访问的主机节点 --> <property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <!-- 配置该hadoop用户(superUser)允许通过代理用户所属组 --> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property> <!-- 配置该hadoop用户(superUser)允许通过代理的用户--> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property>
</configuration>
|
vim /devops/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <configuration> <!-- nn web端访问地址--> <property> <name>dfs.namenode.http-address</name> <value>hadoop111:9870</value> </property> <!-- 2nn web端访问地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop111:9868</value> </property> <!-- NameNode存储其元数据的本地文件系统路径--> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/dfs/name</value> </property> <!-- datanode数据存储目录--> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dfs/data</value> </property> <!-- HDFS中文件的数据块副本数量--> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
|
vim /devops/hadoop-3.1.3/etc/hadoop/yarn-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <configuration> <!-- 指定MR走shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop111</value> </property> <!-- 环境变量的继承 --> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> <!-- yarn容器允许分配的最大最小内存 --> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>4096</value> </property> <!-- yarn容器允许管理的物理内存大小 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> <!-- 关闭yarn对物理内存和虚拟内存的限制检查 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration>
|
vim /devops/hadoop-3.1.3/etc/hadoop/mapred-site.xml
1 2 3 4 5 6 7
| <configuration> <!-- 指定MapReduce程序运行在Yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
|
初始化NameNode的数据目录
hdfs namenode -format
由于前面一直使用root操作,所以 hadoop 安装目录的所有权不对,这里变更 hadoop 安装目录的所有权
sudo chown -R hadoop:hadoop hadoop-3.1.3
设置 SSH 免密访问本地
su hadoop
注意下面这条命令连按两次回车
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
启动和关闭 Hadoop
由于前面配置了 /devops/hadoop-3.1.3/sbin 的环境变量,这里可以直接使用 start-all.sh 启动
使用 stop-all.sh 关闭 hadoop 服务