hadoop环境搭建和基本设置

一.linux网络设置

改主机名: vi /etc/hostname
改IP地址配置:vi /etc/sysconfig/network-scripts/ifcfg-eth33

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.33.201
GATEWAY=192.168.33.1
NETMASK=255.255.255.0
DNS1=192.168.33.1

prefix =24 相当于 netmask=255.255.255.0
gateway=虚拟交换机的地址
dns1=虚拟交换机的地址

重启网络服务 systemctl restart network
关掉防火墙 systemctl stop firewalld systemctl disable firewalld
改域名映射:vi /etc/hosts

安装VMware-Toolhttps://blog.youkuaiyun.com/zhujing16/article/details/88677253

二.安装Java环境

在母机上安装jdk(版本必须1.7以上,最好1.8)

 tar -zxvf jdk-8u60-linux-x64.gz -C  ./apps/

配置环境变量

vi /etc/profile
export JAVA_HOME=/root/apps/jdk1.8.0_60/
export PATH=\$PATH:\$JAVA_HOME/bin

 source  /etc/profile

验证jdk安装成功: java -version

然后,将母机上的apps目录scp给所有其他机器

scp -r apps  cts02:/root/

并将profile环境变量配置文件拷贝给其他所有机器:

scp /etc/profile  cts02:/etc/

PS:
找到ssh工具相关的软件包
给各台机器都安装scp工具

yum   list   | grep   ssh
yum clean all
yum install -y openssh.x86_64 openssh-clients.x86_64

linux集群时间同步

1.所有机器安装ntpdate.

yum -y install ntpd

2.关闭ntpddate服务.

systemctl stop ntpdate

3.执行ntpdate time.nist.gov同步时间

Chrony

一.安装
yum -y install chrony

systemctl enable chronyd
systemctl start chronyd

vim /etc/chrony.conf

chrony.conf 默认配置:

# 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
# Allow the system clock to be stepped in the first three updates if its offset is larger than 1 second.
makestep 1.0 3

# 启用实时时钟(RTC)的内核同步。
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# 通过使用 hwtimestamp 指令启用硬件时间戳
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust the system clock.
#minsources 2

# 指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器
# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# 指定包含 NTP 身份验证密钥的文件。
# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# 指定日志文件的目录。
# Specify directory for log files.
logdir /var/log/chrony

# 选择日志文件要记录的信息。
# Select which information is logged.
#log measurements statistics tracking
二.使用

1.服务端配置

systemctl enable chronyd
systemctl restart chronyd
查看时间同步状态
timedatectl status
开启网络时间同步
timedatectl set-ntp true

修改chrony.conf :

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server s1a.time.edu.cn iburst
server ntp.aliyun.com iburst

# Allow NTP client access from local network.
allow 192.168.8.0/24

2.客户端配置

systemctl enable chronyd
systemctl restart chronyd

查看时间同步状态
timedatectl status
开启网络时间同步
timedatectl set-ntp true

修改chrony.conf :

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 192.168.8.5 iburst

# Allow NTP client access from local network.
allow 192.168.8.5
三.常用命令

chronyc 用法

查看 ntp_servers
chronyc sources -v

查看 ntp_servers 状态
chronyc sourcestats -v

查看 ntp_servers 是否在线
chronyc activity -v

查看 ntp 详细信息
chronyc tracking -v

修改时区

查看日期时间、时区及 NTP 状态
timedatectl

查看时区列表
timedatectl list-timezones
timedatectl list-timezones |  grep  -E "Asia/S.*"

修改时区
timedatectl set-timezone Asia/Shanghai

修改日期时间(可以只修改其中一个)
timedatectl set-time "2019-09-19 15:50:20"

开启 NTP
timedatectl set-ntp true/flase

LINUX配置ssh免密登录

创建SSH信任机制原理:
主机A要想通过无密码的SCP方式将文件传输到主机B,主机A得先获得主机B的信任。所谓信任机制可以这样抽象的理解,主机A将自己的某一个证件放到主机B那儿,当有一个请求发到主机B的时候,主机B用这个证件来判断是不是主机A,如果是主机A,则可以直接传输文件,否则要求输入密码才能传输。而这个证件就是主机A上的公钥。要想在其他主机中添加对本机器的信任,只需要将本机公钥内容id_rsa.pub追加到其他主机的/root/.ssh/authorized_keys文件里面即可。 .ssh文件夹和authorized_keys文件可能不存在,那就直接创建.这样A到B的信任机制已经建立,再次执行SCP指令时,已经不需要输入密码了,如果还想建立B到A的信任机制按步骤反过来就可以。

获取A的公钥:
cd /root/.ssh/
执行 ssh-keygen -t rsa
ssh-copy-id 主机名

LINUX安装mysql

mysql-community-libs会与maridb-libs包冲突
卸载maridb
rpm -qa | grep mariadb | xargs rpm -e --nodeps
安装wget
1 yum -y install wget
下载mysql安装包
2 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3 yum -y install mysql57-community-release-el7-11.noarch.rpm

4 yum -y install mysql-community-server #如果速度太慢可以手动下载rpm包安装

设置mysql服务开机自启

5 systemctl start mysqld

6 netstat -nltp | grep 3306

