ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 1. 配置HDFS **一:配置集群** 1. 在 {hadoop_home}/etc/hadoop/hadoop-env.sh 配置文件中指定jdk路径。 ```sql # 指定你安装的jdk路径 export JAVA_HOME=/usr/local/software/jdk1.8.0_171 ``` 2. 在 {hadoop_home}/etc/hadoop/core-site.xml 配置文件中指定NameNode地址。 ```shell <configuration> <!-- 指定HDFS中NameNode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop101:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/install/hadoop/data/tmp</value> </property> </configuration> ``` 3. 在 {hadoop_home}/etc/hadoop/hdfs-site.xml 配置文件中指定HDFS副本数量。 ```shell <configuration> <!-- 指定HDFS副本的数量为1,默认为3 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` 4. 配置ssh无密码登录,往后启动hdfs的时候就不需要输入本机密码了 ```shell [root@hadoop101 /]# yum install -y openssh openssh-server openssh-clients openssl openssl-devel [root@hadoop101 /]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' [root@hadoop101 /]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys [root@hadoop101 /]# systemctl start sshd ``` **二:启动hdfs集群** 启动hdfs集群需要在root用户下启动,执行`su`进入root用户。 1. 启动hdfs集群 ```shell -- 回到hadoop安装目录进行格式化和启动hdfs集群 -- 注意:首次启动时才需要格式化,以后都不能格式化,否则hadoop可能无法启动 # bin/hdfs namenode -format -- 到hadoop安装目录下启动hdfs # sbin/start-dfs.sh -- 查看是否启动成功 # jps 4784 Jps 4497 DataNode 4664 SecondaryNameNode 4365 NameNode ``` 如果只需要单独启动NameNode执行`sbin/hadoop-daemon.sh start namenode` ; 如果只需要单独启动DataNode执行`sbin/hadoop-daemon.sh start datanode` ; 2. 访问HDFS文件系统 浏览器访问:http://hadoop101:50070/ , 显示页面如下 ![](https://img.kancloud.cn/95/dc/95dc383e74bf2e3f7c514d1fca260603_1081x561.png)<br/> **三:操作集群** 操作要在hadoop的安装目录下执行。 ```shell -- 在hdfs文件系统上创建一个input目录 # bin/hdfs dfs -mkdir -p /user/hadoop/input -- 将测试文件内容上传到文件系统上 # bin/hdfs dfs -put wcinput/wc.input /user/hadoop/input/ -- 查看上传的文件是否正确 # bin/hdfs dfs -ls /user/hadoop/input/ Found 1 items -rw-r--r-- 1 root supergroup 61 2020-11-30 17:21 /user/hadoop/input/wc.input # bin/hdfs dfs -cat /user/hadoop/input/wc.input hadoop yarn spark hadoop mapreduce hadoop spark hadoop spark -- 运行mapreduce程序 -- /user/hadoop/output为运行时生成的文件的目录 # bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /user/hadoop/input/ /user/hadoop/output -- 查看输出结果 # bin/hdfs dfs -cat /user/hadoop/output/* hadoop 4 mapreduce 1 spark 3 yarn 1 ``` 或者在浏览器中查看 ![](https://img.kancloud.cn/a0/f4/a0f48ace25e25bd1c0cf6410e7afccb6_1729x551.png) ```shell -- 将测试文件内容下载到本地,即下载到 ./wcoutput/目录下 # bin/hdfs dfs -get /user/hadoop/output/part-r-00000 ./wcoutput/ -- 删除输出结果 # bin/hdfs dfs -rm -r /user/hadoop/output ``` <br/> # 2. 配置Yarn **一:配置集群** 1. 在 {hadoop_home}/etc/hadoop/yarn-env.sh 配置文件中指定jdk目录。 ```shell # 找到jdk的安装位置 # some Java parameters export JAVA_HOME=/usr/local/software/jdk1.8.0_171/ ``` 2. 在 {hadoop_home}/etc/hadoop/yarn-site.xml 配置文件中指定ResourceMnanager地址。 ```xml <configuration> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop101</value> </property> </configuration> ``` 3. 在 {hadoop_home}/etc/hadoop/mapred-env.sh 配置文件指定jdk位置。 ```xml # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # 找到jdk位置 export JAVA_HOME=/usr/local/software/jdk1.8.0_171/ ``` 4. 在 {hadoop_home}/etc/hadoop/mapred-site.xml 配置文件指定MapReduce运行在yarn上 ```xml -- 将mapred-site.xml.template重命名为mapred-site.xml # mv mapred-site.xml.template mapred-site.xml -- 在mapred-site.xml做如下配置 <configuration> <!-- 指定MapReduce运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` **二:启动yarn集群** 1. 启动yarn集群 ```xml -- 启动前先确保namenode和datanode已经启动 -- 查看是否已经启动namenode和datanode # jps 4194 DataNode 4855 Jps 4061 NameNode 4365 SecondaryNameNode -- 出现上面信息则启动,如果没有启动到hadoop安装目录下执行启动 # sbin/start-dfs.sh -- 到hadoop的安装目录下启动yarn # sbin/start-yarn.sh [root@hadoop101 hadoop]# jps 3505 NodeManager 3223 ResourceManager 3631 Jps ``` 如果只需要单独启动resourcemanager请执行 `sbin/yarn-daemon.sh start resourcemanager` ; 如果只需要单独启动nodemanager请执行`sbin/yarn-daemon.sh start nodemanager` ; 2. 浏览器访问 浏览器访问 http://hadoop101:8088/cluster 出现如下页面启动成功 ![](https://img.kancloud.cn/b1/2f/b12f2b3996693deb8557db46fafebe59_1336x565.png)<br/> **三:集群操作** 下面的操作均在hadoop的安装目录下执行。 ```xml -- 在hdfs文件系统上创建一个input目录 # bin/hdfs dfs -mkdir -p /lean/hadoop/input -- 将测试文件内容上传到文件系统上 # bin/hdfs dfs -put wcinput/wc.input /lean/hadoop/input/ -- 运行mapreduce程序 -- /lean/hadoop/output为运行时生成的文件的目录 # bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /lean/hadoop/input/ /lean/hadoop/output -- 查看运行结果 # bin/hdfs dfs -cat /lean/hadoop/output/* hadoop 4 mapreduce 1 spark 3 yarn 1 ``` 或者在HDFS页面查看 ![](https://img.kancloud.cn/b7/8d/b78d80a6b281582e7946441d0d3522da_1723x559.png) 可在yarn页面上查看提交次数和完成次数等信息 ![](https://img.kancloud.cn/59/4d/594d6cdbf9318301438a823879a22eeb_1463x459.png) <br/> # 3. 配置历史服务器 配置历史服务器可以查看MapReduce任务的详情信息,查看日志,定位错误等信息。 1. 在 {hadoop_home}/etc/hadoop/mapred-site.xml 配置文件中配置历史服务器访问地址。 ```xml <property> <name>mapreduce.jobhistory.address</name> <value>hadoop101:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop101:19888</value> </property> ``` 2. 启动历史服务器 ```xml -- 回到hadoop目下启动历史服务器 # sbin/mr-jobhistory-daemon.sh start historyserver -- 查看历史服务器是否已经启动,输出JobHistoryServer表示启动 # jps 6329 JobHistoryServer 6398 Jps ``` 3. 浏览器访问 访问 http://hadoop101:19888/jobhistory ,历史页面显示如下 ![](https://img.kancloud.cn/33/4c/334c8228188d2167f553b9acf1e1f119_1354x484.png) <br/> # 4. 配置日志聚集 日志聚集概念:应用运行完成以后,将日志信息上传到HDFS系统上,方便查看。 1. 在{hadoop_home}/etc/hadoop/yarn-site.xml配置进行相关配置。 ```xml <!-- 日志聚集功能开启 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间设置7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> ``` 2. 关闭nodemanager 、resourcemanager(yarn)、historymanager(历史服务器) ```xml -- 回到hadoop的安装目录下执行 # sbin/yarn-daemon.sh stop resourcemanage # sbin/yarn-daemon.sh stop nodemanage # sbin/mr-jobhistory-daemon.sh stop historyserver ``` 3. 启动nodemanager 、resourcemanager(yarn)、historymanager(历史服务器) ```xml # sbin/yarn-daemon.sh start resourcemanager # sbin/yarn-daemon.sh start nodemanager # sbin/mr-jobhistory-daemon.sh start historyserver ``` 4. 测试:删除hdfs上已经存在的hdfs文件,然后重新生成 ```xml # bin/hdfs dfs -rm -R /lean/hadoop/output # hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /lean/hadoop/input /lean/hadoop/outpu ``` 5. 浏览器访问历史 访问 http://hadoop101:19888/jobhistory ,日志相关信息如下 ![](https://img.kancloud.cn/14/a8/14a89381e937828ad77d0c37230f7157_1899x541.png)