7 grep “password” /var/log/mysqld.log 查看原始密码
初始化数据库脚本 修改密码
mysql_secure_installation (除了Disallow root login remotely 选NO 其他都选yes)
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’ 修改密码 注意密码需要有大小写字母数字
8 登录 mysql -uroot -p
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1; 这个两个设置以后 密码很简单不会报错
增加远程root用户登录权限:
grant all privileges on *.* to ‘root’ @‘%’ identified by ‘123456’;
(注意星号和单引号)
将mysql驱动包拷贝到 /usr/share/java 路径下 并重命名为:
mysql-connector-java.jar
mysql 重要目录说明
#(a)数据库目录
/var/lib/mysql/
#(b)配置文件
/usr/share /mysql(mysql.server命令及配置文件)
#©相关命令
/usr/bin(mysqladmin mysqldump等命令)
#(d)启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
mysql配置文件: /etc/my.cnf

CentOS7卸载mysql

1.查看mysql安装

rpm -qa|grep -i mysql

2.卸载前关闭mysql服务

rpm -ev --nodeps mysql-community-release-el7-5.noarch
rpm -ev --nodeps mysql-community-common-5.6.38-2.el7.x86_64
rpm -ev --nodeps mysql-community-client-5.6.38-2.el7.x86_64
rpm -ev --nodeps mysql-community-libs-5.6.38-2.el7.x86_64
rpm -ev --nodeps community-server-5.6.38-2.el7.x86_64
执行完命令之后再次执行 rpm-qa|grep -i mysql 会发现已经卸载完成。

三.安装hadoop

前提
准备4台linux机器
装好jdk
配好IP地址、主机名、域名映射、关闭防火墙
配好cts01 -->其他所有机器的免密登陆机制

a) 上传安装包到cts01
b) 解压
c) 修改配置文件
hadoop-env.sh
export JAVA_HOME=/root/app/jdk1.8.0_60/

hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.rpc-address</name>
<value>cts01:9000</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>cts02:50090</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name/</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/fileblock/</value>
</property>

</configuration>

d) 复制安装包到别的机器
scp -r hadoop-2.8.1/ cts02:/root/app/

e) 把namenode的元数据目录初始化(在cts01)
bin/hadoop namenode -format
此命令的本质,是生成namenode所需要的元数据存储目录及各类初始化文件
f)配置环境变量 /etc/profile
在这里插入图片描述
启动hdfs服务端: start-dfs.sh
停止hdfs服务端: stop-dfs.sh
内置的脚本需要我们自己将datanode机器列入一个etc/hadoop/slaves文件
[root@cts01 hadoop]# vi slaves
cts01
cts02
cts03
cts04
记得:事先要配置好免密登陆 cts01  cts01 02 03 04

启动HDFS客户端:
在这里插入图片描述

vi core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://pc-01:9000</value>
</property>

命令行客户端常用命令

hdfs dfs -chmod -R 777 /  ## 修改HDFS权限(web端删除创建文件)
hdfs dfs -ls /              ## 查看hdfs中的一个文件夹中的信息
hdfs dfs -mkdir -p /abc/bcd       ## 在hdfs文件系统中创建文件夹
hdfs dfs -put ./xx.dat  /    ## 从客户端的本地文件系统中传输一个文件到hdfs文件系统
hdfs dfs -get /hdfs/path ./   ##从hdfs文件系统中下载一个文件到客户端本地磁盘
hdfs dfs -rm /hdfs/file    ## 删除
hdfs dfs -rm -r /adc/     ## 删除目录
hdfs dfs -cp /hdfs/file1 /hdfspath/file2    ##  在hdfs中复制
hdfs dfs -mv /hdfspath1/file1 /hdfspath2/file2   ## 在hdfs中移动
hdfs dfs -cat /bbb/xxoo.sh   ## 显示文件的内容
hdfs dfs -tail /bbb/xxoo.sh   ## 显示文件的尾部内容
hdfs dfs -appendToFile  ./a.txt   /bbb/xxoo.sh   ##追加一个本地文件的内容到HDFS中的一个文件

四.常用Linux命令

后台运行命令

nohup command 1>dev/null 2>&1 &

查看linux端口占用情况

netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段
-a :all,表示列出所有的连接,服务监听,Socket资料
-t :tcp,列出tcp协议的服务
-u :udp,列出udp协议的服务
-n :port number, 用端口号来显示
-l :listening,列出当前监听服务
-p :program,列出服务程序的PID

查看tcp网络端口状态

netstat -nltp

查看后台运行命令

jobs

获取当前日期并指定格式 并指定前一天

date -d’-1 day’ +%Y-%m-%d

批量解压

ls *.tar.gz | xargs -n1 tar xzvf
xargs详见:https://www.cnblogs.com/f-ck-need-u/p/5925923.html

rpm相关命令

https://blog.youkuaiyun.com/capecape/article/details/78529159

删除文件夹下某个文件之外的其他文件

Bash Shell有个extglob选项,开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便。

开启使用shopt命令:shopt -s extglob
关闭使用shopt命令:shopt -u extglob

开启之后,以下5个模式匹配操作符将被识别:

?(pattern-list) - 所给模式匹配0次或1次;
*(pattern-list) -所给模式匹配0次以上包括0次;
+(pattern-list) - 所给模式匹配1次以上包括1次;
@(pattern-list) -所给模式仅仅匹配1次;
!(pattern-list) - 不匹配括号内的所给模式。

强制关机重启后出现错误

在这里插入图片描述
这里的 journalctl 是查看系统的日志信息;直接输入此命令查看,日志内容可能很多,快速翻页或者直接定位到最新的日志信息,发现有标红的,说明此处出现错误。

解决问题:
输入命令:xfs_repair -v -L /dev/dm-0
-L 选项指定强制日志清零,强制xfs_repair将日志归零,即使它包含脏数据(元数据更改)。
也可能不是dm-0,具体需要进入系统日志查看报红信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值